Merge
authorprr
Mon, 27 Apr 2015 09:17:39 -0700
changeset 30481 13ab4bf3c34a
parent 30480 f177387fbfc1 (current diff)
parent 30038 632939157af2 (diff)
child 30482 44e48ab67b43
Merge
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java
jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/package.html
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSS2Properties.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSCharsetRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSFontFaceRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSImportRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSMediaRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSPageRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSPrimitiveValue.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSRuleList.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSStyleDeclaration.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSStyleRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSStyleSheet.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSUnknownRule.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSValue.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSValueList.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/Counter.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/DOMImplementationCSS.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/DocumentCSS.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/ElementCSSInlineStyle.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/RGBColor.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/Rect.java
jaxp/src/java.xml/share/classes/org/w3c/dom/css/ViewCSS.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLAnchorElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLAppletElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLAreaElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBRElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBaseElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBaseFontElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBodyElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLButtonElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLCollection.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDListElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDOMImplementation.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDirectoryElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDivElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDocument.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFieldSetElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFontElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFormElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFrameElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFrameSetElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHRElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHeadElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHeadingElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHtmlElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLIFrameElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLImageElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLInputElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLIsIndexElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLIElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLabelElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLegendElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLinkElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLMapElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLMenuElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLMetaElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLModElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLOListElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLObjectElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLOptGroupElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLOptionElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLParagraphElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLParamElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLPreElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLQuoteElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLScriptElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLSelectElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLStyleElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableCaptionElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableCellElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableColElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableRowElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableSectionElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTextAreaElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTitleElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLUListElement.java
jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/DocumentStyle.java
jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/LinkStyle.java
jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/MediaList.java
jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/StyleSheet.java
jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/StyleSheetList.java
jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathEvaluator.java
jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathException.java
jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathExpression.java
jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathNSResolver.java
jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathNamespace.java
jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathResult.java
jdk/src/java.base/share/classes/sun/security/provider/certpath/ReverseBuilder.java
jdk/src/java.base/share/classes/sun/security/provider/certpath/ReverseState.java
jdk/src/java.base/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java
jdk/src/jdk.accessibility/windows/native/jabswitch/jabswitch_manifest.rc
jdk/test/sun/security/provider/certpath/ReverseBuilder/BuildPath.java
jdk/test/sun/security/provider/certpath/ReverseBuilder/ReverseBuild.java
jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrM2leadMA
jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrM2mgrM
jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrM2prjM
jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrMcrl
jdk/test/sun/security/provider/certpath/ReverseBuilder/prjM2divE
jdk/test/sun/security/provider/certpath/ReverseBuilder/prjM2mgrM
jdk/test/sun/security/provider/certpath/ReverseBuilder/prjMcrl
langtools/test/tools/javac/varargs/T8049075/VarargsAndWildcardParameterizedTypeTest.java
--- a/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -302,3 +302,5 @@
 ddb95d8f169b09544cc17e72a6baaff2400092f5 jdk9-b57
 f40752db7773ca0c737f2ad88371e35c57fdfed7 jdk9-b58
 da950f343762a856d69751570a4c07cfa68a415b jdk9-b59
+38f98cb6b33562a926ec3b79c7b34128be37647d jdk9-b60
+ac3f5a39d4ff14d70c365e12cf5ec8f2abd52a04 jdk9-b61
--- a/.hgtags-top-repo	Fri Apr 24 15:45:25 2015 +0300
+++ b/.hgtags-top-repo	Mon Apr 27 09:17:39 2015 -0700
@@ -302,3 +302,5 @@
 f25ee9f62427a9ba27418e5531a89754791a305b jdk9-b57
 6e78dd9b121037719a065fe8fb25b936babdfecb jdk9-b58
 39e8a131289e8386aa4c3e4b184faa812a7c0421 jdk9-b59
+9fa2185bee17462d1014538bff60af6e6f0b01e7 jdk9-b60
+ea38728b4f4bdd8fd0d7a89b18069f521cf05013 jdk9-b61
--- a/README-builds.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/README-builds.html	Mon Apr 27 09:17:39 2015 -0700
@@ -41,7 +41,8 @@
                         The build is now a "<code>configure &amp;&amp; make</code>" style build
                     </li>
                     <li>
-                        Any GNU make 3.81 or newer should work
+                        Any GNU make 3.81 or newer should work, except on
+                        Windows where 4.0 or newer is recommended.
                     </li>
                     <li>
                         The build should scale, i.e. more processors should
@@ -358,8 +359,8 @@
                 For all systems:
                 <ul>
                     <li>
-                        Be sure the GNU make utility is version 3.81 or newer,
-                        e.g. run "<code>make -version</code>"
+                        Be sure the GNU make utility is version 3.81 (4.0 on
+                        windows) or newer, e.g. run "<code>make -version</code>"
                     </li>
                     <li>
                         Install a
@@ -1726,10 +1727,10 @@
             A few notes about using GNU make:
             <ul>
                 <li>
-                    You need GNU make version 3.81 or newer.
-                    If the GNU make utility on your systems is not
-                    3.81 or newer,
-                    see <a href="#buildgmake">"Building GNU make"</a>.
+                    You need GNU make version 3.81 or newer. On Windows 4.0 or
+                    newer is recommended.
+                    If the GNU make utility on your systems is not of a suitable
+                    version see <a href="#buildgmake">"Building GNU make"</a>.
                 </li>
                 <li>
                     Place the location of the GNU make binary in the
--- a/common/autoconf/basics.m4	Fri Apr 24 15:45:25 2015 +0300
+++ b/common/autoconf/basics.m4	Mon Apr 27 09:17:39 2015 -0700
@@ -658,8 +658,6 @@
     fi
     OUTPUT_ROOT="$SRC_ROOT/build/${CONF_NAME}"
     $MKDIR -p "$OUTPUT_ROOT"
-    CONFIGURESUPPORT_OUTPUTDIR="$OUTPUT_ROOT/configure-support"
-    $MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
     if test ! -d "$OUTPUT_ROOT"; then
       AC_MSG_ERROR([Could not create build directory $OUTPUT_ROOT])
     fi
@@ -702,6 +700,9 @@
 
   BASIC_FIXUP_PATH(OUTPUT_ROOT)
 
+  CONFIGURESUPPORT_OUTPUTDIR="$OUTPUT_ROOT/configure-support"
+  $MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
+
   AC_SUBST(SPEC, $OUTPUT_ROOT/spec.gmk)
   AC_SUBST(CONF_NAME, $CONF_NAME)
   AC_SUBST(OUTPUT_ROOT, $OUTPUT_ROOT)
@@ -730,6 +731,16 @@
 [
   MAKE_CANDIDATE="$1"
   DESCRIPTION="$2"
+
+  # On Cygwin, we require a newer version of make than on other platforms
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    MAKE_VERSION_EXPR="-e 4\."
+    MAKE_REQUIRED_VERSION="4.0"
+   else
+    MAKE_VERSION_EXPR="-e 3\.8[[12]] -e 4\."
+    MAKE_REQUIRED_VERSION="3.81"
+  fi
+
   if test "x$MAKE_CANDIDATE" != x; then
     AC_MSG_NOTICE([Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION])
     MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1`
@@ -737,9 +748,9 @@
     if test "x$IS_GNU_MAKE" = x; then
       AC_MSG_NOTICE([Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring.])
     else
-      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e '3\.8[[12]]' -e '4\.'`
+      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
       if test "x$IS_MODERN_MAKE" = x; then
-        AC_MSG_NOTICE([Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring.])
+        AC_MSG_NOTICE([Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring.])
       else
         if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
           if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -803,7 +814,7 @@
     fi
     BASIC_CHECK_MAKE_VERSION("$MAKE", [user supplied MAKE=$MAKE])
     if test "x$FOUND_MAKE" = x; then
-      AC_MSG_ERROR([The specified make (by MAKE=$MAKE) is not GNU make 3.81 or newer.])
+      AC_MSG_ERROR([The specified make (by MAKE=$MAKE) is not GNU make $MAKE_REQUIRED_VERSION or newer.])
     fi
   else
     # Try our hardest to locate a correct version of GNU make
@@ -831,13 +842,13 @@
     fi
 
     if test "x$FOUND_MAKE" = x; then
-      AC_MSG_ERROR([Cannot find GNU make 3.81 or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure.])
+      AC_MSG_ERROR([Cannot find GNU make $MAKE_REQUIRED_VERSION or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure.])
     fi
   fi
 
   MAKE=$FOUND_MAKE
   AC_SUBST(MAKE)
-  AC_MSG_NOTICE([Using GNU make 3.81 (or later) at $FOUND_MAKE (version: $MAKE_VERSION_STRING)])
+  AC_MSG_NOTICE([Using GNU make at $FOUND_MAKE (version: $MAKE_VERSION_STRING)])
 
   BASIC_CHECK_MAKE_OUTPUT_SYNC
 ])
--- a/common/autoconf/generated-configure.sh	Fri Apr 24 15:45:25 2015 +0300
+++ b/common/autoconf/generated-configure.sh	Mon Apr 27 09:17:39 2015 -0700
@@ -745,8 +745,6 @@
 JTREGEXE
 USING_BROKEN_SUSE_LD
 PACKAGE_PATH
-LDEXECXX
-LDEXE
 USE_CLANG
 HOTSPOT_LD
 HOTSPOT_CXX
@@ -4365,7 +4363,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1428676283
+DATE_WHEN_GENERATED=1429271657
 
 ###############################################################################
 #
@@ -15266,8 +15264,6 @@
     fi
     OUTPUT_ROOT="$SRC_ROOT/build/${CONF_NAME}"
     $MKDIR -p "$OUTPUT_ROOT"
-    CONFIGURESUPPORT_OUTPUTDIR="$OUTPUT_ROOT/configure-support"
-    $MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
     if test ! -d "$OUTPUT_ROOT"; then
       as_fn_error $? "Could not create build directory $OUTPUT_ROOT" "$LINENO" 5
     fi
@@ -15445,6 +15441,9 @@
   fi
 
 
+  CONFIGURESUPPORT_OUTPUTDIR="$OUTPUT_ROOT/configure-support"
+  $MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
+
   SPEC=$OUTPUT_ROOT/spec.gmk
 
   CONF_NAME=$CONF_NAME
@@ -15530,6 +15529,16 @@
 
   MAKE_CANDIDATE=""$MAKE""
   DESCRIPTION="user supplied MAKE=$MAKE"
+
+  # On Cygwin, we require a newer version of make than on other platforms
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    MAKE_VERSION_EXPR="-e 4\."
+    MAKE_REQUIRED_VERSION="4.0"
+   else
+    MAKE_VERSION_EXPR="-e 3\.8[12] -e 4\."
+    MAKE_REQUIRED_VERSION="3.81"
+  fi
+
   if test "x$MAKE_CANDIDATE" != x; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5
 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;}
@@ -15539,10 +15548,10 @@
       { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5
 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;}
     else
-      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e '3\.8[12]' -e '4\.'`
+      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
       if test "x$IS_MODERN_MAKE" = x; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
-$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
+$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
       else
         if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
           if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -15855,7 +15864,7 @@
   fi
 
     if test "x$FOUND_MAKE" = x; then
-      as_fn_error $? "The specified make (by MAKE=$MAKE) is not GNU make 3.81 or newer." "$LINENO" 5
+      as_fn_error $? "The specified make (by MAKE=$MAKE) is not GNU make $MAKE_REQUIRED_VERSION or newer." "$LINENO" 5
     fi
   else
     # Try our hardest to locate a correct version of GNU make
@@ -15907,6 +15916,16 @@
 
   MAKE_CANDIDATE=""$CHECK_GMAKE""
   DESCRIPTION="gmake in PATH"
+
+  # On Cygwin, we require a newer version of make than on other platforms
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    MAKE_VERSION_EXPR="-e 4\."
+    MAKE_REQUIRED_VERSION="4.0"
+   else
+    MAKE_VERSION_EXPR="-e 3\.8[12] -e 4\."
+    MAKE_REQUIRED_VERSION="3.81"
+  fi
+
   if test "x$MAKE_CANDIDATE" != x; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5
 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;}
@@ -15916,10 +15935,10 @@
       { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5
 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;}
     else
-      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e '3\.8[12]' -e '4\.'`
+      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
       if test "x$IS_MODERN_MAKE" = x; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
-$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
+$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
       else
         if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
           if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -16281,6 +16300,16 @@
 
   MAKE_CANDIDATE=""$CHECK_MAKE""
   DESCRIPTION="make in PATH"
+
+  # On Cygwin, we require a newer version of make than on other platforms
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    MAKE_VERSION_EXPR="-e 4\."
+    MAKE_REQUIRED_VERSION="4.0"
+   else
+    MAKE_VERSION_EXPR="-e 3\.8[12] -e 4\."
+    MAKE_REQUIRED_VERSION="3.81"
+  fi
+
   if test "x$MAKE_CANDIDATE" != x; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5
 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;}
@@ -16290,10 +16319,10 @@
       { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5
 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;}
     else
-      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e '3\.8[12]' -e '4\.'`
+      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
       if test "x$IS_MODERN_MAKE" = x; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
-$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
+$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
       else
         if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
           if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -16660,6 +16689,16 @@
 
   MAKE_CANDIDATE=""$CHECK_TOOLSDIR_GMAKE""
   DESCRIPTION="gmake in tools-dir"
+
+  # On Cygwin, we require a newer version of make than on other platforms
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    MAKE_VERSION_EXPR="-e 4\."
+    MAKE_REQUIRED_VERSION="4.0"
+   else
+    MAKE_VERSION_EXPR="-e 3\.8[12] -e 4\."
+    MAKE_REQUIRED_VERSION="3.81"
+  fi
+
   if test "x$MAKE_CANDIDATE" != x; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5
 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;}
@@ -16669,10 +16708,10 @@
       { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5
 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;}
     else
-      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e '3\.8[12]' -e '4\.'`
+      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
       if test "x$IS_MODERN_MAKE" = x; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
-$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
+$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
       else
         if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
           if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -17033,6 +17072,16 @@
 
   MAKE_CANDIDATE=""$CHECK_TOOLSDIR_MAKE""
   DESCRIPTION="make in tools-dir"
+
+  # On Cygwin, we require a newer version of make than on other platforms
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    MAKE_VERSION_EXPR="-e 4\."
+    MAKE_REQUIRED_VERSION="4.0"
+   else
+    MAKE_VERSION_EXPR="-e 3\.8[12] -e 4\."
+    MAKE_REQUIRED_VERSION="3.81"
+  fi
+
   if test "x$MAKE_CANDIDATE" != x; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5
 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;}
@@ -17042,10 +17091,10 @@
       { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5
 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;}
     else
-      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e '3\.8[12]' -e '4\.'`
+      IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
       if test "x$IS_MODERN_MAKE" = x; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
-$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5
+$as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;}
       else
         if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
           if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -17363,14 +17412,14 @@
     fi
 
     if test "x$FOUND_MAKE" = x; then
-      as_fn_error $? "Cannot find GNU make 3.81 or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure." "$LINENO" 5
+      as_fn_error $? "Cannot find GNU make $MAKE_REQUIRED_VERSION or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure." "$LINENO" 5
     fi
   fi
 
   MAKE=$FOUND_MAKE
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: Using GNU make 3.81 (or later) at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&5
-$as_echo "$as_me: Using GNU make 3.81 (or later) at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&6;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Using GNU make at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&5
+$as_echo "$as_me: Using GNU make at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&6;}
 
 
   # Check if make supports the output sync option and if so, setup using it.
@@ -40837,13 +40886,6 @@
   fi
 
 
-  # LDEXE is the linker to use, when creating executables. Not really used.
-  # FIXME: These should just be removed!
-  LDEXE="$LD"
-  LDEXECXX="$LDCXX"
-
-
-
 
 
 
--- a/common/autoconf/spec.gmk.in	Fri Apr 24 15:45:25 2015 +0300
+++ b/common/autoconf/spec.gmk.in	Mon Apr 27 09:17:39 2015 -0700
@@ -182,6 +182,7 @@
   FULL_VERSION=$(RELEASE)-$(JDK_BUILD_NUMBER)
 endif
 JRE_RELEASE_VERSION:=$(FULL_VERSION)
+JDK_VERSION_FOR_MANIFEST := $(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(if $(JDK_UPDATE_VERSION),$(JDK_UPDATE_VERSION),0).$(COOKED_BUILD_NUMBER)
 
 # How to compile the code: release, fastdebug or slowdebug
 DEBUG_LEVEL:=@DEBUG_LEVEL@
@@ -354,10 +355,6 @@
 LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@
 LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
 
-# On some platforms the linker cannot be used to create executables, thus
-# the need for a separate LDEXE command.
-LDEXE:=@FIXPATH@ @LDEXE@
-
 # LDFLAGS used to link the jdk native launchers (C-code)
 LDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@
 LDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@
@@ -370,9 +367,6 @@
 # The flags for linking libstdc++ linker.
 LIBCXX:=@LIBCXX@
 
-# Sometimes a different linker is needed for c++ executables
-LDEXECXX:=@FIXPATH@ @LDEXECXX@
-
 # Compiler and linker flags used when building native tests
 CFLAGS_TESTLIB:=@CFLAGS_TESTLIB@
 CXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@
--- a/common/autoconf/toolchain.m4	Fri Apr 24 15:45:25 2015 +0300
+++ b/common/autoconf/toolchain.m4	Mon Apr 27 09:17:39 2015 -0700
@@ -662,13 +662,6 @@
     USE_CLANG=true
   fi
   AC_SUBST(USE_CLANG)
-
-  # LDEXE is the linker to use, when creating executables. Not really used.
-  # FIXME: These should just be removed!
-  LDEXE="$LD"
-  LDEXECXX="$LDCXX"
-  AC_SUBST(LDEXE)
-  AC_SUBST(LDEXECXX)
 ])
 
 # Do some additional checks on the detected tools.
--- a/common/bin/unshuffle_list.txt	Fri Apr 24 15:45:25 2015 +0300
+++ b/common/bin/unshuffle_list.txt	Mon Apr 27 09:17:39 2015 -0700
@@ -1294,6 +1294,9 @@
 jdk/src/jdk.crypto.pkcs11/windows/native/libj2pkcs11/p11_md.c : jdk/src/windows/native/sun/security/pkcs11/wrapper/p11_md.c
 jdk/src/jdk.crypto.pkcs11/windows/native/libj2pkcs11/p11_md.h : jdk/src/windows/native/sun/security/pkcs11/wrapper/p11_md.h
 jdk/src/jdk.deploy.osx/macosx/classes/com/apple/concurrent/package.html : jdk/src/macosx/classes/com/apple/concurrent/package.html
+jdk/src/jdk.deploy.osx/macosx/classes/apple/applescript : jdk/src/macosx/classes/apple/applescript
+jdk/src/jdk.deploy.osx/macosx/classes/apple/security : jdk/src/macosx/classes/apple/security
+jdk/src/jdk.deploy.osx/macosx/classes/com/apple/concurrent : jdk/src/macosx/classes/com/apple/concurrent
 jdk/src/jdk.deploy.osx/macosx/native/libapplescriptengine : jdk/src/macosx/native/apple/applescript
 jdk/src/jdk.deploy.osx/macosx/native/libosx/CFileManager.m : jdk/src/macosx/native/com/apple/eio/CFileManager.m
 jdk/src/jdk.deploy.osx/macosx/native/libosx/Dispatch.m : jdk/src/macosx/native/com/apple/concurrent/Dispatch.m
--- a/corba/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -302,3 +302,5 @@
 d8ebf1a5b18ccbc849f5bf0f80aa3d78583eee68 jdk9-b57
 86dd5de1f5cb09073019bd629e22cfcd012d8b4b jdk9-b58
 cda6ae062f85fac5555f4e1318885b0ecd998bd1 jdk9-b59
+caa330b275f39282793466529f6864766b31d9fd jdk9-b60
+d690f489ca0bb95a6157d996da2fa72bcbcf02ea jdk9-b61
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/corba/RequestImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/corba/RequestImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,7 @@
 import com.sun.corba.se.spi.logging.CORBALogDomains;
 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
 import com.sun.corba.se.impl.corba.AsynchInvoke;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
 
 public class RequestImpl
     extends Request
@@ -255,7 +256,7 @@
     public synchronized void send_deferred()
     {
         AsynchInvoke invokeObject = new AsynchInvoke(_orb, this, false);
-        new Thread(invokeObject).start();
+        new ManagedLocalsThread(invokeObject).start();
     }
 
     public synchronized boolean poll_response()
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1768,43 +1768,59 @@
             switch (field.getTypeCode()) {
                 case 'B':
                     byte byteValue = orbStream.read_octet();
-                    bridge.putByte( o, field.getFieldID(), byteValue ) ;
-                    //reflective code: field.getField().setByte( o, byteValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putByte( o, field.getFieldID(), byteValue ) ;
+                        //reflective code: field.getField().setByte( o, byteValue ) ;
+                    }
                     break;
                 case 'Z':
                     boolean booleanValue = orbStream.read_boolean();
-                    bridge.putBoolean( o, field.getFieldID(), booleanValue ) ;
-                    //reflective code: field.getField().setBoolean( o, booleanValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putBoolean( o, field.getFieldID(), booleanValue ) ;
+                        //reflective code: field.getField().setBoolean( o, booleanValue ) ;
+                    }
                     break;
                 case 'C':
                     char charValue = orbStream.read_wchar();
-                    bridge.putChar( o, field.getFieldID(), charValue ) ;
-                    //reflective code: field.getField().setChar( o, charValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putChar( o, field.getFieldID(), charValue ) ;
+                        //reflective code: field.getField().setChar( o, charValue ) ;
+                    }
                     break;
                 case 'S':
                     short shortValue = orbStream.read_short();
-                    bridge.putShort( o, field.getFieldID(), shortValue ) ;
-                    //reflective code: field.getField().setShort( o, shortValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putShort( o, field.getFieldID(), shortValue ) ;
+                        //reflective code: field.getField().setShort( o, shortValue ) ;
+                    }
                     break;
                 case 'I':
                     int intValue = orbStream.read_long();
-                    bridge.putInt( o, field.getFieldID(), intValue ) ;
-                    //reflective code: field.getField().setInt( o, intValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putInt( o, field.getFieldID(), intValue ) ;
+                        //reflective code: field.getField().setInt( o, intValue ) ;
+                    }
                     break;
                 case 'J':
                     long longValue = orbStream.read_longlong();
-                    bridge.putLong( o, field.getFieldID(), longValue ) ;
-                    //reflective code: field.getField().setLong( o, longValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putLong( o, field.getFieldID(), longValue ) ;
+                        //reflective code: field.getField().setLong( o, longValue ) ;
+                    }
                     break;
                 case 'F' :
                     float floatValue = orbStream.read_float();
-                    bridge.putFloat( o, field.getFieldID(), floatValue ) ;
-                    //reflective code: field.getField().setFloat( o, floatValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putFloat( o, field.getFieldID(), floatValue ) ;
+                        //reflective code: field.getField().setFloat( o, floatValue ) ;
+                    }
                     break;
                 case 'D' :
                     double doubleValue = orbStream.read_double();
-                    bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
-                    //reflective code: field.getField().setDouble( o, doubleValue ) ;
+                    if (field.getField() != null) {
+                        bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
+                        //reflective code: field.getField().setDouble( o, doubleValue ) ;
+                    }
                     break;
                 default:
                     // XXX I18N, logging needed.
@@ -2217,9 +2233,6 @@
 
         if (o != null) {
             for (int i = 0; i < primFields; ++i) {
-                if (fields[i].getField() == null)
-                    continue;
-
                 inputPrimitiveField(o, cl, fields[i]);
             }
         }
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
 package com.sun.corba.se.impl.io;
 
 import java.io.IOException;
+import java.io.NotActiveException;
 import java.io.OutputStream;
 import java.io.ObjectOutputStream;
 import java.io.ObjectOutput;
@@ -154,7 +155,9 @@
 
     public ObjectOutputStream.PutField putFields()
         throws IOException {
-        putFields = new HookPutFields();
+        if (putFields == null) {
+            putFields = new HookPutFields();
+        }
         return putFields;
     }
 
@@ -175,8 +178,11 @@
         throws IOException {
 
         writeObjectState.defaultWriteObject(this);
-
-        putFields.write(this);
+        if (putFields != null) {
+            putFields.write(this);
+        } else {
+            throw new NotActiveException("no current PutField object");
+        }
     }
 
     abstract org.omg.CORBA_2_3.portable.OutputStream getOrbStream();
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/Util.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/Util.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -112,6 +112,8 @@
 import com.sun.corba.se.impl.logging.UtilSystemException;
 import com.sun.corba.se.spi.logging.CORBALogDomains;
 import sun.corba.SharedSecrets;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
+
 
 /**
  * Provides utility methods that can be used by stubs and ties to
@@ -750,7 +752,7 @@
     }
 }
 
-class KeepAlive extends Thread
+class KeepAlive extends ManagedLocalsThread
 {
     boolean quit = false;
 
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/oa/poa/POAImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/oa/poa/POAImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -103,6 +103,7 @@
 import com.sun.corba.se.impl.orbutil.concurrent.SyncUtil ;
 import com.sun.corba.se.impl.orbutil.concurrent.ReentrantMutex ;
 import com.sun.corba.se.impl.orbutil.concurrent.CondVar ;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
 
 /**
  * POAImpl is the implementation of the Portable Object Adapter. It
@@ -516,7 +517,7 @@
 
     // Converted from anonymous class to local class
     // so that we can call performDestroy() directly.
-    static class DestroyThread extends Thread {
+    static class DestroyThread extends ManagedLocalsThread {
         private boolean wait ;
         private boolean etherealize ;
         private boolean debug ;
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/oa/poa/POAManagerImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/oa/poa/POAManagerImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@
 import com.sun.corba.se.impl.logging.POASystemException ;
 
 import com.sun.corba.se.impl.orbutil.ORBUtility ;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
 
 /** POAManagerImpl is the implementation of the POAManager interface.
  *  Its public methods are activate(), hold_requests(), discard_requests()
@@ -357,7 +358,7 @@
             if (wait_for_completion)
                 deactivator.run() ;
             else {
-                Thread thr = new Thread(deactivator) ;
+                Thread thr = new ManagedLocalsThread(deactivator) ;
                 thr.start() ;
             }
         } finally {
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_R_USM.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_R_USM.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package com.sun.corba.se.impl.oa.poa ;
 
 import java.util.Set ;
-
 import org.omg.CORBA.SystemException ;
 
 import org.omg.PortableServer.ServantActivator ;
@@ -50,6 +49,7 @@
 
 import com.sun.corba.se.spi.oa.OAInvocationInfo ;
 import com.sun.corba.se.spi.oa.NullServant ;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
 
 /** Implementation of POARequesHandler that provides policy specific
  * operations on the POA.
@@ -303,13 +303,14 @@
         throw new WrongPolicy();
     }
 
-    class Etherealizer extends Thread {
+    class Etherealizer extends ManagedLocalsThread {
         private POAPolicyMediatorImpl_R_USM mediator ;
         private ActiveObjectMap.Key key ;
         private AOMEntry entry ;
         private Servant servant ;
         private boolean debug ;
 
+
         public Etherealizer( POAPolicyMediatorImpl_R_USM mediator,
             ActiveObjectMap.Key key, AOMEntry entry, Servant servant,
             boolean debug )
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -165,6 +165,7 @@
 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
 import com.sun.corba.se.impl.copyobject.CopierManagerImpl;
 import com.sun.corba.se.impl.presentation.rmi.PresentationManagerImpl;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
 
 /**
  * The JavaIDL ORB implementation.
@@ -691,7 +692,7 @@
         for (int i = 0; i < req.length; i++) {
             AsynchInvoke invokeObject = new AsynchInvoke( this,
                 (com.sun.corba.se.impl.corba.RequestImpl)req[i], true);
-            new Thread(invokeObject).start();
+            new ManagedLocalsThread(invokeObject).start();
         }
     }
 
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,6 +54,7 @@
 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
 import com.sun.corba.se.impl.orbutil.ORBConstants;
 import com.sun.corba.se.spi.logging.CORBALogDomains;
+import com.sun.corba.se.impl.transport.ManagedLocalsThread;
 
 public class ThreadPoolImpl implements ThreadPool
 {
@@ -459,7 +460,7 @@
     }
 
 
-    private class WorkerThread extends Thread implements Closeable
+    private class WorkerThread extends ManagedLocalsThread implements Closeable
     {
         private Work currentWork;
         private int threadId = 0; // unique id for the thread
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/transport/ManagedLocalsThread.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.corba.se.impl.transport;
+
+import sun.misc.Unsafe;
+import java.lang.reflect.Field;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * A thread that has it's thread locals, and inheritable thread
+ * locals erased on construction.
+ */
+public class ManagedLocalsThread extends Thread {
+    private static final Unsafe UNSAFE;
+    private static final long THREAD_LOCALS;
+    private static final long INHERITABLE_THREAD_LOCALS;
+
+    public ManagedLocalsThread () {
+        super();
+    }
+
+    public ManagedLocalsThread(String  name) {
+        super(name);
+        eraseThreadLocals();
+    }
+    public ManagedLocalsThread(Runnable target) {
+        super(target);
+        eraseThreadLocals();
+    }
+
+    public ManagedLocalsThread(Runnable target, String name) {
+        super(target, name);
+        eraseThreadLocals();
+    }
+
+    public ManagedLocalsThread(ThreadGroup group, Runnable target, String name) {
+        super(group, target, name);
+        eraseThreadLocals();
+    }
+
+    public ManagedLocalsThread(ThreadGroup group, String name) {
+        super(group, name);
+        eraseThreadLocals();
+    }
+
+    /**
+     * Drops all thread locals (and inherited thread locals).
+     */
+    public final void eraseThreadLocals() {
+                UNSAFE.putObject(this, THREAD_LOCALS, null);
+                UNSAFE.putObject(this, INHERITABLE_THREAD_LOCALS, null);
+    }
+
+    private static Unsafe getUnsafe() {
+        PrivilegedAction<Unsafe> pa = () -> {
+            Class<?> unsafeClass = sun.misc.Unsafe.class;
+            try {
+                Field f = unsafeClass.getDeclaredField("theUnsafe");
+                f.setAccessible(true);
+                return (Unsafe) f.get(null);
+            } catch (Exception e) {
+                throw new Error(e);
+            }
+        };
+        return AccessController.doPrivileged(pa);
+    }
+
+    private static long getThreadFieldOffset(String fieldName) {
+        PrivilegedAction<Long> pa = () -> {
+            Class<?> t = Thread.class;
+            long fieldOffset;
+            try {
+                fieldOffset = UNSAFE.objectFieldOffset(t
+                        .getDeclaredField("inheritableThreadLocals"));
+            } catch (Exception e) {
+                throw new Error(e);
+            }
+            return fieldOffset;
+        };
+        return AccessController.doPrivileged(pa);
+    }
+
+    static {
+        UNSAFE = getUnsafe();
+        try {
+            THREAD_LOCALS = getThreadFieldOffset("threadLocals");
+            INHERITABLE_THREAD_LOCALS = getThreadFieldOffset("inheritableThreadLocals");
+        } catch (Exception e) {
+            throw new Error(e);
+        }
+    }
+}
--- a/corba/src/java.corba/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/corba/src/java.corba/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -57,7 +57,7 @@
  */
 class SelectorImpl
     extends
-        Thread
+        ManagedLocalsThread
     implements
         com.sun.corba.se.pept.transport.Selector
 {
--- a/hotspot/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -462,3 +462,5 @@
 56a85ffe743d3f9d70ba25d6ce82ddd2ad1bf33c jdk9-b57
 ee878f3d6732856f7725c590312bfbe2ffa52cc7 jdk9-b58
 96bcaec07cb165782bae1b9a1f28450b37a10e3a jdk9-b59
+9c916db4bf3bc164a47b5a9cefe5ffd71e111f6a jdk9-b60
+715d2da5801c410746e92f08066d53bde1496286 jdk9-b61
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad	Mon Apr 27 09:17:39 2015 -0700
@@ -793,38 +793,832 @@
   }
 };
 
-  bool preceded_by_ordered_load(const Node *barrier);
+  // graph traversal helpers
+  MemBarNode *has_parent_membar(const Node *n,
+				ProjNode *&ctl, ProjNode *&mem);
+  MemBarNode *has_child_membar(const MemBarNode *n,
+			       ProjNode *&ctl, ProjNode *&mem);
+
+  // predicates controlling emit of ldr<x>/ldar<x> and associated dmb
+  bool unnecessary_acquire(const Node *barrier);
+  bool needs_acquiring_load(const Node *load);
+
+  // predicates controlling emit of str<x>/stlr<x> and associated dmbs
+  bool unnecessary_release(const Node *barrier);
+  bool unnecessary_volatile(const Node *barrier);
+  bool needs_releasing_store(const Node *store);
 
   // Use barrier instructions rather than load acquire / store
   // release.
-  const bool UseBarriersForVolatile = true;
+  const bool UseBarriersForVolatile = false;
+  // Use barrier instructions for unsafe volatile gets rather than
+  // trying to identify an exact signature for them
+  const bool UseBarriersForUnsafeVolatileGet = false;
 %}
 
 source %{
 
-  // AArch64 has load acquire and store release instructions which we
-  // use for ordered memory accesses, e.g. for volatiles.  The ideal
-  // graph generator also inserts memory barriers around volatile
-  // accesses, and we don't want to generate both barriers and acq/rel
-  // instructions.  So, when we emit a MemBarAcquire we look back in
-  // the ideal graph for an ordered load and only emit the barrier if
-  // we don't find one.
-
-bool preceded_by_ordered_load(const Node *barrier) {
+  // AArch64 has ldar<x> and stlr<x> instructions which we can safely
+  // use to implement volatile reads and writes. For a volatile read
+  // we simply need
+  //
+  //   ldar<x>
+  //
+  // and for a volatile write we need
+  //
+  //   stlr<x>
+  // 
+  // Alternatively, we can implement them by pairing a normal
+  // load/store with a memory barrier. For a volatile read we need
+  // 
+  //   ldr<x>
+  //   dmb ishld
+  //
+  // for a volatile write
+  //
+  //   dmb ish
+  //   str<x>
+  //   dmb ish
+  //
+  // In order to generate the desired instruction sequence we need to
+  // be able to identify specific 'signature' ideal graph node
+  // sequences which i) occur as a translation of a volatile reads or
+  // writes and ii) do not occur through any other translation or
+  // graph transformation. We can then provide alternative aldc
+  // matching rules which translate these node sequences to the
+  // desired machine code sequences. Selection of the alternative
+  // rules can be implemented by predicates which identify the
+  // relevant node sequences.
+  //
+  // The ideal graph generator translates a volatile read to the node
+  // sequence
+  //
+  //   LoadX[mo_acquire]
+  //   MemBarAcquire
+  //
+  // As a special case when using the compressed oops optimization we
+  // may also see this variant
+  //
+  //   LoadN[mo_acquire]
+  //   DecodeN
+  //   MemBarAcquire
+  //
+  // A volatile write is translated to the node sequence
+  //
+  //   MemBarRelease
+  //   StoreX[mo_release]
+  //   MemBarVolatile
+  //
+  // n.b. the above node patterns are generated with a strict
+  // 'signature' configuration of input and output dependencies (see
+  // the predicates below for exact details). The two signatures are
+  // unique to translated volatile reads/stores -- they will not
+  // appear as a result of any other bytecode translation or inlining
+  // nor as a consequence of optimizing transforms.
+  //
+  // We also want to catch inlined unsafe volatile gets and puts and
+  // be able to implement them using either ldar<x>/stlr<x> or some
+  // combination of ldr<x>/stlr<x> and dmb instructions.
+  //
+  // Inlined unsafe volatiles puts manifest as a minor variant of the
+  // normal volatile put node sequence containing an extra cpuorder
+  // membar
+  //
+  //   MemBarRelease
+  //   MemBarCPUOrder
+  //   StoreX[mo_release]
+  //   MemBarVolatile
+  //
+  // n.b. as an aside, the cpuorder membar is not itself subject to
+  // matching and translation by adlc rules.  However, the rule
+  // predicates need to detect its presence in order to correctly
+  // select the desired adlc rules.
+  //
+  // Inlined unsafe volatiles gets manifest as a somewhat different
+  // node sequence to a normal volatile get
+  //
+  //   MemBarCPUOrder
+  //        ||       \\
+  //   MemBarAcquire LoadX[mo_acquire]
+  //        ||
+  //   MemBarCPUOrder
+  //
+  // In this case the acquire membar does not directly depend on the
+  // load. However, we can be sure that the load is generated from an
+  // inlined unsafe volatile get if we see it dependent on this unique
+  // sequence of membar nodes. Similarly, given an acquire membar we
+  // can know that it was added because of an inlined unsafe volatile
+  // get if it is fed and feeds a cpuorder membar and if its feed
+  // membar also feeds an acquiring load.
+  //
+  // So, where we can identify these volatile read and write
+  // signatures we can choose to plant either of the above two code
+  // sequences. For a volatile read we can simply plant a normal
+  // ldr<x> and translate the MemBarAcquire to a dmb. However, we can
+  // also choose to inhibit translation of the MemBarAcquire and
+  // inhibit planting of the ldr<x>, instead planting an ldar<x>.
+  //
+  // When we recognise a volatile store signature we can choose to
+  // plant at a dmb ish as a translation for the MemBarRelease, a
+  // normal str<x> and then a dmb ish for the MemBarVolatile.
+  // Alternatively, we can inhibit translation of the MemBarRelease
+  // and MemBarVolatile and instead plant a simple stlr<x>
+  // instruction.
+  //
+  // Of course, the above only applies when we see these signature
+  // configurations. We still want to plant dmb instructions in any
+  // other cases where we may see a MemBarAcquire, MemBarRelease or
+  // MemBarVolatile. For example, at the end of a constructor which
+  // writes final/volatile fields we will see a MemBarRelease
+  // instruction and this needs a 'dmb ish' lest we risk the
+  // constructed object being visible without making the
+  // final/volatile field writes visible.
+  //
+  // n.b. the translation rules below which rely on detection of the
+  // volatile signatures and insert ldar<x> or stlr<x> are failsafe.
+  // If we see anything other than the signature configurations we
+  // always just translate the loads and stors to ldr<x> and str<x>
+  // and translate acquire, release and volatile membars to the
+  // relevant dmb instructions.
+  //
+  // n.b.b as a case in point for the above comment, the current
+  // predicates don't detect the precise signature for certain types
+  // of volatile object stores (where the heap_base input type is not
+  // known at compile-time to be non-NULL). In those cases the
+  // MemBarRelease and MemBarVolatile bracket an if-then-else sequence
+  // with a store in each branch (we need a different store depending
+  // on whether heap_base is actually NULL). In such a case we will
+  // just plant a dmb both before and after the branch/merge. The
+  // predicate could (and probably should) be fixed later to also
+  // detect this case.
+
+  // graph traversal helpers
+
+  // if node n is linked to a parent MemBarNode by an intervening
+  // Control or Memory ProjNode return the MemBarNode otherwise return
+  // NULL.
+  //
+  // n may only be a Load or a MemBar.
+  //
+  // The ProjNode* references c and m are used to return the relevant
+  // nodes.
+
+  MemBarNode *has_parent_membar(const Node *n, ProjNode *&c, ProjNode *&m)
+  {
+    Node *ctl = NULL;
+    Node *mem = NULL;
+    Node *membar = NULL;
+
+    if (n->is_Load()) {
+      ctl = n->lookup(LoadNode::Control);
+      mem = n->lookup(LoadNode::Memory);
+    } else if (n->is_MemBar()) {
+      ctl = n->lookup(TypeFunc::Control);
+      mem = n->lookup(TypeFunc::Memory);
+    } else {
+	return NULL;
+    }
+
+    if (!ctl || !mem || !ctl->is_Proj() || !mem->is_Proj())
+      return NULL;
+
+    c = ctl->as_Proj();
+
+    membar = ctl->lookup(0);
+
+    if (!membar || !membar->is_MemBar())
+      return NULL;
+
+    m = mem->as_Proj();
+
+    if (mem->lookup(0) != membar)
+      return NULL;
+
+    return membar->as_MemBar();
+  }
+
+  // if n is linked to a child MemBarNode by intervening Control and
+  // Memory ProjNodes return the MemBarNode otherwise return NULL.
+  //
+  // The ProjNode** arguments c and m are used to return pointers to
+  // the relevant nodes. A null argument means don't don't return a
+  // value.
+
+  MemBarNode *has_child_membar(const MemBarNode *n, ProjNode *&c, ProjNode *&m)
+  {
+    ProjNode *ctl = n->proj_out(TypeFunc::Control);
+    ProjNode *mem = n->proj_out(TypeFunc::Memory);
+
+    // MemBar needs to have both a Ctl and Mem projection
+    if (! ctl || ! mem)
+      return NULL;
+
+    c = ctl;
+    m = mem;
+
+    MemBarNode *child = NULL;
+    Node *x;
+
+    for (DUIterator_Fast imax, i = ctl->fast_outs(imax); i < imax; i++) {
+      x = ctl->fast_out(i);
+      // if we see a membar we keep hold of it. we may also see a new
+      // arena copy of the original but it will appear later
+      if (x->is_MemBar()) {
+	  child = x->as_MemBar();
+	  break;
+      }
+    }
+
+    if (child == NULL)
+      return NULL;
+
+    for (DUIterator_Fast imax, i = mem->fast_outs(imax); i < imax; i++) {
+      x = mem->fast_out(i);
+      // if we see a membar we keep hold of it. we may also see a new
+      // arena copy of the original but it will appear later
+      if (x == child) {
+	return child;
+      }
+    }
+    return NULL;
+  }
+
+  // predicates controlling emit of ldr<x>/ldar<x> and associated dmb
+
+bool unnecessary_acquire(const Node *barrier) {
+  // assert barrier->is_MemBar();
+  if (UseBarriersForVolatile)
+    // we need to plant a dmb
+    return false;
+
+  // a volatile read derived from bytecode (or also from an inlined
+  // SHA field read via LibraryCallKit::load_field_from_object)
+  // manifests as a LoadX[mo_acquire] followed by an acquire membar
+  // with a bogus read dependency on it's preceding load. so in those
+  // cases we will find the load node at the PARMS offset of the
+  // acquire membar.  n.b. there may be an intervening DecodeN node.
+  //
+  // a volatile load derived from an inlined unsafe field access
+  // manifests as a cpuorder membar with Ctl and Mem projections
+  // feeding both an acquire membar and a LoadX[mo_acquire]. The
+  // acquire then feeds another cpuorder membar via Ctl and Mem
+  // projections. The load has no output dependency on these trailing
+  // membars because subsequent nodes inserted into the graph take
+  // their control feed from the final membar cpuorder meaning they
+  // are all ordered after the load.
+
   Node *x = barrier->lookup(TypeFunc::Parms);
-
-  if (! x)
+  if (x) {
+    // we are starting from an acquire and it has a fake dependency
+    //
+    // need to check for
+    //
+    //   LoadX[mo_acquire]
+    //   {  |1   }
+    //   {DecodeN}
+    //      |Parms
+    //   MemBarAcquire*
+    //
+    // where * tags node we were passed
+    // and |k means input k
+    if (x->is_DecodeNarrowPtr())
+      x = x->in(1);
+
+    return (x->is_Load() && x->as_Load()->is_acquire());
+  }
+  
+  // only continue if we want to try to match unsafe volatile gets
+  if (UseBarriersForUnsafeVolatileGet)
+    return false;
+
+  // need to check for
+  //
+  //     MemBarCPUOrder
+  //        ||       \\
+  //   MemBarAcquire* LoadX[mo_acquire]
+  //        ||
+  //   MemBarCPUOrder
+  //
+  // where * tags node we were passed
+  // and || or \\ are Ctl+Mem feeds via intermediate Proj Nodes
+
+  // check for a parent MemBarCPUOrder
+  ProjNode *ctl;
+  ProjNode *mem;
+  MemBarNode *parent = has_parent_membar(barrier, ctl, mem);
+  if (!parent || parent->Opcode() != Op_MemBarCPUOrder)
+    return false;
+  // ensure the proj nodes both feed a LoadX[mo_acquire]
+  LoadNode *ld = NULL;
+  for (DUIterator_Fast imax, i = ctl->fast_outs(imax); i < imax; i++) {
+    x = ctl->fast_out(i);
+    // if we see a load we keep hold of it and stop searching
+    if (x->is_Load()) {
+      ld = x->as_Load();
+      break;
+    }
+  }
+  // it must be an acquiring load
+  if (! ld || ! ld->is_acquire())
+    return false;
+  for (DUIterator_Fast imax, i = mem->fast_outs(imax); i < imax; i++) {
+    x = mem->fast_out(i);
+    // if we see the same load we drop it and stop searching
+    if (x == ld) {
+      ld = NULL;
+      break;
+    }
+  }
+  // we must have dropped the load
+  if (ld)
+    return false;
+  // check for a child cpuorder membar
+  MemBarNode *child  = has_child_membar(barrier->as_MemBar(), ctl, mem);
+  if (!child || child->Opcode() != Op_MemBarCPUOrder)
+    return false;
+
+  return true;
+}
+
+bool needs_acquiring_load(const Node *n)
+{
+  // assert n->is_Load();
+  if (UseBarriersForVolatile)
+    // we use a normal load and a dmb
+    return false;
+
+  LoadNode *ld = n->as_Load();
+
+  if (!ld->is_acquire())
+    return false;
+
+  // check if this load is feeding an acquire membar
+  //
+  //   LoadX[mo_acquire]
+  //   {  |1   }
+  //   {DecodeN}
+  //      |Parms
+  //   MemBarAcquire*
+  //
+  // where * tags node we were passed
+  // and |k means input k
+
+  Node *start = ld;
+  Node *mbacq = NULL;
+
+  // if we hit a DecodeNarrowPtr we reset the start node and restart
+  // the search through the outputs
+ restart:
+
+  for (DUIterator_Fast imax, i = start->fast_outs(imax); i < imax; i++) {
+    Node *x = start->fast_out(i);
+    if (x->is_MemBar() && x->Opcode() == Op_MemBarAcquire) {
+      mbacq = x;
+    } else if (!mbacq &&
+	       (x->is_DecodeNarrowPtr() ||
+		(x->is_Mach() && x->Opcode() == Op_DecodeN))) {
+      start = x;
+      goto restart;
+    }
+  }
+
+  if (mbacq) {
+    return true;
+  }
+
+  // only continue if we want to try to match unsafe volatile gets
+  if (UseBarriersForUnsafeVolatileGet)
+    return false;
+
+  // check if Ctl and Proj feed comes from a MemBarCPUOrder
+  //
+  //     MemBarCPUOrder
+  //        ||       \\
+  //   MemBarAcquire* LoadX[mo_acquire]
+  //        ||
+  //   MemBarCPUOrder
+
+  MemBarNode *membar;
+  ProjNode *ctl;
+  ProjNode *mem;
+
+  membar = has_parent_membar(ld, ctl, mem);
+
+  if (!membar || !membar->Opcode() == Op_MemBarCPUOrder)
+    return false;
+
+  // ensure that there is a CPUOrder->Acquire->CPUOrder membar chain
+
+  membar = has_child_membar(membar, ctl, mem);
+
+  if (!membar || !membar->Opcode() == Op_MemBarAcquire)
+    return false;
+
+  membar = has_child_membar(membar, ctl, mem);
+  
+  if (!membar || !membar->Opcode() == Op_MemBarCPUOrder)
+    return false;
+
+  return true;
+}
+
+bool unnecessary_release(const Node *n) {
+  // assert n->is_MemBar();
+  if (UseBarriersForVolatile)
+    // we need to plant a dmb
+    return false;
+
+  // ok, so we can omit this release barrier if it has been inserted
+  // as part of a volatile store sequence
+  //
+  //   MemBarRelease
+  //  {      ||      }
+  //  {MemBarCPUOrder} -- optional
+  //         ||     \\
+  //         ||     StoreX[mo_release]
+  //         | \     /
+  //         | MergeMem
+  //         | /
+  //   MemBarVolatile
+  //
+  // where
+  //  || and \\ represent Ctl and Mem feeds via Proj nodes
+  //  | \ and / indicate further routing of the Ctl and Mem feeds
+  // 
+  // so we need to check that
+  //
+  // ia) the release membar (or its dependent cpuorder membar) feeds
+  // control to a store node (via a Control project node)
+  //
+  // ii) the store is ordered release
+  //
+  // iii) the release membar (or its dependent cpuorder membar) feeds
+  // control to a volatile membar (via the same Control project node)
+  //
+  // iv) the release membar feeds memory to a merge mem and to the
+  // same store (both via a single Memory proj node)
+  //
+  // v) the store outputs to the merge mem
+  //
+  // vi) the merge mem outputs to the same volatile membar
+  //
+  // n.b. if this is an inlined unsafe node then the release membar
+  // may feed its control and memory links via an intervening cpuorder
+  // membar. this case can be dealt with when we check the release
+  // membar projections. if they both feed a single cpuorder membar
+  // node continue to make the same checks as above but with the
+  // cpuorder membar substituted for the release membar. if they don't
+  // both feed a cpuorder membar then the check fails.
+  //
+  // n.b.b. for an inlined unsafe store of an object in the case where
+  // !TypePtr::NULL_PTR->higher_equal(type(heap_base_oop)) we may see
+  // an embedded if then else where we expect the store. this is
+  // needed to do the right type of store depending on whether
+  // heap_base is NULL. We could check for that but for now we can
+  // just take the hit of on inserting a redundant dmb for this
+  // redundant volatile membar
+
+  MemBarNode *barrier = n->as_MemBar();
+  ProjNode *ctl;
+  ProjNode *mem;
+  // check for an intervening cpuorder membar
+  MemBarNode *b = has_child_membar(barrier, ctl, mem);
+  if (b && b->Opcode() == Op_MemBarCPUOrder) {
+    // ok, so start form the dependent cpuorder barrier
+    barrier = b;
+  }
+  // check the ctl and mem flow
+  ctl = barrier->proj_out(TypeFunc::Control);
+  mem = barrier->proj_out(TypeFunc::Memory);
+
+  // the barrier needs to have both a Ctl and Mem projection
+  if (! ctl || ! mem)
+    return false;
+
+  Node *x = NULL;
+  Node *mbvol = NULL;
+  StoreNode * st = NULL;
+
+  // For a normal volatile write the Ctl ProjNode should have output
+  // to a MemBarVolatile and a Store marked as releasing
+  //
+  // n.b. for an inlined unsafe store of an object in the case where
+  // !TypePtr::NULL_PTR->higher_equal(type(heap_base_oop)) we may see
+  // an embedded if then else where we expect the store. this is
+  // needed to do the right type of store depending on whether
+  // heap_base is NULL. We could check for that case too but for now
+  // we can just take the hit of inserting a dmb and a non-volatile
+  // store to implement the volatile store
+
+  for (DUIterator_Fast imax, i = ctl->fast_outs(imax); i < imax; i++) {
+    x = ctl->fast_out(i);
+    if (x->is_MemBar() && x->Opcode() == Op_MemBarVolatile) {
+      if (mbvol) {
+	return false;
+      }
+      mbvol = x;
+    } else if (x->is_Store()) {
+      st = x->as_Store();
+      if (! st->is_release()) {
+	return false;
+      }
+    } else if (!x->is_Mach()) {
+      // we may see mach nodes added during matching but nothing else
+      return false;
+    }
+  }
+
+  if (!mbvol || !st)
     return false;
 
-  if (x->is_DecodeNarrowPtr())
-    x = x->in(1);
-
-  if (x->is_Load())
-    return ! x->as_Load()->is_unordered();
-
-  return false;
+  // the Mem ProjNode should output to a MergeMem and the same Store
+  Node *mm = NULL;
+  for (DUIterator_Fast imax, i = mem->fast_outs(imax); i < imax; i++) {
+    x = mem->fast_out(i);
+    if (!mm && x->is_MergeMem()) {
+      mm = x;
+    } else if (x != st && !x->is_Mach()) {
+      // we may see mach nodes added during matching but nothing else
+      return false;
+    }
+  }
+
+  if (!mm)
+    return false;
+
+  // the MergeMem should output to the MemBarVolatile
+  for (DUIterator_Fast imax, i = mm->fast_outs(imax); i < imax; i++) {
+    x = mm->fast_out(i);
+    if (x != mbvol && !x->is_Mach()) {
+      // we may see mach nodes added during matching but nothing else
+      return false;
+    }
+  }
+
+  return true;
 }
 
+bool unnecessary_volatile(const Node *n) {
+  // assert n->is_MemBar();
+  if (UseBarriersForVolatile)
+    // we need to plant a dmb
+    return false;
+
+  // ok, so we can omit this volatile barrier if it has been inserted
+  // as part of a volatile store sequence
+  //
+  //   MemBarRelease
+  //  {      ||      }
+  //  {MemBarCPUOrder} -- optional
+  //         ||     \\
+  //         ||     StoreX[mo_release]
+  //         | \     /
+  //         | MergeMem
+  //         | /
+  //   MemBarVolatile
+  //
+  // where
+  //  || and \\ represent Ctl and Mem feeds via Proj nodes
+  //  | \ and / indicate further routing of the Ctl and Mem feeds
+  // 
+  // we need to check that
+  //
+  // i) the volatile membar gets its control feed from a release
+  // membar (or its dependent cpuorder membar) via a Control project
+  // node
+  //
+  // ii) the release membar (or its dependent cpuorder membar) also
+  // feeds control to a store node via the same proj node
+  //
+  // iii) the store is ordered release
+  //
+  // iv) the release membar (or its dependent cpuorder membar) feeds
+  // memory to a merge mem and to the same store (both via a single
+  // Memory proj node)
+  //
+  // v) the store outputs to the merge mem
+  //
+  // vi) the merge mem outputs to the volatile membar
+  //
+  // n.b. for an inlined unsafe store of an object in the case where
+  // !TypePtr::NULL_PTR->higher_equal(type(heap_base_oop)) we may see
+  // an embedded if then else where we expect the store. this is
+  // needed to do the right type of store depending on whether
+  // heap_base is NULL. We could check for that but for now we can
+  // just take the hit of on inserting a redundant dmb for this
+  // redundant volatile membar
+
+  MemBarNode *mbvol = n->as_MemBar();
+  Node *x = n->lookup(TypeFunc::Control);
+
+  if (! x || !x->is_Proj())
+    return false;
+
+  ProjNode *proj = x->as_Proj();
+
+  x = proj->lookup(0);
+
+  if (!x || !x->is_MemBar())
+    return false;
+
+  MemBarNode *barrier = x->as_MemBar();
+
+  // if the barrier is a release membar we have what we want. if it is
+  // a cpuorder membar then we need to ensure that it is fed by a
+  // release membar in which case we proceed to check the graph below
+  // this cpuorder membar as the feed
+
+  if (x->Opcode() != Op_MemBarRelease) {
+    if (x->Opcode() != Op_MemBarCPUOrder)
+      return false;
+    ProjNode *ctl;
+    ProjNode *mem;
+    MemBarNode *b = has_parent_membar(x, ctl, mem);
+    if (!b || !b->Opcode() == Op_MemBarRelease)
+      return false;
+  }
+
+  ProjNode *ctl = barrier->proj_out(TypeFunc::Control);
+  ProjNode *mem = barrier->proj_out(TypeFunc::Memory);
+
+  // barrier needs to have both a Ctl and Mem projection
+  // and we need to have reached it via the Ctl projection
+  if (! ctl || ! mem || ctl != proj)
+    return false;
+
+  StoreNode * st = NULL;
+
+  // The Ctl ProjNode should have output to a MemBarVolatile and
+  // a Store marked as releasing
+  for (DUIterator_Fast imax, i = ctl->fast_outs(imax); i < imax; i++) {
+    x = ctl->fast_out(i);
+    if (x->is_MemBar() && x->Opcode() == Op_MemBarVolatile) {
+      if (x != mbvol) {
+	return false;
+      }
+    } else if (x->is_Store()) {
+      st = x->as_Store();
+      if (! st->is_release()) {
+	return false;
+      }
+    } else if (!x->is_Mach()){
+      // we may see mach nodes added during matching but nothing else
+      return false;
+    }
+  }
+
+  if (!st)
+    return false;
+
+  // the Mem ProjNode should output to a MergeMem and the same Store
+  Node *mm = NULL;
+  for (DUIterator_Fast imax, i = mem->fast_outs(imax); i < imax; i++) {
+    x = mem->fast_out(i);
+    if (!mm && x->is_MergeMem()) {
+      mm = x;
+    } else if (x != st && !x->is_Mach()) {
+      // we may see mach nodes added during matching but nothing else
+      return false;
+    }
+  }
+
+  if (!mm)
+    return false;
+
+  // the MergeMem should output to the MemBarVolatile
+  for (DUIterator_Fast imax, i = mm->fast_outs(imax); i < imax; i++) {
+    x = mm->fast_out(i);
+    if (x != mbvol && !x->is_Mach()) {
+      // we may see mach nodes added during matching but nothing else
+      return false;
+    }
+  }
+
+  return true;
+}
+
+
+
+bool needs_releasing_store(const Node *n)
+{
+  // assert n->is_Store();
+  if (UseBarriersForVolatile)
+    // we use a normal store and dmb combination
+    return false;
+
+  StoreNode *st = n->as_Store();
+
+  if (!st->is_release())
+    return false;
+
+  // check if this store is bracketed by a release (or its dependent
+  // cpuorder membar) and a volatile membar
+  //
+  //   MemBarRelease
+  //  {      ||      }
+  //  {MemBarCPUOrder} -- optional
+  //         ||     \\
+  //         ||     StoreX[mo_release]
+  //         | \     /
+  //         | MergeMem
+  //         | /
+  //   MemBarVolatile
+  //
+  // where
+  //  || and \\ represent Ctl and Mem feeds via Proj nodes
+  //  | \ and / indicate further routing of the Ctl and Mem feeds
+  // 
+
+
+  Node *x = st->lookup(TypeFunc::Control);
+
+  if (! x || !x->is_Proj())
+    return false;
+
+  ProjNode *proj = x->as_Proj();
+
+  x = proj->lookup(0);
+
+  if (!x || !x->is_MemBar())
+    return false;
+
+  MemBarNode *barrier = x->as_MemBar();
+
+  // if the barrier is a release membar we have what we want. if it is
+  // a cpuorder membar then we need to ensure that it is fed by a
+  // release membar in which case we proceed to check the graph below
+  // this cpuorder membar as the feed
+
+  if (x->Opcode() != Op_MemBarRelease) {
+    if (x->Opcode() != Op_MemBarCPUOrder)
+      return false;
+    Node *ctl = x->lookup(TypeFunc::Control);
+    Node *mem = x->lookup(TypeFunc::Memory);
+    if (!ctl || !ctl->is_Proj() || !mem || !mem->is_Proj())
+      return false;
+    x = ctl->lookup(0);
+    if (!x || !x->is_MemBar() || !x->Opcode() == Op_MemBarRelease)
+      return false;
+    Node *y = mem->lookup(0);
+    if (!y || y != x)
+      return false;
+  }
+
+  ProjNode *ctl = barrier->proj_out(TypeFunc::Control);
+  ProjNode *mem = barrier->proj_out(TypeFunc::Memory);
+
+  // MemBarRelease needs to have both a Ctl and Mem projection
+  // and we need to have reached it via the Ctl projection
+  if (! ctl || ! mem || ctl != proj)
+    return false;
+
+  MemBarNode *mbvol = NULL;
+
+  // The Ctl ProjNode should have output to a MemBarVolatile and
+  // a Store marked as releasing
+  for (DUIterator_Fast imax, i = ctl->fast_outs(imax); i < imax; i++) {
+    x = ctl->fast_out(i);
+    if (x->is_MemBar() && x->Opcode() == Op_MemBarVolatile) {
+      mbvol = x->as_MemBar();
+    } else if (x->is_Store()) {
+      if (x != st) {
+	return false;
+      }
+    } else if (!x->is_Mach()){
+      return false;
+    }
+  }
+
+  if (!mbvol)
+    return false;
+
+  // the Mem ProjNode should output to a MergeMem and the same Store
+  Node *mm = NULL;
+  for (DUIterator_Fast imax, i = mem->fast_outs(imax); i < imax; i++) {
+    x = mem->fast_out(i);
+    if (!mm && x->is_MergeMem()) {
+      mm = x;
+    } else if (x != st && !x->is_Mach()) {
+      return false;
+    }
+  }
+
+  if (!mm)
+    return false;
+
+  // the MergeMem should output to the MemBarVolatile
+  for (DUIterator_Fast imax, i = mm->fast_outs(imax); i < imax; i++) {
+    x = mm->fast_out(i);
+    if (x != mbvol && !x->is_Mach()) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+
+
 #define __ _masm.
 
 // advance declarations for helper functions to convert register
@@ -5151,7 +5945,7 @@
 instruct loadB(iRegINoSp dst, memory mem)
 %{
   match(Set dst (LoadB mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrsbw  $dst, $mem\t# byte" %}
@@ -5165,7 +5959,7 @@
 instruct loadB2L(iRegLNoSp dst, memory mem)
 %{
   match(Set dst (ConvI2L (LoadB mem)));
-  predicate(UseBarriersForVolatile || n->in(1)->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n->in(1)));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrsb  $dst, $mem\t# byte" %}
@@ -5179,7 +5973,7 @@
 instruct loadUB(iRegINoSp dst, memory mem)
 %{
   match(Set dst (LoadUB mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrbw  $dst, $mem\t# byte" %}
@@ -5193,7 +5987,7 @@
 instruct loadUB2L(iRegLNoSp dst, memory mem)
 %{
   match(Set dst (ConvI2L (LoadUB mem)));
-  predicate(UseBarriersForVolatile || n->in(1)->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n->in(1)));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrb  $dst, $mem\t# byte" %}
@@ -5207,7 +6001,7 @@
 instruct loadS(iRegINoSp dst, memory mem)
 %{
   match(Set dst (LoadS mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrshw  $dst, $mem\t# short" %}
@@ -5221,7 +6015,7 @@
 instruct loadS2L(iRegLNoSp dst, memory mem)
 %{
   match(Set dst (ConvI2L (LoadS mem)));
-  predicate(UseBarriersForVolatile || n->in(1)->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n->in(1)));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrsh  $dst, $mem\t# short" %}
@@ -5235,7 +6029,7 @@
 instruct loadUS(iRegINoSp dst, memory mem)
 %{
   match(Set dst (LoadUS mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrh  $dst, $mem\t# short" %}
@@ -5249,7 +6043,7 @@
 instruct loadUS2L(iRegLNoSp dst, memory mem)
 %{
   match(Set dst (ConvI2L (LoadUS mem)));
-  predicate(UseBarriersForVolatile || n->in(1)->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n->in(1)));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrh  $dst, $mem\t# short" %}
@@ -5263,7 +6057,7 @@
 instruct loadI(iRegINoSp dst, memory mem)
 %{
   match(Set dst (LoadI mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrw  $dst, $mem\t# int" %}
@@ -5277,7 +6071,7 @@
 instruct loadI2L(iRegLNoSp dst, memory mem)
 %{
   match(Set dst (ConvI2L (LoadI mem)));
-  predicate(UseBarriersForVolatile || n->in(1)->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n->in(1)));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrsw  $dst, $mem\t# int" %}
@@ -5291,7 +6085,7 @@
 instruct loadUI2L(iRegLNoSp dst, memory mem, immL_32bits mask)
 %{
   match(Set dst (AndL (ConvI2L (LoadI mem)) mask));
-  predicate(UseBarriersForVolatile || n->in(1)->in(1)->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n->in(1)->in(1)->as_Load()));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrw  $dst, $mem\t# int" %}
@@ -5305,7 +6099,7 @@
 instruct loadL(iRegLNoSp dst, memory mem)
 %{
   match(Set dst (LoadL mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldr  $dst, $mem\t# int" %}
@@ -5332,7 +6126,7 @@
 instruct loadP(iRegPNoSp dst, memory mem)
 %{
   match(Set dst (LoadP mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldr  $dst, $mem\t# ptr" %}
@@ -5346,7 +6140,7 @@
 instruct loadN(iRegNNoSp dst, memory mem)
 %{
   match(Set dst (LoadN mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrw  $dst, $mem\t# compressed ptr" %}
@@ -5360,7 +6154,7 @@
 instruct loadKlass(iRegPNoSp dst, memory mem)
 %{
   match(Set dst (LoadKlass mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldr  $dst, $mem\t# class" %}
@@ -5374,7 +6168,7 @@
 instruct loadNKlass(iRegNNoSp dst, memory mem)
 %{
   match(Set dst (LoadNKlass mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrw  $dst, $mem\t# compressed class ptr" %}
@@ -5388,7 +6182,7 @@
 instruct loadF(vRegF dst, memory mem)
 %{
   match(Set dst (LoadF mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrs  $dst, $mem\t# float" %}
@@ -5402,7 +6196,7 @@
 instruct loadD(vRegD dst, memory mem)
 %{
   match(Set dst (LoadD mem));
-  predicate(UseBarriersForVolatile || n->as_Load()->is_unordered());
+  predicate(!needs_acquiring_load(n));
 
   ins_cost(4 * INSN_COST);
   format %{ "ldrd  $dst, $mem\t# double" %}
@@ -5633,7 +6427,7 @@
 instruct storeB(iRegIorL2I src, memory mem)
 %{
   match(Set mem (StoreB mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strb  $src, $mem\t# byte" %}
@@ -5647,7 +6441,7 @@
 instruct storeimmB0(immI0 zero, memory mem)
 %{
   match(Set mem (StoreB mem zero));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strb zr, $mem\t# byte" %}
@@ -5661,7 +6455,7 @@
 instruct storeC(iRegIorL2I src, memory mem)
 %{
   match(Set mem (StoreC mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strh  $src, $mem\t# short" %}
@@ -5674,7 +6468,7 @@
 instruct storeimmC0(immI0 zero, memory mem)
 %{
   match(Set mem (StoreC mem zero));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strh  zr, $mem\t# short" %}
@@ -5689,7 +6483,7 @@
 instruct storeI(iRegIorL2I src, memory mem)
 %{
   match(Set mem(StoreI mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strw  $src, $mem\t# int" %}
@@ -5702,7 +6496,7 @@
 instruct storeimmI0(immI0 zero, memory mem)
 %{
   match(Set mem(StoreI mem zero));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strw  zr, $mem\t# int" %}
@@ -5716,7 +6510,7 @@
 instruct storeL(iRegL src, memory mem)
 %{
   match(Set mem (StoreL mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "str  $src, $mem\t# int" %}
@@ -5730,7 +6524,7 @@
 instruct storeimmL0(immL0 zero, memory mem)
 %{
   match(Set mem (StoreL mem zero));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "str  zr, $mem\t# int" %}
@@ -5744,7 +6538,7 @@
 instruct storeP(iRegP src, memory mem)
 %{
   match(Set mem (StoreP mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "str  $src, $mem\t# ptr" %}
@@ -5758,7 +6552,7 @@
 instruct storeimmP0(immP0 zero, memory mem)
 %{
   match(Set mem (StoreP mem zero));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "str zr, $mem\t# ptr" %}
@@ -5772,7 +6566,7 @@
 instruct storeN(iRegN src, memory mem)
 %{
   match(Set mem (StoreN mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strw  $src, $mem\t# compressed ptr" %}
@@ -5787,7 +6581,7 @@
   match(Set mem (StoreN mem zero));
   predicate(Universe::narrow_oop_base() == NULL &&
             Universe::narrow_klass_base() == NULL &&
-            (UseBarriersForVolatile || n->as_Store()->is_unordered()));
+            (!needs_releasing_store(n)));
 
   ins_cost(INSN_COST);
   format %{ "strw  rheapbase, $mem\t# compressed ptr (rheapbase==0)" %}
@@ -5801,7 +6595,7 @@
 instruct storeF(vRegF src, memory mem)
 %{
   match(Set mem (StoreF mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strs  $src, $mem\t# float" %}
@@ -5818,7 +6612,7 @@
 instruct storeD(vRegD src, memory mem)
 %{
   match(Set mem (StoreD mem src));
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
 
   ins_cost(INSN_COST);
   format %{ "strd  $src, $mem\t# double" %}
@@ -5831,7 +6625,7 @@
 // Store Compressed Klass Pointer
 instruct storeNKlass(iRegN src, memory mem)
 %{
-  predicate(UseBarriersForVolatile || n->as_Store()->is_unordered());
+  predicate(!needs_releasing_store(n));
   match(Set mem (StoreNKlass mem src));
 
   ins_cost(INSN_COST);
@@ -6293,7 +7087,7 @@
 %}
 
 instruct unnecessary_membar_acquire() %{
-  predicate(! UseBarriersForVolatile && preceded_by_ordered_load(n));
+  predicate(unnecessary_acquire(n));
   match(MemBarAcquire);
   ins_cost(0);
 
@@ -6345,6 +7139,19 @@
   ins_pipe(pipe_serial);
 %}
 
+instruct unnecessary_membar_release() %{
+  predicate(unnecessary_release(n));
+  match(MemBarRelease);
+  ins_cost(0);
+
+  format %{ "membar_release (elided)" %}
+
+  ins_encode %{
+    __ block_comment("membar_release (elided)");
+  %}
+  ins_pipe(pipe_serial);
+%}
+
 instruct membar_release() %{
   match(MemBarRelease);
   ins_cost(VOLATILE_REF_COST);
@@ -6382,6 +7189,20 @@
   ins_pipe(pipe_serial);
 %}
 
+instruct unnecessary_membar_volatile() %{
+  predicate(unnecessary_volatile(n));
+  match(MemBarVolatile);
+  ins_cost(0);
+
+  format %{ "membar_volatile (elided)" %}
+
+  ins_encode %{
+    __ block_comment("membar_volatile (elided)");
+  %}
+
+  ins_pipe(pipe_serial);
+%}
+
 instruct membar_volatile() %{
   match(MemBarVolatile);
   ins_cost(VOLATILE_REF_COST*100);
--- a/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp	Mon Apr 27 09:17:39 2015 -0700
@@ -39,6 +39,8 @@
  protected:
 
  protected:
+  using MacroAssembler::call_VM_leaf_base;
+
   // Interpreter specific version of call_VM_base
   virtual void call_VM_leaf_base(address entry_point,
                                  int number_of_arguments);
--- a/hotspot/src/cpu/aarch64/vm/register_aarch64.hpp	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/cpu/aarch64/vm/register_aarch64.hpp	Mon Apr 27 09:17:39 2015 -0700
@@ -60,7 +60,10 @@
   bool  has_byte_register() const                { return 0 <= (intptr_t)this && (intptr_t)this < number_of_byte_registers; }
   const char* name() const;
   int   encoding_nocheck() const                 { return (intptr_t)this; }
-  unsigned long bit(bool yes = true) const       { return yes << encoding(); }
+
+  // Return the bit which represents this register.  This is intended
+  // to be ORed into a bitmask: for usage see class RegSet below.
+  unsigned long bit(bool should_set = true) const { return should_set ? 1 << encoding() : 0; }
 };
 
 // The integer registers of the aarch64 architecture
--- a/hotspot/src/share/vm/classfile/defaultMethods.cpp	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp	Mon Apr 27 09:17:39 2015 -0700
@@ -731,10 +731,12 @@
     Method* m = iklass->find_method(_method_name, _method_signature);
     // private interface methods are not candidates for default methods
     // invokespecial to private interface methods doesn't use default method logic
+    // private class methods are not candidates for default methods,
+    // private methods do not override default methods, so need to perform
+    // default method inheritance without including private methods
     // The overpasses are your supertypes' errors, we do not include them
     // future: take access controls into account for superclass methods
-    if (m != NULL && !m->is_static() && !m->is_overpass() &&
-         (!iklass->is_interface() || m->is_public())) {
+    if (m != NULL && !m->is_static() && !m->is_overpass() && !m->is_private()) {
       if (_family == NULL) {
         _family = new StatefulMethodFamily();
       }
@@ -745,6 +747,9 @@
       } else {
         // This is the rule that methods in classes "win" (bad word) over
         // methods in interfaces. This works because of single inheritance
+        // private methods in classes do not "win", they will be found
+        // first on searching, but overriding for invokevirtual needs
+        // to find default method candidates for the same signature
         _family->set_target_if_empty(m);
       }
     }
--- a/hotspot/src/share/vm/memory/referenceProcessor.cpp	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp	Mon Apr 27 09:17:39 2015 -0700
@@ -250,7 +250,7 @@
     // Cleaner references to be temporary, and don't want to deal with
     // possible incompatibilities arising from making it more visible.
     phantom_count +=
-      process_discovered_reflist(_discoveredCleanerRefs, NULL, false,
+      process_discovered_reflist(_discoveredCleanerRefs, NULL, true,
                                  is_alive, keep_alive, complete_gc, task_executor);
   }
 
--- a/hotspot/src/share/vm/oops/klassVtable.cpp	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/share/vm/oops/klassVtable.cpp	Mon Apr 27 09:17:39 2015 -0700
@@ -404,13 +404,15 @@
       // get super_klass for method_holder for the found method
       InstanceKlass* super_klass =  super_method->method_holder();
 
-      if (is_default
+      // private methods are also never overridden
+      if (!super_method->is_private() &&
+          (is_default
           || ((super_klass->is_override(super_method, target_loader, target_classname, THREAD))
           || ((klass->major_version() >= VTABLE_TRANSITIVE_OVERRIDE_VERSION)
           && ((super_klass = find_transitive_override(super_klass,
                              target_method, i, target_loader,
                              target_classname, THREAD))
-                             != (InstanceKlass*)NULL))))
+                             != (InstanceKlass*)NULL)))))
         {
         // Package private methods always need a new entry to root their own
         // overriding. They may also override other methods.
@@ -692,9 +694,15 @@
 // check if a method is a miranda method, given a class's methods table,
 // its default_method table  and its super
 // Miranda methods are calculated twice:
-// first: before vtable size calculation: including abstract and default
+// first: before vtable size calculation: including abstract and superinterface default
+// We include potential default methods to give them space in the vtable.
+// During the first run, the default_methods list is empty
 // This is seen by default method creation
-// Second: recalculated during vtable initialization: only abstract
+// Second: recalculated during vtable initialization: only include abstract methods.
+// During the second run, default_methods is set up, so concrete methods from
+// superinterfaces with matching names/signatures to default_methods are already
+// in the default_methods list and do not need to be appended to the vtable
+// as mirandas
 // This is seen by link resolution and selection.
 // "miranda" means not static, not defined by this class.
 // private methods in interfaces do not belong in the miranda list.
@@ -709,8 +717,9 @@
   }
   Symbol* name = m->name();
   Symbol* signature = m->signature();
+  Method* mo;
 
-  if (InstanceKlass::find_instance_method(class_methods, name, signature) == NULL) {
+  if ((mo = InstanceKlass::find_instance_method(class_methods, name, signature)) == NULL) {
     // did not find it in the method table of the current class
     if ((default_methods == NULL) ||
         InstanceKlass::find_method(default_methods, name, signature) == NULL) {
@@ -719,7 +728,7 @@
         return true;
       }
 
-      Method* mo = InstanceKlass::cast(super)->lookup_method(name, signature);
+      mo = InstanceKlass::cast(super)->lookup_method(name, signature);
       while (mo != NULL && mo->access_flags().is_static()
              && mo->method_holder() != NULL
              && mo->method_holder()->super() != NULL)
@@ -731,6 +740,18 @@
         return true;
       }
     }
+  } else {
+     // if the local class has a private method, the miranda will not
+     // override it, so a vtable slot is needed
+     if (mo->access_flags().is_private()) {
+
+       // Second round, weed out any superinterface methods that turned
+       // into default methods, i.e. were concrete not abstract in the end
+       if ((default_methods == NULL) ||
+         InstanceKlass::find_method(default_methods, name, signature) == NULL) {
+         return true;
+       }
+    }
   }
 
   return false;
--- a/hotspot/src/share/vm/runtime/arguments.cpp	Fri Apr 24 15:45:25 2015 +0300
+++ b/hotspot/src/share/vm/runtime/arguments.cpp	Mon Apr 27 09:17:39 2015 -0700
@@ -2320,7 +2320,7 @@
                                         "G1ConcMarkStepDurationMillis");
     status = status && verify_interval(G1ConcRSHotCardLimit, 0, max_jubyte,
                                        "G1ConcRSHotCardLimit");
-    status = status && verify_interval(G1ConcRSLogCacheSize, 0, 31,
+    status = status && verify_interval(G1ConcRSLogCacheSize, 0, 27,
                                        "G1ConcRSLogCacheSize");
     status = status && verify_interval(StringDeduplicationAgeThreshold, 1, markOopDesc::max_age,
                                        "StringDeduplicationAgeThreshold");
--- a/jaxp/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -302,3 +302,5 @@
 2c417f7d7b0dc98e887474884aa39f974894f0c2 jdk9-b57
 270fb9a2dcb5ff3ef95da6d529fa35187026af0a jdk9-b58
 a1a9d943446911a4a0f74f0d082c32094af944ae jdk9-b59
+c12db18748dacfccd6581ead29228c2cb6e51b34 jdk9-b60
+f4a4a54620370f077c2e830a5561c8cfa811712b jdk9-b61
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -150,6 +150,16 @@
      */
     public static final String SP_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth";
 
+    /**
+     * JDK TransformerFactory and Transformer attribute that specifies a class
+     * loader that will be used for extension functions class loading
+     * Value: a "null", the default value, means that the default EF class loading
+     * path will be used.
+     * Instance of ClassLoader: the specified instance of ClassLoader will be used
+     * for extension functions loading during translation process
+     */
+    public static final String JDK_EXTENSION_CLASSLOADER = "jdk.xml.transform.extensionClassLoader";
+
     //legacy System Properties
     public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit";
     public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ;
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java	Mon Apr 27 09:17:39 2015 -0700
@@ -104,6 +104,9 @@
     protected final static String EXSLT_STRINGS =
         "http://exslt.org/strings";
 
+    protected final static String XALAN_CLASSPACKAGE_NAMESPACE =
+        "xalan://";
+
     // Namespace format constants
     protected final static int NAMESPACE_FORMAT_JAVA = 0;
     protected final static int NAMESPACE_FORMAT_CLASS = 1;
@@ -900,8 +903,22 @@
           if (_className != null && _className.length() > 0) {
             final int nArgs = _arguments.size();
             try {
-              if (_clazz == null) {
-                _clazz = ObjectFactory.findProviderClass(_className, true);
+                if (_clazz == null) {
+                    final boolean isSecureProcessing = getXSLTC().isSecureProcessing();
+                    final boolean isExtensionFunctionEnabled = getXSLTC()
+                            .getFeature(FeatureManager.Feature.ORACLE_ENABLE_EXTENSION_FUNCTION);
+
+                    //Check if FSP and SM - only then process with loading
+                    if (namespace != null && isSecureProcessing
+                            && isExtensionFunctionEnabled
+                            && (namespace.equals(JAVA_EXT_XALAN)
+                            || namespace.equals(JAVA_EXT_XSLTC)
+                            || namespace.equals(JAVA_EXT_XALAN_OLD)
+                            || namespace.startsWith(XALAN_CLASSPACKAGE_NAMESPACE))) {
+                        _clazz = getXSLTC().loadExternalFunction(_className);
+                    } else {
+                        _clazz = ObjectFactory.findProviderClass(_className, true);
+                    }
 
                 if (_clazz == null) {
                   final ErrorMsg msg =
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java	Mon Apr 27 09:17:39 2015 -0700
@@ -23,24 +23,6 @@
 
 package com.sun.org.apache.xalan.internal.xsltc.compiler;
 
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Vector;
-import java.util.jar.JarEntry;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import javax.xml.XMLConstants;
-
 import com.sun.org.apache.bcel.internal.classfile.JavaClass;
 import com.sun.org.apache.xalan.internal.XalanConstants;
 import com.sun.org.apache.xalan.internal.utils.FeatureManager;
@@ -50,7 +32,27 @@
 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Util;
 import com.sun.org.apache.xml.internal.dtm.DTM;
-
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Vector;
+import java.util.jar.JarEntry;
+import java.util.jar.JarOutputStream;
+import java.util.jar.Manifest;
+import javax.xml.XMLConstants;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
 
@@ -153,11 +155,25 @@
     private final FeatureManager _featureManager;
 
     /**
+    *  Extension function class loader variables
+    */
+
+    /* Class loader reference that will be used to external extension functions loading */
+    private ClassLoader _extensionClassLoader;
+
+    /**
+    *  HashSet with the loaded classes
+    */
+    private final Map<String, Class> _externalExtensionFunctions;
+
+    /**
      * XSLTC compiler constructor
      */
     public XSLTC(boolean useServicesMechanism, FeatureManager featureManager) {
         _parser = new Parser(this, useServicesMechanism);
         _featureManager = featureManager;
+        _extensionClassLoader = null;
+        _externalExtensionFunctions = new HashMap<>();
     }
 
     /**
@@ -207,6 +223,8 @@
             return _accessExternalDTD;
         } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
             return _xmlSecurityManager;
+        } else if (name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) {
+            return _extensionClassLoader;
         }
         return null;
     }
@@ -222,6 +240,11 @@
             _accessExternalDTD = (String)value;
         } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
             _xmlSecurityManager = (XMLSecurityManager)value;
+        } else if (name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) {
+            _extensionClassLoader = (ClassLoader) value;
+            /* Clear the external extension functions HashMap if extension class
+               loader was changed */
+            _externalExtensionFunctions.clear();
         }
     }
 
@@ -256,6 +279,41 @@
         _bcelClasses = new Vector();
     }
 
+    private void setExternalExtensionFunctions(String name, Class clazz) {
+        if (_isSecureProcessing && clazz != null && !_externalExtensionFunctions.containsKey(name)) {
+            _externalExtensionFunctions.put(name, clazz);
+        }
+    }
+
+    /*
+     * Function loads an external external extension functions.
+     * The filtering of function types (external,internal) takes place in FunctionCall class
+     *
+     */
+    Class loadExternalFunction(String name) throws ClassNotFoundException {
+        Class loaded = null;
+        //Check if the function is not loaded already
+        if (_externalExtensionFunctions.containsKey(name)) {
+            loaded = _externalExtensionFunctions.get(name);
+        } else if (_extensionClassLoader != null) {
+            loaded = Class.forName(name, true, _extensionClassLoader);
+            setExternalExtensionFunctions(name, loaded);
+        }
+        if (loaded == null) {
+            throw new ClassNotFoundException(name);
+        }
+        //Return loaded class
+        return (Class) loaded;
+    }
+
+    /*
+     * Returns unmodifiable view of HashMap with loaded external extension
+     * functions - will be needed for the TransformerImpl
+    */
+    public Map<String, Class> getExternalExtensionFunctions() {
+        return Collections.unmodifiableMap(_externalExtensionFunctions);
+    }
+
     /**
      * Initializes the compiler to produce a new translet
      */
@@ -283,6 +341,7 @@
             -1,         // LEVEL_MULTIPLE
             -1          // LEVEL_ANY
         };
+        _externalExtensionFunctions.clear();
     }
 
     /**
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java	Mon Apr 27 09:17:39 2015 -0700
@@ -602,6 +602,9 @@
         {ErrorMsg.JAXP_INVALID_ATTR_ERR,
         "TransformerFactory does not recognise attribute ''{0}''."},
 
+        {ErrorMsg.JAXP_INVALID_ATTR_VALUE_ERR,
+        "Incorrect value specified for ''{0}'' attribute."},
+
         /*
          * Note to translators:  "setResult()" and "startDocument()" are Java
          * method names that should not be translated.
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java	Mon Apr 27 09:17:39 2015 -0700
@@ -117,6 +117,7 @@
     public static final String JAXP_NO_SOURCE_ERR = "JAXP_NO_SOURCE_ERR";
     public static final String JAXP_COMPILE_ERR = "JAXP_COMPILE_ERR";
     public static final String JAXP_INVALID_ATTR_ERR = "JAXP_INVALID_ATTR_ERR";
+    public static final String JAXP_INVALID_ATTR_VALUE_ERR = "JAXP_INVALID_ATTR_VALUE_ERR";
     public static final String JAXP_SET_RESULT_ERR = "JAXP_SET_RESULT_ERR";
     public static final String JAXP_NO_TRANSLET_ERR = "JAXP_NO_TRANSLET_ERR";
     public static final String JAXP_NO_HANDLER_ERR = "JAXP_NO_HANDLER_ERR";
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -24,28 +24,27 @@
 package com.sun.org.apache.xalan.internal.xsltc.trax;
 
 import com.sun.org.apache.xalan.internal.XalanConstants;
+import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
+import com.sun.org.apache.xalan.internal.xsltc.DOM;
+import com.sun.org.apache.xalan.internal.xsltc.Translet;
+import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
+import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
+import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
-import java.util.Properties;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-
+import java.util.Map;
+import java.util.Properties;
 import javax.xml.XMLConstants;
 import javax.xml.transform.Templates;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerConfigurationException;
 import javax.xml.transform.URIResolver;
 
-import com.sun.org.apache.xalan.internal.xsltc.DOM;
-import com.sun.org.apache.xalan.internal.xsltc.Translet;
-import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
-import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
-import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;
-import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
-import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
-
 /**
  * @author Morten Jorgensen
  * @author G. Todd Millerj
@@ -131,8 +130,30 @@
     private String _accessExternalStylesheet = XalanConstants.EXTERNAL_ACCESS_DEFAULT;
 
     static final class TransletClassLoader extends ClassLoader {
+
+        private final Map<String,Class> _loadedExternalExtensionFunctions;
+
         TransletClassLoader(ClassLoader parent) {
             super(parent);
+            _loadedExternalExtensionFunctions = null;
+        }
+
+        TransletClassLoader(ClassLoader parent,Map<String, Class> mapEF) {
+            super(parent);
+            _loadedExternalExtensionFunctions = mapEF;
+        }
+
+        public Class<?> loadClass(String name) throws ClassNotFoundException {
+            Class<?> ret = null;
+            // The _loadedExternalExtensionFunctions will be empty when the
+            // SecurityManager is not set and the FSP is turned off
+            if (_loadedExternalExtensionFunctions != null) {
+                ret = _loadedExternalExtensionFunctions.get(name);
+            }
+            if (ret == null) {
+                ret = super.loadClass(name);
+            }
+            return ret;
         }
 
         /**
@@ -330,7 +351,7 @@
         TransletClassLoader loader = (TransletClassLoader)
             AccessController.doPrivileged(new PrivilegedAction() {
                 public Object run() {
-                    return new TransletClassLoader(ObjectFactory.findClassLoader());
+                    return new TransletClassLoader(ObjectFactory.findClassLoader(),_tfactory.getExternalExtensionsMap());
                 }
             });
 
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -27,12 +27,12 @@
 import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
 import com.sun.org.apache.xalan.internal.utils.FeatureManager;
 import com.sun.org.apache.xalan.internal.utils.FeaturePropertyBase;
+import com.sun.org.apache.xalan.internal.utils.FeaturePropertyBase.State;
 import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
 import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
 import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
 import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager;
 import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager.Property;
-import com.sun.org.apache.xalan.internal.utils.FeaturePropertyBase.State;
 import com.sun.org.apache.xalan.internal.xsltc.compiler.Constants;
 import com.sun.org.apache.xalan.internal.xsltc.compiler.SourceLoader;
 import com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC;
@@ -50,6 +50,7 @@
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Map;
 import java.util.Properties;
 import java.util.Vector;
 import java.util.zip.ZipEntry;
@@ -57,7 +58,6 @@
 import javax.xml.XMLConstants;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
-
 import javax.xml.transform.ErrorListener;
 import javax.xml.transform.Source;
 import javax.xml.transform.Templates;
@@ -231,6 +231,13 @@
 
     private final FeatureManager _featureManager;
 
+    private ClassLoader _extensionClassLoader = null;
+
+    // Unmodifiable view of external extension function from xslt compiler
+    // It will be populated by user-specified extension functions during the
+    // type checking
+    private Map<String, Class> _xsltcExtensionFunctions;
+
     /**
      * javax.xml.transform.sax.TransformerFactory implementation.
      */
@@ -261,6 +268,12 @@
 
         //Parser's security manager
         _xmlSecurityManager = new XMLSecurityManager(true);
+        //Unmodifiable hash map with loaded external extension functions
+        _xsltcExtensionFunctions = null;
+    }
+
+    public Map<String,Class> getExternalExtensionsMap() {
+        return _xsltcExtensionFunctions;
     }
 
     /**
@@ -324,6 +337,8 @@
               return Boolean.FALSE;
         } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
             return _xmlSecurityManager;
+        } else if (name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) {
+           return _extensionClassLoader;
         }
 
         /** Check to see if the property is managed by the security manager **/
@@ -439,6 +454,16 @@
                 return;
             }
         }
+        else if ( name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) {
+            if (value instanceof ClassLoader) {
+                _extensionClassLoader = (ClassLoader) value;
+                return;
+            } else {
+                final ErrorMsg err
+                    = new ErrorMsg(ErrorMsg.JAXP_INVALID_ATTR_VALUE_ERR, "Extension Functions ClassLoader");
+                throw new IllegalArgumentException(err.toString());
+            }
+        }
 
         if (_xmlSecurityManager != null &&
                 _xmlSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) {
@@ -881,7 +906,6 @@
                 // Reset the per-session attributes to their default values
                 // after each newTemplates() call.
                 resetTransientAttributes();
-
                 return new TemplatesImpl(bytecodes, transletClassName, null, _indentNumber, this);
             }
         }
@@ -898,8 +922,10 @@
         xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, _accessExternalStylesheet);
         xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, _accessExternalDTD);
         xsltc.setProperty(XalanConstants.SECURITY_MANAGER, _xmlSecurityManager);
+        xsltc.setProperty(XalanConstants.JDK_EXTENSION_CLASSLOADER, _extensionClassLoader);
         xsltc.init();
-
+        if (!_isNotSecureProcessing)
+            _xsltcExtensionFunctions = xsltc.getExternalExtensionFunctions();
         // Set a document loader (for xsl:include/import) if defined
         if (_uriResolver != null) {
             xsltc.setSourceLoader(this);
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDOMImplementationImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -108,32 +108,6 @@
 
             boolean anyVersion = version == null || version.length() == 0;
 
-            // check if Xalan implementation is around and if yes report true for supporting
-            // XPath API
-            // if a plus sign "+" is prepended to any feature name, implementations
-            // are considered in which the specified feature may not be directly
-            // castable DOMImplementation.getFeature(feature, version). Without a
-            // plus, only features whose interfaces are directly castable are considered.
-            if ((feature.equalsIgnoreCase("+XPath"))
-                && (anyVersion || version.equals("3.0"))) {
-                try {
-                    Class xpathClass = ObjectFactory.findProviderClass(
-                        "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", true);
-
-                // Check if the DOM XPath implementation implements
-                // the interface org.w3c.dom.XPathEvaluator
-                Class interfaces[] = xpathClass.getInterfaces();
-                for (int i = 0; i < interfaces.length; i++) {
-                    if (interfaces[i].getName().equals(
-                        "org.w3c.dom.xpath.XPathEvaluator")) {
-                        return true;
-                    }
-                }
-                } catch (Exception e) {
-                    return false;
-                }
-                return true;
-            }
             if (feature.startsWith("+")) {
                 feature = feature.substring(1);
             }
@@ -281,25 +255,7 @@
          */
         public Object getFeature(String feature, String version) {
             if (singleton.hasFeature(feature, version)) {
-                if ((feature.equalsIgnoreCase("+XPath"))) {
-                    try {
-                        Class xpathClass = ObjectFactory.findProviderClass(
-                            "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", true);
-                        // Check if the DOM XPath implementation implements
-                        // the interface org.w3c.dom.XPathEvaluator
-                        Class interfaces[] = xpathClass.getInterfaces();
-                        for (int i = 0; i < interfaces.length; i++) {
-                            if (interfaces[i].getName().equals(
-                                "org.w3c.dom.xpath.XPathEvaluator")) {
-                                return xpathClass.newInstance();
-                            }
-                        }
-                    } catch (Exception e) {
-                        return null;
-                    }
-                } else {
-                    return singleton;
-                }
+                return singleton;
             }
             return null;
         }
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -498,44 +498,6 @@
      * @since DOM Level 3
      */
     public Object getFeature(String feature, String version) {
-
-        boolean anyVersion = version == null || version.length() == 0;
-
-        // if a plus sign "+" is prepended to any feature name, implementations
-        // are considered in which the specified feature may not be directly
-        // castable DOMImplementation.getFeature(feature, version). Without a
-        // plus, only features whose interfaces are directly castable are
-        // considered.
-        if ((feature.equalsIgnoreCase("+XPath"))
-            && (anyVersion || version.equals("3.0"))) {
-
-            // If an XPathEvaluator was created previously
-            // return it otherwise create a new one.
-            if (fXPathEvaluator != null) {
-                return fXPathEvaluator;
-            }
-
-            try {
-                Class xpathClass = ObjectFactory.findProviderClass (
-                        "com.sun.org.apache.xpath.internal.domapi.XPathEvaluatorImpl", true);
-                Constructor xpathClassConstr =
-                    xpathClass.getConstructor(new Class[] { Document.class });
-
-                // Check if the DOM XPath implementation implements
-                // the interface org.w3c.dom.XPathEvaluator
-                Class interfaces[] = xpathClass.getInterfaces();
-                for (int i = 0; i < interfaces.length; i++) {
-                    if (interfaces[i].getName().equals(
-                    "org.w3c.dom.xpath.XPathEvaluator")) {
-                        fXPathEvaluator = xpathClassConstr.newInstance(new Object[] { this });
-                        return fXPathEvaluator;
-                    }
-                }
-                return null;
-            } catch (Exception e) {
-                return null;
-            }
-        }
         return super.getFeature(feature, version);
     }
 
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/OutputFormat.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/OutputFormat.java	Mon Apr 27 09:17:39 2015 -0700
@@ -36,7 +36,6 @@
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentType;
 import org.w3c.dom.Node;
-import org.w3c.dom.html.HTMLDocument;
 
 
 /**
@@ -273,45 +272,6 @@
         setIndenting( indenting );
     }
 
-
-    /**
-     * Constructs a new output format with the proper method,
-     * document type identifiers and media type for the specified
-     * document.
-     *
-     * @param doc The document to output
-     * @see #whichMethod
-     */
-    public OutputFormat( Document doc )
-    {
-        setMethod( whichMethod( doc ) );
-        setDoctype( whichDoctypePublic( doc ), whichDoctypeSystem( doc ) );
-        setMediaType( whichMediaType( getMethod() ) );
-    }
-
-
-    /**
-     * Constructs a new output format with the proper method,
-     * document type identifiers and media type for the specified
-     * document, and with the specified encoding. If <tt>indent</tt>
-     * is true, the document will be pretty printed with the default
-     * indentation level and default line wrapping.
-     *
-     * @param doc The document to output
-     * @param encoding The specified encoding
-     * @param indenting True for pretty printing
-     * @see #setEncoding
-     * @see #setIndenting
-     * @see #whichMethod
-     */
-    public OutputFormat( Document doc, String encoding, boolean indenting )
-    {
-        this( doc );
-        setEncoding( encoding );
-        setIndenting( indenting );
-    }
-
-
     /**
      * Returns the method specified for this output format.
      * Typically the method will be <tt>xml</tt>, <tt>html</tt>
@@ -841,110 +801,6 @@
 
 
     /**
-     * Determine the output method for the specified document.
-     * If the document is an instance of {@link org.w3c.dom.html.HTMLDocument}
-     * then the method is said to be <tt>html</tt>. If the root
-     * element is 'html' and all text nodes preceding the root
-     * element are all whitespace, then the method is said to be
-     * <tt>html</tt>. Otherwise the method is <tt>xml</tt>.
-     *
-     * @param doc The document to check
-     * @return The suitable method
-     */
-    public static String whichMethod( Document doc )
-    {
-        Node    node;
-        String  value;
-        int     i;
-
-        // If document is derived from HTMLDocument then the default
-        // method is html.
-        if ( doc instanceof HTMLDocument )
-            return Method.HTML;
-
-        // Lookup the root element and the text nodes preceding it.
-        // If root element is html and all text nodes contain whitespace
-        // only, the method is html.
-
-        // FIXME (SM) should we care about namespaces here?
-
-        node = doc.getFirstChild();
-        while (node != null) {
-            // If the root element is html, the method is html.
-            if ( node.getNodeType() == Node.ELEMENT_NODE ) {
-                if ( node.getNodeName().equalsIgnoreCase( "html" ) ) {
-                    return Method.HTML;
-                } else if ( node.getNodeName().equalsIgnoreCase( "root" ) ) {
-                    return Method.FOP;
-                } else {
-                    return Method.XML;
-                }
-            } else if ( node.getNodeType() == Node.TEXT_NODE ) {
-                // If a text node preceding the root element contains
-                // only whitespace, this might be html, otherwise it's
-                // definitely xml.
-                value = node.getNodeValue();
-                for ( i = 0 ; i < value.length() ; ++i )
-                    if ( value.charAt( i ) != 0x20 && value.charAt( i ) != 0x0A &&
-                         value.charAt( i ) != 0x09 && value.charAt( i ) != 0x0D )
-                        return Method.XML;
-            }
-            node = node.getNextSibling();
-        }
-        // Anything else, the method is xml.
-        return Method.XML;
-    }
-
-
-    /**
-     * Returns the document type public identifier
-     * specified for this document, or null.
-     */
-    public static String whichDoctypePublic( Document doc )
-    {
-        DocumentType doctype;
-
-           /*  DOM Level 2 was introduced into the code base*/
-           doctype = doc.getDoctype();
-           if ( doctype != null ) {
-           // Note on catch: DOM Level 1 does not specify this method
-           // and the code will throw a NoSuchMethodError
-           try {
-           return doctype.getPublicId();
-           } catch ( Error except ) {  }
-           }
-
-        if ( doc instanceof HTMLDocument )
-            return DTD.XHTMLPublicId;
-        return null;
-    }
-
-
-    /**
-     * Returns the document type system identifier
-     * specified for this document, or null.
-     */
-    public static String whichDoctypeSystem( Document doc )
-    {
-        DocumentType doctype;
-
-        /* DOM Level 2 was introduced into the code base*/
-           doctype = doc.getDoctype();
-           if ( doctype != null ) {
-           // Note on catch: DOM Level 1 does not specify this method
-           // and the code will throw a NoSuchMethodError
-           try {
-           return doctype.getSystemId();
-           } catch ( Error except ) { }
-           }
-
-        if ( doc instanceof HTMLDocument )
-            return DTD.XHTMLSystemId;
-        return null;
-    }
-
-
-    /**
      * Returns the suitable media format for a document
      * output with the specified method.
      */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.sun.org.apache.xml.internal.utils;
+
+import sun.misc.Unsafe;
+
+/**
+ * This is a combination of ThreadControllerWrapper's inner class SafeThread
+ * that was introduced as a fix for CR 6607339
+ * and sun.misc.ManagedLocalsThread, a thread that has it's thread locals, and
+ * inheritable thread locals erased on construction. Except the run method,
+ * it is identical to sun.misc.ManagedLocalsThread.
+ */
+public class SafeThread extends Thread {
+
+    private static final Unsafe UNSAFE;
+    private static final long THREAD_LOCALS;
+    private static final long INHERITABLE_THREAD_LOCALS;
+
+    private volatile boolean ran = false;
+
+    public SafeThread(Runnable target) {
+        super(target);
+        eraseThreadLocals();
+    }
+
+    public SafeThread(Runnable target, String name) {
+        super(target, name);
+        eraseThreadLocals();
+    }
+
+    public SafeThread(ThreadGroup group, Runnable target, String name) {
+        super(group, target, name);
+        eraseThreadLocals();
+    }
+
+    public final void run() {
+        if (Thread.currentThread() != this) {
+            throw new IllegalStateException("The run() method in a"
+                    + " SafeThread cannot be called from another thread.");
+        }
+        synchronized (this) {
+            if (!ran) {
+                ran = true;
+            } else {
+                throw new IllegalStateException("The run() method in a"
+                        + " SafeThread cannot be called more than once.");
+            }
+        }
+        super.run();
+    }
+
+    /**
+     * Drops all thread locals (and inherited thread locals).
+     */
+    public final void eraseThreadLocals() {
+        UNSAFE.putObject(this, THREAD_LOCALS, null);
+        UNSAFE.putObject(this, INHERITABLE_THREAD_LOCALS, null);
+    }
+
+    static {
+        UNSAFE = Unsafe.getUnsafe();
+        Class<?> t = Thread.class;
+        try {
+            THREAD_LOCALS = UNSAFE.objectFieldOffset(t.getDeclaredField("threadLocals"));
+            INHERITABLE_THREAD_LOCALS = UNSAFE.objectFieldOffset(t.getDeclaredField("inheritableThreadLocals"));
+        } catch (Exception e) {
+            throw new Error(e);
+        }
+    }
+
+}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/ThreadControllerWrapper.java	Mon Apr 27 09:17:39 2015 -0700
@@ -3,11 +3,12 @@
  * DO NOT REMOVE OR ALTER!
  */
 /*
- * Copyright 1999-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,110 +18,73 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/*
- * $Id: ThreadControllerWrapper.java,v 1.2.4.1 2005/09/15 08:15:59 suresh_emailid Exp $
- */
 package com.sun.org.apache.xml.internal.utils;
 
 /**
- * A utility class that wraps the ThreadController, which is used
- * by IncrementalSAXSource for the incremental building of DTM.
+ * A utility class that wraps the ThreadController, which is used by
+ * IncrementalSAXSource for the incremental building of DTM.
  */
-public class ThreadControllerWrapper
-{
-
-  /** The ThreadController pool   */
-  private static ThreadController m_tpool = new ThreadController();
-
-  public static Thread runThread(Runnable runnable, int priority)
-  {
-    return m_tpool.run(runnable, priority);
-  }
-
-  public static void waitThread(Thread worker, Runnable task)
-    throws InterruptedException
-  {
-    m_tpool.waitThread(worker, task);
-  }
-
-  /**
-   * Thread controller utility class for incremental SAX source. Must
-   * be overriden with a derived class to support thread pooling.
-   *
-   * All thread-related stuff is in this class.
-   */
-  public static class ThreadController
-  {
+public class ThreadControllerWrapper {
 
     /**
-     * This class was introduced as a fix for CR 6607339.
+     * The ThreadController pool
      */
-    final class SafeThread extends Thread {
-         private volatile boolean ran = false;
-
-         public SafeThread(Runnable target) {
-             super(target);
-         }
+    private static ThreadController m_tpool = new ThreadController();
 
-         public final void run() {
-             if (Thread.currentThread() != this) {
-                 throw new IllegalStateException("The run() method in a"
-                     + " SafeThread cannot be called from another thread.");
-             }
-             synchronized (this) {
-                if (!ran) {
-                    ran = true;
-                }
-                else {
-                 throw new IllegalStateException("The run() method in a"
-                     + " SafeThread cannot be called more than once.");
-                 }
-             }
-             super.run();
-         }
+    public static Thread runThread(Runnable runnable, int priority) {
+        return m_tpool.run(runnable, priority);
+    }
+
+    public static void waitThread(Thread worker, Runnable task)
+            throws InterruptedException {
+        m_tpool.waitThread(worker, task);
     }
 
     /**
-     * Will get a thread from the pool, execute the task
-     *  and return the thread to the pool.
-     *
-     *  The return value is used only to wait for completion
-     *
+     * Thread controller utility class for incremental SAX source. Must be
+     * overridden with a derived class to support thread pooling.
      *
-     * NEEDSDOC @param task
-     * @param priority if >0 the task will run with the given priority
-     *  ( doesn't seem to be used in xalan, since it's allways the default )
-     * @return  The thread that is running the task, can be used
-     *          to wait for completion
+     * All thread-related stuff is in this class.
      */
-    public Thread run(Runnable task, int priority)
-    {
+    public static class ThreadController {
 
-      Thread t = new SafeThread(task);
-
-      t.start();
+        /**
+         * Will get a thread from the pool, execute the task and return the
+         * thread to the pool.
+         *
+         * The return value is used only to wait for completion
+         *
+         *
+         * @param task the Runnable
+         *
+         * @param priority if >0 the task will run with the given priority (
+         * doesn't seem to be used in xalan, since it's always the default )
+         * @return The thread that is running the task, can be used to wait for
+         * completion
+         */
+        public Thread run(Runnable task, int priority) {
 
-      //       if( priority > 0 )
-      //      t.setPriority( priority );
-      return t;
-    }
+            Thread t = new SafeThread(task);
+            t.start();
+
+            //if( priority > 0 )
+            //    t.setPriority( priority );
+            return t;
+        }
 
-    /**
-     *  Wait until the task is completed on the worker
-     *  thread.
-     *
-     * NEEDSDOC @param worker
-     * NEEDSDOC @param task
-     *
-     * @throws InterruptedException
-     */
-    public void waitThread(Thread worker, Runnable task)
-            throws InterruptedException
-    {
+        /**
+         * Wait until the task is completed on the worker thread.
+         *
+         * @param worker worker thread
+         * @param task the Runnable
+         *
+         * @throws InterruptedException
+         */
+        public void waitThread(Thread worker, Runnable task)
+                throws InterruptedException {
 
-      // This should wait until the transformThread is considered not alive.
-      worker.join();
+            // This should wait until the transformThread is considered not alive.
+            worker.join();
+        }
     }
-  }
-
 }
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -637,26 +637,8 @@
     }
     else
     {
-        // To older XPath code it doesn't matter if
-        // error() is called or errorForDOM3().
-                m_processor.errorForDOM3(XPATHErrorResources.ER_PREFIX_MUST_RESOLVE,
-                                                 new String[] {prefix});  //"Prefix must resolve to a namespace: {0}";
-
-/** old code commented out 17-Sep-2004
-// error("Could not locate namespace for prefix: "+prefix);
-//                m_processor.error(XPATHErrorResources.ER_PREFIX_MUST_RESOLVE,
-//                                       new String[] {prefix});  //"Prefix must resolve to a namespace: {0}";
-*/
-
-      /***  Old code commented out 10-Jan-2001
-      addToTokenQueue(prefix);
-      addToTokenQueue(":");
-
-      String s = pat.substring(posOfNSSep + 1, posOfScan);
-
-      if (s.length() > 0)
-        addToTokenQueue(s);
-      ***/
+        m_processor.error(XPATHErrorResources.ER_PREFIX_MUST_RESOLVE,
+                new String[] {prefix});  //"Prefix must resolve to a namespace: {0}";
     }
 
     return -1;
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java	Mon Apr 27 09:17:39 2015 -0700
@@ -28,7 +28,6 @@
 import com.sun.org.apache.xalan.internal.res.XSLMessages;
 import com.sun.org.apache.xml.internal.utils.PrefixResolver;
 import com.sun.org.apache.xpath.internal.XPathProcessorException;
-import com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception;
 import com.sun.org.apache.xpath.internal.objects.XNumber;
 import com.sun.org.apache.xpath.internal.objects.XString;
 import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
@@ -623,50 +622,6 @@
   }
 
   /**
-   * This method is added to support DOM 3 XPath API.
-   * <p>
-   * This method is exactly like error(String, Object[]); except that
-   * the underlying TransformerException is
-   * XpathStylesheetDOM3Exception (which extends TransformerException).
-   * <p>
-   * So older XPath code in Xalan is not affected by this. To older XPath code
-   * the behavior of whether error() or errorForDOM3() is called because it is
-   * always catching TransformerException objects and is oblivious to
-   * the new subclass of XPathStylesheetDOM3Exception. Older XPath code
-   * runs as before.
-   * <p>
-   * However, newer DOM3 XPath code upon catching a TransformerException can
-   * can check if the exception is an instance of XPathStylesheetDOM3Exception
-   * and take appropriate action.
-   *
-   * @param msg An error msgkey that corresponds to one of the constants found
-   *            in {@link com.sun.org.apache.xpath.internal.res.XPATHErrorResources}, which is
-   *            a key for a format string.
-   * @param args An array of arguments represented in the format string, which
-   *             may be null.
-   *
-   * @throws TransformerException if the current ErrorListoner determines to
-   *                              throw an exception.
-   */
-  void errorForDOM3(String msg, Object[] args) throws TransformerException
-  {
-
-        String fmsg = XSLMessages.createXPATHMessage(msg, args);
-        ErrorListener ehandler = this.getErrorListener();
-
-        TransformerException te = new XPathStylesheetDOM3Exception(fmsg, m_sourceLocator);
-        if (null != ehandler)
-        {
-          // TO DO: Need to get stylesheet Locator from here.
-          ehandler.fatalError(te);
-        }
-        else
-        {
-          // System.err.println(fmsg);
-          throw te;
-        }
-  }
-  /**
    * Dump the remaining token queue.
    * Thanks to Craig for this.
    *
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathEvaluatorImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2002-2005 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: XPathEvaluatorImpl.java,v 1.2.4.1 2005/09/10 04:04:07 jeffsuttor Exp $
- */
-
-package com.sun.org.apache.xpath.internal.domapi;
-
-import javax.xml.transform.TransformerException;
-
-import com.sun.org.apache.xml.internal.utils.PrefixResolver;
-import com.sun.org.apache.xpath.internal.XPath;
-import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
-import com.sun.org.apache.xpath.internal.res.XPATHMessages;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.xpath.XPathEvaluator;
-import org.w3c.dom.xpath.XPathException;
-import org.w3c.dom.xpath.XPathExpression;
-import org.w3c.dom.xpath.XPathNSResolver;
-
-/**
- *
- * The class provides an implementation of XPathEvaluator according
- * to the DOM L3 XPath Specification, Working Group Note 26 February 2004.
- *
- * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
- *
- * </p>The evaluation of XPath expressions is provided by
- * <code>XPathEvaluator</code>, which will provide evaluation of XPath 1.0
- * expressions with no specialized extension functions or variables. It is
- * expected that the <code>XPathEvaluator</code> interface will be
- * implemented on the same object which implements the <code>Document</code>
- * interface in an implementation which supports the XPath DOM module.
- * <code>XPathEvaluator</code> implementations may be available from other
- * sources that may provide support for special extension functions or
- * variables which are not defined in this specification.</p>
- *
- * @see org.w3c.dom.xpath.XPathEvaluator
- *
- * @xsl.usage internal
- */
-public final class XPathEvaluatorImpl implements XPathEvaluator {
-
-        /**
-         * This prefix resolver is created whenever null is passed to the
-         * evaluate method.  Its purpose is to satisfy the DOM L3 XPath API
-         * requirement that if a null prefix resolver is used, an exception
-         * should only be thrown when an attempt is made to resolve a prefix.
-         */
-        private class DummyPrefixResolver implements PrefixResolver {
-
-                /**
-                 * Constructor for DummyPrefixResolver.
-                 */
-                DummyPrefixResolver() {}
-
-                /**
-                 * @exception DOMException
-         *   NAMESPACE_ERR: Always throws this exceptionn
-                 *
-                 * @see com.sun.org.apache.xml.internal.utils.PrefixResolver#getNamespaceForPrefix(String, Node)
-                 */
-                public String getNamespaceForPrefix(String prefix, Node context) {
-            String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_NULL_RESOLVER, null);
-            throw new DOMException(DOMException.NAMESPACE_ERR, fmsg);   // Unable to resolve prefix with null prefix resolver.
-                }
-
-                /**
-                 * @exception DOMException
-         *   NAMESPACE_ERR: Always throws this exceptionn
-         *
-                 * @see com.sun.org.apache.xml.internal.utils.PrefixResolver#getNamespaceForPrefix(String)
-                 */
-                public String getNamespaceForPrefix(String prefix) {
-                        return getNamespaceForPrefix(prefix,null);
-                }
-
-                /**
-                 * @see com.sun.org.apache.xml.internal.utils.PrefixResolver#handlesNullPrefixes()
-                 */
-                public boolean handlesNullPrefixes() {
-                        return false;
-                }
-
-                /**
-                 * @see com.sun.org.apache.xml.internal.utils.PrefixResolver#getBaseIdentifier()
-                 */
-                public String getBaseIdentifier() {
-                        return null;
-                }
-
-        }
-
-    /**
-     * The document to be searched to parallel the case where the XPathEvaluator
-     * is obtained by casting a Document.
-     */
-    private final Document m_doc;
-
-    /**
-     * Constructor for XPathEvaluatorImpl.
-     *
-     * @param doc The document to be searched, to parallel the case where''
-     *            the XPathEvaluator is obtained by casting the document.
-     */
-    public XPathEvaluatorImpl(Document doc) {
-        m_doc = doc;
-    }
-
-    /**
-     * Constructor in the case that the XPath expression can be evaluated
-     * without needing an XML document at all.
-     *
-     */
-    public XPathEvaluatorImpl() {
-            m_doc = null;
-    }
-
-        /**
-     * Creates a parsed XPath expression with resolved namespaces. This is
-     * useful when an expression will be reused in an application since it
-     * makes it possible to compile the expression string into a more
-     * efficient internal form and preresolve all namespace prefixes which
-     * occur within the expression.
-     *
-     * @param expression The XPath expression string to be parsed.
-     * @param resolver The <code>resolver</code> permits translation of
-     *   prefixes within the XPath expression into appropriate namespace URIs
-     *   . If this is specified as <code>null</code>, any namespace prefix
-     *   within the expression will result in <code>DOMException</code>
-     *   being thrown with the code <code>NAMESPACE_ERR</code>.
-     * @return The compiled form of the XPath expression.
-     * @exception XPathException
-     *   INVALID_EXPRESSION_ERR: Raised if the expression is not legal
-     *   according to the rules of the <code>XPathEvaluator</code>i
-     * @exception DOMException
-     *   NAMESPACE_ERR: Raised if the expression contains namespace prefixes
-     *   which cannot be resolved by the specified
-     *   <code>XPathNSResolver</code>.
-     *
-         * @see org.w3c.dom.xpath.XPathEvaluator#createExpression(String, XPathNSResolver)
-         */
-        public XPathExpression createExpression(
-                String expression,
-                XPathNSResolver resolver)
-                throws XPathException, DOMException {
-
-                try {
-
-                        // If the resolver is null, create a dummy prefix resolver
-                        XPath xpath =  new XPath(expression,null,
-                             ((null == resolver) ? new DummyPrefixResolver() : ((PrefixResolver)resolver)),
-                              XPath.SELECT);
-
-            return new XPathExpressionImpl(xpath, m_doc);
-
-                } catch (TransformerException e) {
-                        // Need to pass back exception code DOMException.NAMESPACE_ERR also.
-                        // Error found in DOM Level 3 XPath Test Suite.
-                        if(e instanceof XPathStylesheetDOM3Exception)
-                                throw new DOMException(DOMException.NAMESPACE_ERR,e.getMessageAndLocation());
-                        else
-                                throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,e.getMessageAndLocation());
-
-                }
-        }
-
-        /**
-     * Adapts any DOM node to resolve namespaces so that an XPath expression
-     * can be easily evaluated relative to the context of the node where it
-     * appeared within the document. This adapter works like the DOM Level 3
-     * method <code>lookupNamespaceURI</code> on nodes in resolving the
-     * namespaceURI from a given prefix using the current information available
-     * in the node's hierarchy at the time lookupNamespaceURI is called, also
-     * correctly resolving the implicit xml prefix.
-     *
-     * @param nodeResolver The node to be used as a context for namespace
-     *   resolution.
-     * @return <code>XPathNSResolver</code> which resolves namespaces with
-     *   respect to the definitions in scope for a specified node.
-     *
-         * @see org.w3c.dom.xpath.XPathEvaluator#createNSResolver(Node)
-         */
-        public XPathNSResolver createNSResolver(Node nodeResolver) {
-
-                return new XPathNSResolverImpl((nodeResolver.getNodeType() == Node.DOCUMENT_NODE)
-                   ? ((Document) nodeResolver).getDocumentElement() : nodeResolver);
-        }
-
-        /**
-     * Evaluates an XPath expression string and returns a result of the
-     * specified type if possible.
-     *
-     * @param expression The XPath expression string to be parsed and
-     *   evaluated.
-     * @param contextNode The <code>context</code> is context node for the
-     *   evaluation of this XPath expression. If the XPathEvaluator was
-     *   obtained by casting the <code>Document</code> then this must be
-     *   owned by the same document and must be a <code>Document</code>,
-     *   <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
-     *   <code>CDATASection</code>, <code>Comment</code>,
-     *   <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
-     *   node. If the context node is a <code>Text</code> or a
-     *   <code>CDATASection</code>, then the context is interpreted as the
-     *   whole logical text node as seen by XPath, unless the node is empty
-     *   in which case it may not serve as the XPath context.
-     * @param resolver The <code>resolver</code> permits translation of
-     *   prefixes within the XPath expression into appropriate namespace URIs
-     *   . If this is specified as <code>null</code>, any namespace prefix
-     *   within the expression will result in <code>DOMException</code>
-     *   being thrown with the code <code>NAMESPACE_ERR</code>.
-     * @param type If a specific <code>type</code> is specified, then the
-     *   result will be coerced to return the specified type relying on
-     *   XPath type conversions and fail if the desired coercion is not
-     *   possible. This must be one of the type codes of
-     *   <code>XPathResult</code>.
-     * @param result The <code>result</code> specifies a specific result
-     *   object which may be reused and returned by this method. If this is
-     *   specified as <code>null</code>or the implementation does not reuse
-     *   the specified result, a new result object will be constructed and
-     *   returned.For XPath 1.0 results, this object will be of type
-     *   <code>XPathResult</code>.
-     * @return The result of the evaluation of the XPath expression.For XPath
-     *   1.0 results, this object will be of type <code>XPathResult</code>.
-     * @exception XPathException
-     *   INVALID_EXPRESSION_ERR: Raised if the expression is not legal
-     *   according to the rules of the <code>XPathEvaluator</code>i
-     *   <br>TYPE_ERR: Raised if the result cannot be converted to return the
-     *   specified type.
-     * @exception DOMException
-     *   NAMESPACE_ERR: Raised if the expression contains namespace prefixes
-     *   which cannot be resolved by the specified
-     *   <code>XPathNSResolver</code>.
-     *   <br>WRONG_DOCUMENT_ERR: The Node is from a document that is not
-     *   supported by this XPathEvaluator.
-     *   <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
-     *   context node.
-         *
-         * @see org.w3c.dom.xpath.XPathEvaluator#evaluate(String, Node, XPathNSResolver, short, XPathResult)
-         */
-        public Object evaluate(
-                String expression,
-                Node contextNode,
-                XPathNSResolver resolver,
-                short type,
-                Object result)
-                throws XPathException, DOMException {
-
-                XPathExpression xpathExpression = createExpression(expression, resolver);
-
-                return  xpathExpression.evaluate(contextNode, type, result);
-        }
-
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathExpressionImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2002-2005 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: XPathExpressionImpl.java,v 1.2.4.1 2005/09/10 04:06:55 jeffsuttor Exp $
- */
-
-
-package com.sun.org.apache.xpath.internal.domapi;
-
-import javax.xml.transform.TransformerException;
-
-import com.sun.org.apache.xpath.internal.XPath;
-import com.sun.org.apache.xpath.internal.XPathContext;
-import com.sun.org.apache.xpath.internal.objects.XObject;
-import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
-import com.sun.org.apache.xpath.internal.res.XPATHMessages;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.xpath.XPathException;
-import org.w3c.dom.xpath.XPathExpression;
-import org.w3c.dom.xpath.XPathNamespace;
-
-/**
- *
- * The class provides an implementation of XPathExpression according
- * to the DOM L3 XPath Specification, Working Group Note 26 February 2004.
- *
- * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
- *
- * <p>The <code>XPathExpression</code> interface represents a parsed and resolved
- * XPath expression.</p>
- *
- * @see org.w3c.dom.xpath.XPathExpression
- *
- * @xsl.usage internal
- */
-class XPathExpressionImpl implements XPathExpression {
-
-  /**
-   * The xpath object that this expression wraps
-   */
-  final private XPath m_xpath;
-
-  /**
-   * The document to be searched to parallel the case where the XPathEvaluator
-   * is obtained by casting a Document.
-   */
-  final private Document m_doc;
-
-    /**
-     * Constructor for XPathExpressionImpl.
-     *
-     * @param xpath The wrapped XPath object.
-     * @param doc The document to be searched, to parallel the case where''
-     *            the XPathEvaluator is obtained by casting the document.
-     */
-    XPathExpressionImpl(XPath xpath, Document doc) {
-        m_xpath = xpath;
-        m_doc = doc;
-    }
-
-    /**
-     *
-     * This method provides an implementation XPathResult.evaluate according
-     * to the DOM L3 XPath Specification, Working Group Note 26 February 2004.
-     *
-     * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
-     *
-     * <p>Evaluates this XPath expression and returns a result.</p>
-     * @param contextNode The <code>context</code> is context node for the
-     *   evaluation of this XPath expression.If the XPathEvaluator was
-     *   obtained by casting the <code>Document</code> then this must be
-     *   owned by the same document and must be a <code>Document</code>,
-     *   <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
-     *   <code>CDATASection</code>, <code>Comment</code>,
-     *   <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
-     *   node.If the context node is a <code>Text</code> or a
-     *   <code>CDATASection</code>, then the context is interpreted as the
-     *   whole logical text node as seen by XPath, unless the node is empty
-     *   in which case it may not serve as the XPath context.
-     * @param type If a specific <code>type</code> is specified, then the
-     *   result will be coerced to return the specified type relying on
-     *   XPath conversions and fail if the desired coercion is not possible.
-     *   This must be one of the type codes of <code>XPathResult</code>.
-    *  @param result The <code>result</code> specifies a specific result
-     *   object which may be reused and returned by this method. If this is
-     *   specified as <code>null</code>or the implementation does not reuse
-     *   the specified result, a new result object will be constructed and
-     *   returned.For XPath 1.0 results, this object will be of type
-     *   <code>XPathResult</code>.
-     * @return The result of the evaluation of the XPath expression.For XPath
-     *   1.0 results, this object will be of type <code>XPathResult</code>.
-     * @exception XPathException
-     *   TYPE_ERR: Raised if the result cannot be converted to return the
-     *   specified type.
-     * @exception DOMException
-     *   WRONG_DOCUMENT_ERR: The Node is from a document that is not supported
-     *   by the XPathEvaluator that created this
-     *   <code>XPathExpression</code>.
-     *   <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
-     *   context node.
-     *
-     * @see org.w3c.dom.xpath.XPathExpression#evaluate(Node, short, XPathResult)
-     * @xsl.usage internal
-     */
-    public Object evaluate(
-        Node contextNode,
-        short type,
-        Object result)
-        throws XPathException, DOMException {
-
-        // If the XPathEvaluator was determined by "casting" the document
-        if (m_doc != null) {
-
-            // Check that the context node is owned by the same document
-            if ((contextNode != m_doc) && (!contextNode.getOwnerDocument().equals(m_doc))) {
-                String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_WRONG_DOCUMENT, null);
-                throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, fmsg);
-            }
-
-            // Check that the context node is an acceptable node type
-            short nodeType = contextNode.getNodeType();
-            if ((nodeType != Document.DOCUMENT_NODE) &&
-                (nodeType != Document.ELEMENT_NODE) &&
-                (nodeType != Document.ATTRIBUTE_NODE) &&
-                (nodeType != Document.TEXT_NODE) &&
-                (nodeType != Document.CDATA_SECTION_NODE) &&
-                (nodeType != Document.COMMENT_NODE) &&
-                (nodeType != Document.PROCESSING_INSTRUCTION_NODE) &&
-                (nodeType != XPathNamespace.XPATH_NAMESPACE_NODE)) {
-                    String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_WRONG_NODETYPE, null);
-                    throw new DOMException(DOMException.NOT_SUPPORTED_ERR, fmsg);
-            }
-        }
-
-        //
-        // If the type is not a supported type, throw an exception and be
-        // done with it!
-        if (!XPathResultImpl.isValidType(type)) {
-            String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_INVALID_XPATH_TYPE, new Object[] {new Integer(type)});
-            throw new XPathException(XPathException.TYPE_ERR,fmsg); // Invalid XPath type argument: {0}
-        }
-
-        // Cache xpath context?
-        XPathContext xpathSupport = new XPathContext();
-
-        // if m_document is not null, build the DTM from the document
-        if (null != m_doc) {
-            xpathSupport.getDTMHandleFromNode(m_doc);
-        }
-
-        XObject xobj = null;
-        try {
-            xobj = m_xpath.execute(xpathSupport, contextNode, null);
-        } catch (TransformerException te) {
-            // What should we do here?
-            throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,te.getMessageAndLocation());
-        }
-
-        // Create a new XPathResult object
-        // Reuse result object passed in?
-        // The constructor will check the compatibility of type and xobj and
-        // throw an exception if they are not compatible.
-        return new XPathResultImpl(type,xobj,contextNode, m_xpath);
-    }
-
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNSResolverImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2002-2005 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: XPathNSResolverImpl.java,v 1.2.4.1 2005/09/10 04:13:19 jeffsuttor Exp $
- */
-
-package com.sun.org.apache.xpath.internal.domapi;
-
-import com.sun.org.apache.xml.internal.utils.PrefixResolverDefault;
-import org.w3c.dom.Node;
-import org.w3c.dom.xpath.XPathNSResolver;
-
-/**
- *
- * The class provides an implementation XPathNSResolver according
- * to the DOM L3 XPath Specification, Working Group Note 26 February 2004.
- *
- * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
- *
- * <p>The <code>XPathNSResolver</code> interface permit <code>prefix</code>
- * strings in the expression to be properly bound to
- * <code>namespaceURI</code> strings. <code>XPathEvaluator</code> can
- * construct an implementation of <code>XPathNSResolver</code> from a node,
- * or the interface may be implemented by any application.</p>
- *
- * @see org.w3c.dom.xpath.XPathNSResolver
- * @xsl.usage internal
- */
-class XPathNSResolverImpl extends PrefixResolverDefault implements XPathNSResolver {
-
-        /**
-         * Constructor for XPathNSResolverImpl.
-         * @param xpathExpressionContext
-         */
-        public XPathNSResolverImpl(Node xpathExpressionContext) {
-                super(xpathExpressionContext);
-        }
-
-        /**
-         * @see org.w3c.dom.xpath.XPathNSResolver#lookupNamespaceURI(String)
-         */
-        public String lookupNamespaceURI(String prefix) {
-                return super.getNamespaceForPrefix(prefix);
-        }
-
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathNamespaceImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2002-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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: XPathNamespaceImpl.java,v 1.2.4.1 2005/09/10 04:10:02 jeffsuttor Exp $
- */
-
-
-package com.sun.org.apache.xpath.internal.domapi;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.xpath.XPathNamespace;
-
-import org.w3c.dom.UserDataHandler;
-
-/**
- *
- *
- * The <code>XPathNamespace</code> interface is returned by
- * <code>XPathResult</code> interfaces to represent the XPath namespace node
- * type that DOM lacks. There is no public constructor for this node type.
- * Attempts to place it into a hierarchy or a NamedNodeMap result in a
- * <code>DOMException</code> with the code <code>HIERARCHY_REQUEST_ERR</code>
- * . This node is read only, so methods or setting of attributes that would
- * mutate the node result in a DOMException with the code
- * <code>NO_MODIFICATION_ALLOWED_ERR</code>.
- * <p>The core specification describes attributes of the <code>Node</code>
- * interface that are different for different node node types but does not
- * describe <code>XPATH_NAMESPACE_NODE</code>, so here is a description of
- * those attributes for this node type. All attributes of <code>Node</code>
- * not described in this section have a <code>null</code> or
- * <code>false</code> value.
- * <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the
- * <code>ownerElement</code> even if the element is later adopted.
- * <p><code>prefix</code> is the prefix of the namespace represented by the
- * node.
- * <p><code>nodeName</code> is the same as <code>prefix</code>.
- * <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>.
- * <p><code>namespaceURI</code> is the namespace URI of the namespace
- * represented by the node.
- * <p><code>adoptNode</code>, <code>cloneNode</code>, and
- * <code>importNode</code> fail on this node type by raising a
- * <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>.In
- * future versions of the XPath specification, the definition of a namespace
- * node may be changed incomatibly, in which case incompatible changes to
- * field values may be required to implement versions beyond XPath 1.0.
- * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- *
- * This implementation wraps the DOM attribute node that contained the
- * namespace declaration.
- * @xsl.usage internal
- */
-
-class XPathNamespaceImpl implements XPathNamespace {
-
-    // Node that XPathNamespaceImpl wraps
-    final private Node m_attributeNode;
-
-    /**
-     * Constructor for XPathNamespaceImpl.
-     */
-    XPathNamespaceImpl(Node node) {
-        m_attributeNode = node;
-    }
-
-    /**
-     * @see com.sun.org.apache.xalan.internal.dom3.xpath.XPathNamespace#getOwnerElement()
-     */
-    public Element getOwnerElement() {
-        return ((Attr)m_attributeNode).getOwnerElement();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getNodeName()
-     */
-    public String getNodeName() {
-        return "#namespace";
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getNodeValue()
-     */
-    public String getNodeValue() throws DOMException {
-        return m_attributeNode.getNodeValue();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#setNodeValue(String)
-     */
-    public void setNodeValue(String arg0) throws DOMException {
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getNodeType()
-     */
-    public short getNodeType() {
-        return XPathNamespace.XPATH_NAMESPACE_NODE;
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getParentNode()
-     */
-    public Node getParentNode() {
-        return m_attributeNode.getParentNode();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getChildNodes()
-     */
-    public NodeList getChildNodes() {
-        return m_attributeNode.getChildNodes();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getFirstChild()
-     */
-    public Node getFirstChild() {
-        return m_attributeNode.getFirstChild();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getLastChild()
-     */
-    public Node getLastChild() {
-        return m_attributeNode.getLastChild();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getPreviousSibling()
-     */
-    public Node getPreviousSibling() {
-        return m_attributeNode.getPreviousSibling();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getNextSibling()
-     */
-    public Node getNextSibling() {
-        return m_attributeNode.getNextSibling();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getAttributes()
-     */
-    public NamedNodeMap getAttributes() {
-        return m_attributeNode.getAttributes();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getOwnerDocument()
-     */
-    public Document getOwnerDocument() {
-        return m_attributeNode.getOwnerDocument();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#insertBefore(Node, Node)
-     */
-    public Node insertBefore(Node arg0, Node arg1) throws DOMException {
-        return null;
-    }
-
-    /**
-     * @see org.w3c.dom.Node#replaceChild(Node, Node)
-     */
-    public Node replaceChild(Node arg0, Node arg1) throws DOMException {
-        return null;
-    }
-
-    /**
-     * @see org.w3c.dom.Node#removeChild(Node)
-     */
-    public Node removeChild(Node arg0) throws DOMException {
-        return null;
-    }
-
-    /**
-     * @see org.w3c.dom.Node#appendChild(Node)
-     */
-    public Node appendChild(Node arg0) throws DOMException {
-        return null;
-    }
-
-    /**
-     * @see org.w3c.dom.Node#hasChildNodes()
-     */
-    public boolean hasChildNodes() {
-        return false;
-    }
-
-    /**
-     * @see org.w3c.dom.Node#cloneNode(boolean)
-     */
-    public Node cloneNode(boolean arg0) {
-        throw new DOMException(DOMException.NOT_SUPPORTED_ERR,null);
-    }
-
-    /**
-     * @see org.w3c.dom.Node#normalize()
-     */
-    public void normalize() {
-        m_attributeNode.normalize();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#isSupported(String, String)
-     */
-    public boolean isSupported(String arg0, String arg1) {
-        return m_attributeNode.isSupported(arg0, arg1);
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getNamespaceURI()
-     */
-    public String getNamespaceURI() {
-
-        // For namespace node, the namespaceURI is the namespace URI
-        // of the namespace represented by the node.
-        return m_attributeNode.getNodeValue();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getPrefix()
-     */
-    public String getPrefix() {
-        return m_attributeNode.getPrefix();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#setPrefix(String)
-     */
-    public void setPrefix(String arg0) throws DOMException {
-    }
-
-    /**
-     * @see org.w3c.dom.Node#getLocalName()
-     */
-    public String getLocalName() {
-
-        // For namespace node, the local name is the same as the prefix
-        return m_attributeNode.getPrefix();
-    }
-
-    /**
-     * @see org.w3c.dom.Node#hasAttributes()
-     */
-    public boolean hasAttributes() {
-        return m_attributeNode.hasAttributes();
-    }
-
-    public String getBaseURI ( ) {
-        return null;
-    }
-
-    public short compareDocumentPosition(Node other) throws DOMException {
-        return 0;
-    }
-
-    private String textContent;
-
-    public String getTextContent() throws DOMException {
-        return textContent;
-    }
-
-    public void setTextContent(String textContent) throws DOMException {
-        this.textContent = textContent;
-    }
-
-    public boolean isSameNode(Node other) {
-        return false;
-    }
-
-    public String lookupPrefix(String namespaceURI) {
-        return ""; //PENDING
-    }
-
-    public boolean isDefaultNamespace(String namespaceURI) {
-        return false;
-    }
-
-    public String lookupNamespaceURI(String prefix) {
-        return null;
-    }
-
-    public boolean isEqualNode(Node arg) {
-        return false;
-    }
-
-    public Object getFeature(String feature, String version) {
-        return null; //PENDING
-    }
-
-    public Object setUserData(String key,
-                              Object data,
-                              UserDataHandler handler) {
-        return null; //PENDING
-    }
-
-    public Object getUserData(String key) {
-        return null;
-    }
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathResultImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,512 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-/*
- * Copyright 2002-2005 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id: XPathResultImpl.java,v 1.2.4.1 2005/09/10 04:18:54 jeffsuttor Exp $
- */
-
-
-package com.sun.org.apache.xpath.internal.domapi;
-
-import javax.xml.transform.TransformerException;
-
-import com.sun.org.apache.xpath.internal.XPath;
-import com.sun.org.apache.xpath.internal.objects.XObject;
-import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
-import com.sun.org.apache.xpath.internal.res.XPATHMessages;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.events.Event;
-import org.w3c.dom.events.EventListener;
-import org.w3c.dom.events.EventTarget;
-import org.w3c.dom.traversal.NodeIterator;
-import org.w3c.dom.xpath.XPathException;
-import org.w3c.dom.xpath.XPathResult;
-
-/**
- *
- * The class provides an implementation XPathResult according
- * to the DOM L3 XPath Specification, Working Group Note 26 February 2004.
- *
- * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.</p>
- *
- * <p>The <code>XPathResult</code> interface represents the result of the
- * evaluation of an XPath expression within the context of a particular
- * node. Since evaluation of an XPath expression can result in various
- * result types, this object makes it possible to discover and manipulate
- * the type and value of the result.</p>
- *
- * <p>This implementation wraps an <code>XObject</code>.
- *
- * @see com.sun.org.apache.xpath.internal.objects.XObject
- * @see org.w3c.dom.xpath.XPathResult
- *
- * @xsl.usage internal
- */
-class XPathResultImpl implements XPathResult, EventListener {
-
-        /**
-     *  The wrapped XObject
-     */
-        final private XObject m_resultObj;
-
-        /**
-         * The xpath object that wraps the expression used for this result.
-         */
-        final private XPath m_xpath;
-
-        /**
-     *  This the type specified by the user during construction.  Typically
-         *  the constructor will be called by com.sun.org.apache.xpath.internal.XPath.evaluate().
-     */
-        final private short m_resultType;
-
-        private boolean m_isInvalidIteratorState = false;
-
-    /**
-     * Only used to attach a mutation event handler when specified
-     * type is an iterator type.
-     */
-        final private Node m_contextNode;
-
-        /**
-     *  The iterator, if this is an iterator type.
-     */
-        private NodeIterator m_iterator = null;;
-
-        /**
-     *  The list, if this is a snapshot type.
-     */
-        private NodeList m_list = null;
-
-
-        /**
-         * Constructor for XPathResultImpl.
-     *
-     * For internal use only.
-         */
-         XPathResultImpl(short type, XObject result, Node contextNode, XPath xpath) {
-                // Check that the type is valid
-                if (!isValidType(type)) {
-            String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_INVALID_XPATH_TYPE, new Object[] {new Integer(type)});
-            throw new XPathException(XPathException.TYPE_ERR,fmsg); // Invalid XPath type argument: {0}
-                }
-
-        // Result object should never be null!
-        if (null == result) {
-            String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_EMPTY_XPATH_RESULT, null);
-            throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,fmsg); // Empty XPath result object
-        }
-
-        this.m_resultObj = result;
-        this.m_contextNode = contextNode;
-        this.m_xpath = xpath;
-
-        // If specified result was ANY_TYPE, determine XObject type
-        if (type == ANY_TYPE) {
-            this.m_resultType = getTypeFromXObject(result);
-        } else {
-            this.m_resultType = type;
-        }
-
-        // If the context node supports DOM Events and the type is one of the iterator
-        // types register this result as an event listener
-        if (((m_resultType == XPathResult.ORDERED_NODE_ITERATOR_TYPE) ||
-            (m_resultType == XPathResult.UNORDERED_NODE_ITERATOR_TYPE))) {
-                addEventListener();
-
-        }// else can we handle iterator types if contextNode doesn't support EventTarget??
-
-        // If this is an iterator type get the iterator
-        if ((m_resultType == ORDERED_NODE_ITERATOR_TYPE) ||
-            (m_resultType == UNORDERED_NODE_ITERATOR_TYPE) ||
-            (m_resultType == ANY_UNORDERED_NODE_TYPE) ||
-            (m_resultType == FIRST_ORDERED_NODE_TYPE))  {
-
-            try {
-                m_iterator = m_resultObj.nodeset();
-            } catch (TransformerException te) {
-                // probably not a node type
-                                String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_INCOMPATIBLE_TYPES, new Object[] {m_xpath.getPatternString(), getTypeString(getTypeFromXObject(m_resultObj)),getTypeString(m_resultType)});
-                            throw new XPathException(XPathException.TYPE_ERR, fmsg);  // "The XPathResult of XPath expression {0} has an XPathResultType of {1} which cannot be coerced into the specified XPathResultType of {2}."},
-           }
-
-                // If user requested ordered nodeset and result is unordered
-                // need to sort...TODO
-    //            if ((m_resultType == ORDERED_NODE_ITERATOR_TYPE) &&
-    //                (!(((DTMNodeIterator)m_iterator).getDTMIterator().isDocOrdered()))) {
-    //
-    //            }
-
-        // If it's a snapshot type, get the nodelist
-        } else if ((m_resultType == UNORDERED_NODE_SNAPSHOT_TYPE) ||
-                   (m_resultType == ORDERED_NODE_SNAPSHOT_TYPE)) {
-            try {
-                   m_list = m_resultObj.nodelist();
-            } catch (TransformerException te) {
-                        // probably not a node type
-                                String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_INCOMPATIBLE_TYPES, new Object[] {m_xpath.getPatternString(), getTypeString(getTypeFromXObject(m_resultObj)),getTypeString(m_resultType)});
-                                throw new XPathException(XPathException.TYPE_ERR, fmsg); // "The XPathResult of XPath expression {0} has an XPathResultType of {1} which cannot be coerced into the specified XPathResultType of {2}."},
-            }
-        }
-        }
-
-        /**
-         * @see org.w3c.dom.xpath.XPathResult#getResultType()
-         */
-        public short getResultType() {
-                return m_resultType;
-        }
-
-        /**
-         *  The value of this number result.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>NUMBER_TYPE</code>.
-         * @see org.w3c.dom.xpath.XPathResult#getNumberValue()
-         */
-        public double getNumberValue() throws XPathException {
-                if (getResultType() != NUMBER_TYPE) {
-                        String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_CANT_CONVERT_XPATHRESULTTYPE_TO_NUMBER, new Object[] {m_xpath.getPatternString(), getTypeString(m_resultType)});
-                        throw new XPathException(XPathException.TYPE_ERR,fmsg);
-//              "The XPathResult of XPath expression {0} has an XPathResultType of {1} which cannot be converted to a number"
-                } else {
-                        try {
-                           return m_resultObj.num();
-                        } catch (Exception e) {
-                                // Type check above should prevent this exception from occurring.
-                                throw new XPathException(XPathException.TYPE_ERR,e.getMessage());
-                        }
-                }
-        }
-
-        /**
-         * The value of this string result.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>STRING_TYPE</code>.
-     *
-         * @see org.w3c.dom.xpath.XPathResult#getStringValue()
-         */
-        public String getStringValue() throws XPathException {
-                if (getResultType() != STRING_TYPE) {
-                        String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_CANT_CONVERT_TO_STRING, new Object[] {m_xpath.getPatternString(), m_resultObj.getTypeString()});
-                        throw new XPathException(XPathException.TYPE_ERR,fmsg);
-//              "The XPathResult of XPath expression {0} has an XPathResultType of {1} which cannot be converted to a string."
-                } else {
-                        try {
-                           return m_resultObj.str();
-                        } catch (Exception e) {
-                                // Type check above should prevent this exception from occurring.
-                                throw new XPathException(XPathException.TYPE_ERR,e.getMessage());
-                        }
-                }
-        }
-
-        /**
-         * @see org.w3c.dom.xpath.XPathResult#getBooleanValue()
-         */
-        public boolean getBooleanValue() throws XPathException {
-                if (getResultType() != BOOLEAN_TYPE) {
-                        String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_CANT_CONVERT_TO_BOOLEAN, new Object[] {m_xpath.getPatternString(), getTypeString(m_resultType)});
-                        throw new XPathException(XPathException.TYPE_ERR,fmsg);
-//              "The XPathResult of XPath expression {0} has an XPathResultType of {1} which cannot be converted to a boolean."
-                } else {
-                        try {
-                           return m_resultObj.bool();
-                        } catch (TransformerException e) {
-                                // Type check above should prevent this exception from occurring.
-                                throw new XPathException(XPathException.TYPE_ERR,e.getMessage());
-                        }
-                }
-        }
-
-        /**
-         * The value of this single node result, which may be <code>null</code>.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>ANY_UNORDERED_NODE_TYPE</code> or
-     *   <code>FIRST_ORDERED_NODE_TYPE</code>.
-     *
-         * @see org.w3c.dom.xpath.XPathResult#getSingleNodeValue()
-         */
-        public Node getSingleNodeValue() throws XPathException {
-
-                if ((m_resultType != ANY_UNORDERED_NODE_TYPE) &&
-                    (m_resultType != FIRST_ORDERED_NODE_TYPE)) {
-                                String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_CANT_CONVERT_TO_SINGLENODE, new Object[] {m_xpath.getPatternString(), getTypeString(m_resultType)});
-                                throw new XPathException(XPathException.TYPE_ERR,fmsg);
-//                              "The XPathResult of XPath expression {0} has an XPathResultType of {1} which cannot be converted to a single node.
-//                               This method applies only to types ANY_UNORDERED_NODE_TYPE and FIRST_ORDERED_NODE_TYPE."
-            }
-
-                NodeIterator result = null;
-                try {
-                        result = m_resultObj.nodeset();
-                } catch (TransformerException te) {
-                        throw new XPathException(XPathException.TYPE_ERR,te.getMessage());
-                }
-
-        if (null == result) return null;
-
-        Node node = result.nextNode();
-
-        // Wrap "namespace node" in an XPathNamespace
-        if (isNamespaceNode(node)) {
-            return new XPathNamespaceImpl(node);
-        } else {
-            return node;
-        }
-        }
-
-        /**
-         * @see org.w3c.dom.xpath.XPathResult#getInvalidIteratorState()
-         */
-        public boolean getInvalidIteratorState() {
-                return m_isInvalidIteratorState;
-        }
-
-        /**
-         * The number of nodes in the result snapshot. Valid values for
-     * snapshotItem indices are <code>0</code> to
-     * <code>snapshotLength-1</code> inclusive.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
-     *   <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
-     *
-         * @see org.w3c.dom.xpath.XPathResult#getSnapshotLength()
-         */
-        public int getSnapshotLength() throws XPathException {
-
-                if ((m_resultType != UNORDERED_NODE_SNAPSHOT_TYPE) &&
-                    (m_resultType != ORDERED_NODE_SNAPSHOT_TYPE)) {
-                                String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_CANT_GET_SNAPSHOT_LENGTH, new Object[] {m_xpath.getPatternString(), getTypeString(m_resultType)});
-                                throw new XPathException(XPathException.TYPE_ERR,fmsg);
-//                              "The method getSnapshotLength cannot be called on the XPathResult of XPath expression {0} because its XPathResultType is {1}.
-            }
-
-                return m_list.getLength();
-        }
-
-        /**
-         * Iterates and returns the next node from the node set or
-     * <code>null</code>if there are no more nodes.
-     * @return Returns the next node.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>UNORDERED_NODE_ITERATOR_TYPE</code> or
-     *   <code>ORDERED_NODE_ITERATOR_TYPE</code>.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: The document has been mutated since the result was
-     *   returned.
-         * @see org.w3c.dom.xpath.XPathResult#iterateNext()
-         */
-        public Node iterateNext() throws XPathException, DOMException {
-                if ((m_resultType != UNORDERED_NODE_ITERATOR_TYPE) &&
-                    (m_resultType != ORDERED_NODE_ITERATOR_TYPE)) {
-          String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_NON_ITERATOR_TYPE, new Object[] {m_xpath.getPatternString(), getTypeString(m_resultType)});
-                  throw new XPathException(XPathException.TYPE_ERR, fmsg);
-//                "The method iterateNext cannot be called on the XPathResult of XPath expression {0} because its XPathResultType is {1}.
-//                This method applies only to types UNORDERED_NODE_ITERATOR_TYPE and ORDERED_NODE_ITERATOR_TYPE."},
-            }
-
-                if (getInvalidIteratorState()) {
-          String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_DOC_MUTATED, null);
-                  throw new DOMException(DOMException.INVALID_STATE_ERR,fmsg);  // Document mutated since result was returned. Iterator is invalid.
-                }
-
-        Node node = m_iterator.nextNode();
-        if(null == node)
-                removeEventListener(); // JIRA 1673
-        // Wrap "namespace node" in an XPathNamespace
-        if (isNamespaceNode(node)) {
-            return new XPathNamespaceImpl(node);
-        } else {
-            return node;
-        }
-        }
-
-    /**
-     * Returns the <code>index</code>th item in the snapshot collection. If
-     * <code>index</code> is greater than or equal to the number of nodes in
-     * the list, this method returns <code>null</code>. Unlike the iterator
-     * result, the snapshot does not become invalid, but may not correspond
-     * to the current document if it is mutated.
-     * @param index Index into the snapshot collection.
-     * @return The node at the <code>index</code>th position in the
-     *   <code>NodeList</code>, or <code>null</code> if that is not a valid
-     *   index.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
-     *   <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
-     *
-         * @see org.w3c.dom.xpath.XPathResult#snapshotItem(int)
-         */
-        public Node snapshotItem(int index) throws XPathException {
-
-                if ((m_resultType != UNORDERED_NODE_SNAPSHOT_TYPE) &&
-                    (m_resultType != ORDERED_NODE_SNAPSHOT_TYPE)) {
-           String fmsg = XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_NON_SNAPSHOT_TYPE, new Object[] {m_xpath.getPatternString(), getTypeString(m_resultType)});
-           throw new XPathException(XPathException.TYPE_ERR, fmsg);
-//              "The method snapshotItem cannot be called on the XPathResult of XPath expression {0} because its XPathResultType is {1}.
-//              This method applies only to types UNORDERED_NODE_SNAPSHOT_TYPE and ORDERED_NODE_SNAPSHOT_TYPE."},
-            }
-
-        Node node = m_list.item(index);
-
-        // Wrap "namespace node" in an XPathNamespace
-        if (isNamespaceNode(node)) {
-            return new XPathNamespaceImpl(node);
-        } else {
-            return node;
-        }
-        }
-
-
-        /**
-         * Check if the specified type is one of the supported types.
-         * @param type The specified type
-         *
-         * @return true If the specified type is supported; otherwise, returns false.
-         */
-        static boolean isValidType( short type ) {
-                switch (type) {
-                        case ANY_TYPE:
-                        case NUMBER_TYPE:
-                        case STRING_TYPE:
-                        case BOOLEAN_TYPE:
-                        case UNORDERED_NODE_ITERATOR_TYPE:
-                        case ORDERED_NODE_ITERATOR_TYPE:
-                        case UNORDERED_NODE_SNAPSHOT_TYPE:
-                        case ORDERED_NODE_SNAPSHOT_TYPE:
-                        case ANY_UNORDERED_NODE_TYPE:
-                        case FIRST_ORDERED_NODE_TYPE: return true;
-                        default: return false;
-                }
-        }
-
-        /**
-         * @see org.w3c.dom.events.EventListener#handleEvent(Event)
-         */
-        public void handleEvent(Event event) {
-
-                if (event.getType().equals("DOMSubtreeModified")) {
-                        // invalidate the iterator
-                        m_isInvalidIteratorState = true;
-
-                        // deregister as a listener to reduce computational load
-                        removeEventListener();
-                }
-        }
-
-  /**
-   * Given a request type, return the equivalent string.
-   * For diagnostic purposes.
-   *
-   * @return type string
-   */
-  private String getTypeString(int type)
-  {
-     switch (type) {
-      case ANY_TYPE: return "ANY_TYPE";
-      case ANY_UNORDERED_NODE_TYPE: return "ANY_UNORDERED_NODE_TYPE";
-      case BOOLEAN_TYPE: return "BOOLEAN";
-      case FIRST_ORDERED_NODE_TYPE: return "FIRST_ORDERED_NODE_TYPE";
-      case NUMBER_TYPE: return "NUMBER_TYPE";
-      case ORDERED_NODE_ITERATOR_TYPE: return "ORDERED_NODE_ITERATOR_TYPE";
-      case ORDERED_NODE_SNAPSHOT_TYPE: return "ORDERED_NODE_SNAPSHOT_TYPE";
-      case STRING_TYPE: return "STRING_TYPE";
-      case UNORDERED_NODE_ITERATOR_TYPE: return "UNORDERED_NODE_ITERATOR_TYPE";
-      case UNORDERED_NODE_SNAPSHOT_TYPE: return "UNORDERED_NODE_SNAPSHOT_TYPE";
-      default: return "#UNKNOWN";
-    }
-  }
-
-  /**
-   * Given an XObject, determine the corresponding DOM XPath type
-   *
-   * @return type string
-   */
-  private short getTypeFromXObject(XObject object) {
-      switch (object.getType()) {
-        case XObject.CLASS_BOOLEAN: return BOOLEAN_TYPE;
-        case XObject.CLASS_NODESET: return UNORDERED_NODE_ITERATOR_TYPE;
-        case XObject.CLASS_NUMBER: return NUMBER_TYPE;
-        case XObject.CLASS_STRING: return STRING_TYPE;
-        // XPath 2.0 types
-//          case XObject.CLASS_DATE:
-//          case XObject.CLASS_DATETIME:
-//          case XObject.CLASS_DTDURATION:
-//          case XObject.CLASS_GDAY:
-//          case XObject.CLASS_GMONTH:
-//          case XObject.CLASS_GMONTHDAY:
-//          case XObject.CLASS_GYEAR:
-//          case XObject.CLASS_GYEARMONTH:
-//          case XObject.CLASS_TIME:
-//          case XObject.CLASS_YMDURATION: return STRING_TYPE; // treat all date types as strings?
-
-        case XObject.CLASS_RTREEFRAG: return UNORDERED_NODE_ITERATOR_TYPE;
-        case XObject.CLASS_NULL: return ANY_TYPE; // throw exception ?
-        default: return ANY_TYPE; // throw exception ?
-    }
-
-  }
-
-/**
- * Given a node, determine if it is a namespace node.
- *
- * @param node
- *
- * @return boolean Returns true if this is a namespace node; otherwise, returns false.
- */
-  private boolean isNamespaceNode(Node node) {
-
-     if ((null != node) &&
-         (node.getNodeType() == Node.ATTRIBUTE_NODE) &&
-         (node.getNodeName().startsWith("xmlns:") || node.getNodeName().equals("xmlns"))) {
-        return true;
-     } else {
-        return false;
-     }
-  }
-
-/**
- * Add m_contextNode to Event Listner to listen for Mutations Events
- *
- */
-  private void addEventListener(){
-        if(m_contextNode instanceof EventTarget)
-                ((EventTarget)m_contextNode).addEventListener("DOMSubtreeModified",this,true);
-
-  }
-
-
-/**
- * Remove m_contextNode to Event Listner to listen for Mutations Events
- *
- */
-private void removeEventListener(){
-        if(m_contextNode instanceof EventTarget)
-                ((EventTarget)m_contextNode).removeEventListener("DOMSubtreeModified",this,true);
-}
-
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/XPathStylesheetDOM3Exception.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package com.sun.org.apache.xpath.internal.domapi;
-
-import javax.xml.transform.SourceLocator;
-import javax.xml.transform.TransformerException;
-
-/**
- *
- * A new exception to add support for DOM Level 3 XPath API.
- * This class is needed to throw a org.w3c.dom.DOMException with proper error code in
- * createExpression method of XPathEvaluatorImpl (a DOM Level 3 class).
- *
- * This class extends TransformerException because the error message includes information
- * about where the XPath problem is in the stylesheet as well as the XPath expression itself.
- *
- * @xsl.usage internal
- */
-final public class XPathStylesheetDOM3Exception extends TransformerException {
-        public XPathStylesheetDOM3Exception(String msg, SourceLocator arg1)
-        {
-                super(msg, arg1);
-        }
-}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/domapi/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<!--
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
--->
-<!--
- * Copyright 2000-2005 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
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
--->
-<!-- $Id: package.html,v 1.1.4.1 2005/09/07 22:27:28 jeffsuttor Exp $ -->
-<html>
-  <title>XPath domapi Package.</title>
-  <body>
-    <p>Implements DOM Level 3 XPath API<p>
- </body>
-</html>
-
-
--- a/jaxp/src/java.xml/share/classes/javax/xml/XMLConstants.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/XMLConstants.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml;
 
 /**
- * <p>Utility class to contain basic XML values as constants.</p>
+ * <p>Utility class to contain basic XML values as constants.
  *
  * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @see <a href="http://www.w3.org/TR/xml11/">Extensible Markup Language (XML) 1.1</a>
@@ -42,15 +42,15 @@
 public final class XMLConstants {
 
     /**
-     * <p>Private constructor to prevent instantiation.</p>
+     * Private constructor to prevent instantiation.
      */
-        private XMLConstants() {
-        }
+    private XMLConstants() {
+    }
 
     /**
-     * <p>Namespace URI to use to represent that there is no Namespace.</p>
+     * Namespace URI to use to represent that there is no Namespace.
      *
-     * <p>Defined by the Namespace specification to be "".</p>
+     * <p>Defined by the Namespace specification to be "".
      *
      * @see <a href="http://www.w3.org/TR/REC-xml-names/#defaulting">
      * Namespaces in XML, 5.2 Namespace Defaulting</a>
@@ -58,9 +58,9 @@
     public static final String NULL_NS_URI = "";
 
     /**
-     * <p>Prefix to use to represent the default XML Namespace.</p>
+     * Prefix to use to represent the default XML Namespace.
      *
-     * <p>Defined by the XML specification to be "".</p>
+     * <p>Defined by the XML specification to be "".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -69,10 +69,10 @@
     public static final String DEFAULT_NS_PREFIX = "";
 
     /**
-     * <p>The official XML Namespace name URI.</p>
+     * The official XML Namespace name URI.
      *
      * <p>Defined by the XML specification to be
-     * "{@code http://www.w3.org/XML/1998/namespace}".</p>
+     * "{@code http://www.w3.org/XML/1998/namespace}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -82,23 +82,23 @@
         "http://www.w3.org/XML/1998/namespace";
 
     /**
-     * <p>The official XML Namespace prefix.</p>
+     * The official XML Namespace prefix.
      *
-     * <p>Defined by the XML specification to be "{@code xml}".</p>
+     * <p>Defined by the XML specification to be "{@code xml}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
-     * Namespaces in XML, 3. Qualified Names<</a>
+     * Namespaces in XML, 3. Qualified Names</a>
      */
     public static final String XML_NS_PREFIX = "xml";
 
     /**
-     * <p>The official XML attribute used for specifying XML Namespace
+     * The official XML attribute used for specifying XML Namespace
      * declarations, {@link #XMLNS_ATTRIBUTE
-     * XMLConstants.XMLNS_ATTRIBUTE}, Namespace name URI.</p>
+     * XMLConstants.XMLNS_ATTRIBUTE}, Namespace name URI.
      *
      * <p>Defined by the XML specification to be
-     * "{@code http://www.w3.org/2000/xmlns/}".</p>
+     * "{@code http://www.w3.org/2000/xmlns/}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -111,12 +111,12 @@
         "http://www.w3.org/2000/xmlns/";
 
     /**
-     * <p>The official XML attribute used for specifying XML Namespace
-     * declarations.</p>
+     * The official XML attribute used for specifying XML Namespace
+     * declarations.
      *
      * <p>It is <strong><em>NOT</em></strong> valid to use as a
      * prefix.  Defined by the XML specification to be
-     * "{@code xmlns}".</p>
+     * "{@code xmlns}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -125,7 +125,7 @@
     public static final String XMLNS_ATTRIBUTE = "xmlns";
 
     /**
-     * <p>W3C XML Schema Namespace URI.</p>
+     * W3C XML Schema Namespace URI.
      *
      * <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema}".
      *
@@ -138,9 +138,9 @@
         "http://www.w3.org/2001/XMLSchema";
 
     /**
-     * <p>W3C XML Schema Instance Namespace URI.</p>
+     * W3C XML Schema Instance Namespace URI.
      *
-     * <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema-instance}".</p>
+     * <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema-instance}".
      *
      * @see <a href=
      *  "http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions">
@@ -150,33 +150,33 @@
     public static final String W3C_XML_SCHEMA_INSTANCE_NS_URI =
         "http://www.w3.org/2001/XMLSchema-instance";
 
-        /**
-         * <p>W3C XPath Datatype Namespace URI.</p>
-         *
-         * <p>Defined to be "{@code http://www.w3.org/2003/11/xpath-datatypes}".</p>
-         *
-         * @see <a href="http://www.w3.org/TR/xpath-datamodel">XQuery 1.0 and XPath 2.0 Data Model</a>
-         */
-        public static final String W3C_XPATH_DATATYPE_NS_URI = "http://www.w3.org/2003/11/xpath-datatypes";
+    /**
+     * W3C XPath Datatype Namespace URI.
+     *
+     * <p>Defined to be "{@code http://www.w3.org/2003/11/xpath-datatypes}".
+     *
+     * @see <a href="http://www.w3.org/TR/xpath-datamodel">XQuery 1.0 and XPath 2.0 Data Model</a>
+     */
+    public static final String W3C_XPATH_DATATYPE_NS_URI = "http://www.w3.org/2003/11/xpath-datatypes";
 
     /**
-     * <p>XML Document Type Declaration Namespace URI as an arbitrary value.</p>
+     * XML Document Type Declaration Namespace URI as an arbitrary value.
      *
      * <p>Since not formally defined by any existing standard, arbitrarily define to be "{@code http://www.w3.org/TR/REC-xml}".
      */
     public static final String XML_DTD_NS_URI = "http://www.w3.org/TR/REC-xml";
 
         /**
-         * <p>RELAX NG Namespace URI.</p>
+         * RELAX NG Namespace URI.
          *
-         * <p>Defined to be "{@code http://relaxng.org/ns/structure/1.0}".</p>
+         * <p>Defined to be "{@code http://relaxng.org/ns/structure/1.0}".
          *
          * @see <a href="http://relaxng.org/spec-20011203.html">RELAX NG Specification</a>
          */
         public static final String RELAXNG_NS_URI = "http://relaxng.org/ns/structure/1.0";
 
         /**
-         * <p>Feature for secure processing.</p>
+         * Feature for secure processing.
          *
          * <ul>
          *   <li>
@@ -193,14 +193,13 @@
 
 
         /**
-         * <p>Property: accessExternalDTD</p>
+         * Property: accessExternalDTD
          *
          * <p>
          * Restrict access to external DTDs and external Entity References to the protocols specified.
          * If access is denied due to the restriction of this property, a runtime exception that
          * is specific to the context is thrown. In the case of {@link javax.xml.parsers.SAXParser}
          * for example, {@link org.xml.sax.SAXException} is thrown.
-         * </p>
          *
          * <p>
          * <b>Value: </b> a list of protocols separated by comma. A protocol is the scheme portion of a
@@ -221,7 +220,6 @@
          * Examples of protocols are file, http, jar:file.
          *
          * </blockquote>
-         *</p>
          *
          *<p>
          * <b>Default value:</b> The default value is implementation specific and therefore not specified.
@@ -231,20 +229,19 @@
          *     <LI>an empty string to deny all access to external references;</LI>
          *     <LI>a specific protocol, such as file, to give permission to only the protocol;</LI>
          *     <LI>the keyword "all" to grant  permission to all protocols.</LI>
-         *</UL><br>
+         * </UL><br>
          *      When FEATURE_SECURE_PROCESSING is enabled,  it is recommended that implementations
          *      restrict external connections by default, though this may cause problems for applications
          *      that process XML/XSD/XSL with external references.
          * </blockquote>
-         * </p>
          *
          * <p>
          * <b>Granting all access:</b>  the keyword "all" grants permission to all protocols.
-         * </p>
+         *
          * <p>
          * <b>System Property:</b> The value of this property can be set or overridden by
          * system property {@code javax.xml.accessExternalDTD}.
-         * </p>
+         *
          *
          * <p>
          * <b>jaxp.properties:</b> This configuration file is in standard
@@ -252,11 +249,8 @@
          * directory of the Java installation. If the file exists and the system
          * property is specified, its value will be used to override the default
          * of the property.
-         * </p>
          *
-         * <p>
          *
-         * </p>
          * @since 1.7
          */
         public static final String ACCESS_EXTERNAL_DTD = "http://javax.xml.XMLConstants/property/accessExternalDTD";
@@ -270,7 +264,7 @@
          * due to the restriction of this property, a runtime exception that is specific
          * to the context is thrown. In the case of {@link javax.xml.validation.SchemaFactory}
          * for example, org.xml.sax.SAXException is thrown.
-         * </p>
+         *
          * <p>
          * <b>Value:</b> a list of protocols separated by comma. A protocol is the scheme portion of a
          * {@link java.net.URI}, or in the case of the JAR protocol, "jar" plus the scheme portion
@@ -290,9 +284,8 @@
          * Examples of protocols are file, http, jar:file.
          *
          * </blockquote>
-         *</p>
          *
-         *<p>
+         * <p>
          * <b>Default value:</b> The default value is implementation specific and therefore not specified.
          * The following options are provided for consideration:
          * <blockquote>
@@ -300,20 +293,18 @@
          *     <LI>an empty string to deny all access to external references;</LI>
          *     <LI>a specific protocol, such as file, to give permission to only the protocol;</LI>
          *     <LI>the keyword "all" to grant  permission to all protocols.</LI>
-         *</UL><br>
+         * </UL><br>
          *      When FEATURE_SECURE_PROCESSING is enabled,  it is recommended that implementations
          *      restrict external connections by default, though this may cause problems for applications
          *      that process XML/XSD/XSL with external references.
          * </blockquote>
-         * </p>
+         *
          * <p>
          * <b>Granting all access:</b>  the keyword "all" grants permission to all protocols.
-         * </p>
          *
          * <p>
          * <b>System Property:</b> The value of this property can be set or overridden by
          * system property {@code javax.xml.accessExternalSchema}
-         * </p>
          *
          * <p>
          * <b>jaxp.properties:</b> This configuration file is in standard
@@ -323,12 +314,11 @@
          * of the property.
          *
          * @since 1.7
-         * </p>
          */
         public static final String ACCESS_EXTERNAL_SCHEMA = "http://javax.xml.XMLConstants/property/accessExternalSchema";
 
         /**
-         * <p>Property: accessExternalStylesheet</p>
+         * Property: accessExternalStylesheet
          *
          * <p>
          * Restrict access to the protocols specified for external references set by the
@@ -338,7 +328,7 @@
          * {@link javax.xml.transform.Transformer} for example,
          * {@link javax.xml.transform.TransformerConfigurationException}
          * will be thrown by the {@link javax.xml.transform.TransformerFactory}.
-         * </p>
+         *
          * <p>
          * <b>Value:</b> a list of protocols separated by comma. A protocol is the scheme portion of a
          * {@link java.net.URI}, or in the case of the JAR protocol, "jar" plus the scheme portion
@@ -358,9 +348,8 @@
          * Examples of protocols are file, http, jar:file.
          *
          * </blockquote>
-         *</p>
          *
-         *<p>
+         * <p>
          * <b>Default value:</b> The default value is implementation specific and therefore not specified.
          * The following options are provided for consideration:
          * <blockquote>
@@ -368,20 +357,18 @@
          *     <LI>an empty string to deny all access to external references;</LI>
          *     <LI>a specific protocol, such as file, to give permission to only the protocol;</LI>
          *     <LI>the keyword "all" to grant  permission to all protocols.</LI>
-         *</UL><br>
+         * </UL><br>
          *      When FEATURE_SECURE_PROCESSING is enabled,  it is recommended that implementations
          *      restrict external connections by default, though this may cause problems for applications
          *      that process XML/XSD/XSL with external references.
          * </blockquote>
-         * </p>
+         *
          * <p>
          * <b>Granting all access:</b>  the keyword "all" grants permission to all protocols.
-         * </p>
          *
          * <p>
          * <b>System Property:</b> The value of this property can be set or overridden by
          * system property {@code javax.xml.accessExternalStylesheet}
-         * </p>
          *
          * <p>
          * <b>jaxp.properties:</b> This configuration file is in standard
--- a/jaxp/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,11 +32,10 @@
 import java.util.regex.Pattern;
 
 /**
- * Factory that creates new <code>javax.xml.datatype</code> <code>Object</code>s that map XML to/from Java <code>Object</code>s.
+ * Factory that creates new {@code javax.xml.datatype} {@code Object}s that map XML to/from Java {@code Object}s.
  * <p>
  * A new instance of the {@code DatatypeFactory} is created through the {@link #newInstance()} method
  * that uses the following implementation resolution mechanisms to determine an implementation:
- * <p>
  * <ol>
  *    <li>
  *      If the system property specified by {@link #DATATYPEFACTORY_PROPERTY}, "{@code javax.xml.datatype.DatatypeFactory}",
@@ -89,9 +88,9 @@
 public abstract class DatatypeFactory {
 
     /**
-     * <p>Default property name as defined in JSR 206: Java(TM) API for XML Processing (JAXP) 1.3.</p>
+     * Default property name as defined in JSR 206: Java(TM) API for XML Processing (JAXP) 1.3.
      *
-     * <p>Default value is {@code javax.xml.datatype.DatatypeFactory}.</p>
+     * <p>Default value is {@code javax.xml.datatype.DatatypeFactory}.
      */
     public static final String DATATYPEFACTORY_PROPERTY =
             // We use a String constant here, rather than calling
@@ -100,16 +99,15 @@
             "javax.xml.datatype.DatatypeFactory";
 
     /**
-     * <p>Default implementation class name as defined in
-     * <em>JSR 206: Java(TM) API for XML Processing (JAXP) 1.3</em>.</p>
+     * Default implementation class name as defined in
+     * <em>JSR 206: Java(TM) API for XML Processing (JAXP) 1.3</em>.
      *
      * <p>Implementers should specify the name of an appropriate class
      * to be instantiated if no other implementation resolution mechanism
-     * succeeds.</p>
+     * succeeds.
      *
      * <p>Users should not refer to this field; it is intended only to
      * document a factory implementation detail.
-     * </p>
      */
     public static final String DATATYPEFACTORY_IMPLEMENTATION_CLASS =
         // We use new String() here to prevent javadoc from generating
@@ -130,18 +128,18 @@
         Pattern.compile("[^YM]*[DT].*");
 
     /**
-     * <p>Protected constructor to prevent instantiation outside of package.</p>
+     * Protected constructor to prevent instantiation outside of package.
      *
-     * <p>Use {@link #newInstance()} to create a {@code DatatypeFactory}.</p>
+     * <p>Use {@link #newInstance()} to create a {@code DatatypeFactory}.
      */
     protected DatatypeFactory() {
     }
 
     /**
-     * <p>Obtain a new instance of a {@code DatatypeFactory}.</p>
+     * Obtain a new instance of a {@code DatatypeFactory}.
      *
      * <p>The implementation resolution mechanisms are <a href="#DatatypeFactory.newInstance">defined</a> in this
-     * <code>Class</code>'s documentation.</p>
+     * {@code Class}'s documentation.
      *
      * @return New instance of a {@code DatatypeFactory}
      *
@@ -161,33 +159,33 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code DatatypeFactory} from class name.
+     * Obtain a new instance of a {@code DatatypeFactory} from class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <p>Once an application has obtained a reference to a {@code DatatypeFactory}
-     * it can use the factory to configure and obtain datatype instances.</P>
+     * it can use the factory to configure and obtain datatype instances.
      *
      *
      * <h2>Tip for Trouble-shooting</h2>
-     * <p>Setting the <code>jaxp.debug</code> system property will cause
+     * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to <code>System.err</code> about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
      * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.datatype.DatatypeFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return New instance of a {@code DatatypeFactory}
      *
-     * @throws DatatypeConfigurationException if <code>factoryClassName</code> is <code>null</code>, or
+     * @throws DatatypeConfigurationException if {@code factoryClassName} is {@code null}, or
      *                                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -201,11 +199,11 @@
      }
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as its string representation, "PnYnMnDTnHnMnS",
-     * as defined in XML Schema 1.0 section 3.2.6.1.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as its string representation, "PnYnMnDTnHnMnS",
+     * as defined in XML Schema 1.0 section 3.2.6.1.
      *
-     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines <code>duration</code> as:</p>
+     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines {@code duration} as:
      * <blockquote>
      * duration represents a duration of time.
      * The value space of duration is a six-dimensional space where the coordinates designate the
@@ -213,28 +211,28 @@
      * These components are ordered in their significance by their order of appearance i.e. as
      * year, month, day, hour, minute, and second.
      * </blockquote>
-     * <p>All six values are set and available from the created {@link Duration}</p>
+     * <p>All six values are set and available from the created {@link Duration}
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * @param lexicalRepresentation <code>String</code> representation of a <code>Duration</code>.
+     * @param lexicalRepresentation {@code String} representation of a {@code Duration}.
      *
-     * @return New <code>Duration</code> created from parsing the <code>lexicalRepresentation</code>.
+     * @return New {@code Duration} created from parsing the {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If <code>lexicalRepresentation</code> is not a valid representation of a <code>Duration</code>.
+     * @throws IllegalArgumentException If {@code lexicalRepresentation} is not a valid representation of a {@code Duration}.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
-     * @throws NullPointerException if <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws NullPointerException if {@code lexicalRepresentation} is {@code null}.
      */
     public abstract Duration newDuration(final String lexicalRepresentation);
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as milliseconds.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as milliseconds.
      *
-     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines <code>duration</code> as:</p>
+     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines {@code duration} as:
      * <blockquote>
      * duration represents a duration of time.
      * The value space of duration is a six-dimensional space where the coordinates designate the
@@ -243,8 +241,8 @@
      * year, month, day, hour, minute, and second.
      * </blockquote>
      * <p>All six values are set by computing their values from the specified milliseconds
-     * and are available using the <code>get</code> methods of  the created {@link Duration}.
-     * The values conform to and are defined by:</p>
+     * and are available using the {@code get} methods of  the created {@link Duration}.
+     * The values conform to and are defined by:
      * <ul>
      *   <li>ISO 8601:2000(E) Section 5.5.3.2 Alternative format</li>
      *   <li><a href="http://www.w3.org/TR/xmlschema-2/#isoformats">
@@ -259,38 +257,38 @@
      * {@link java.util.Calendar#DATE} = 1, etc.
      * This is important as there are variations in the Gregorian Calendar,
      * e.g. leap years have different days in the month = {@link java.util.Calendar#FEBRUARY}
-     * so the result of {@link Duration#getMonths()} and {@link Duration#getDays()} can be influenced.</p>
+     * so the result of {@link Duration#getMonths()} and {@link Duration#getDays()} can be influenced.
      *
      * @param durationInMilliSeconds Duration in milliseconds to create.
      *
-     * @return New <code>Duration</code> representing <code>durationInMilliSeconds</code>.
+     * @return New {@code Duration} representing {@code durationInMilliSeconds}.
      */
     public abstract Duration newDuration(final long durationInMilliSeconds);
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as isPositive, years, months, days, hours, minutes, seconds.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as isPositive, years, months, days, hours, minutes, seconds.
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param years of this <code>Duration</code>
-     * @param months of this <code>Duration</code>
-     * @param days of this <code>Duration</code>
-     * @param hours of this <code>Duration</code>
-     * @param minutes of this <code>Duration</code>
-     * @param seconds of this <code>Duration</code>
+     * @param years of this {@code Duration}
+     * @param months of this {@code Duration}
+     * @param days of this {@code Duration}
+     * @param hours of this {@code Duration}
+     * @param minutes of this {@code Duration}
+     * @param seconds of this {@code Duration}
      *
-     * @return New <code>Duration</code> created from the specified values.
+     * @return New {@code Duration} created from the specified values.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if all the fields (years, months, ...) are null or
+     * {@code Duration}: if all the fields (years, months, ...) are null or
      * if any of the fields is negative.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
      */
@@ -304,24 +302,24 @@
             final BigDecimal seconds);
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as isPositive, years, months, days, hours, minutes, seconds.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as isPositive, years, months, days, hours, minutes, seconds.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param years of this <code>Duration</code>
-     * @param months of this <code>Duration</code>
-     * @param days of this <code>Duration</code>
-     * @param hours of this <code>Duration</code>
-     * @param minutes of this <code>Duration</code>
-     * @param seconds of this <code>Duration</code>
+     * @param years of this {@code Duration}
+     * @param months of this {@code Duration}
+     * @param days of this {@code Duration}
+     * @param hours of this {@code Duration}
+     * @param minutes of this {@code Duration}
+     * @param seconds of this {@code Duration}
      *
-     * @return New <code>Duration</code> created from the specified values.
+     * @return New {@code Duration} created from the specified values.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if any of the fields is negative.
+     * {@code Duration}: if any of the fields is negative.
      *
      * @see #newDuration(
      *   boolean isPositive,
@@ -371,28 +369,30 @@
             }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> by parsing its <code>String</code> representation,
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration}
+     * by parsing its {@code String} representation,
      * "<em>PnDTnHnMnS</em>", <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
-     * <p>All four values are set and available from the created {@link Duration}</p>
+     * <p>All four values are set and available from the created {@link Duration}
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
      * @param lexicalRepresentation Lexical representation of a duration.
      *
-     * @return New <code>Duration</code> created using the specified <code>lexicalRepresentation</code>.
+     * @return New {@code Duration} created using the specified {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If <code>lexicalRepresentation</code> is not a valid representation of a <code>Duration</code> expressed only in terms of days and time.
+     * @throws IllegalArgumentException If {@code lexicalRepresentation} is
+     *         not a valid representation of a {@code Duration} expressed only in terms of days and time.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
-     * @throws NullPointerException If <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws NullPointerException If {@code lexicalRepresentation} is {@code null}.
      */
     public Duration newDurationDayTime(final String lexicalRepresentation) {
         // lexicalRepresentation must be non-null
@@ -415,17 +415,18 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> using the specified milliseconds as defined in
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration}
+     * using the specified milliseconds as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
      * <p>All four values are set by computing their values from the specified milliseconds
-     * and are available using the <code>get</code> methods of  the created {@link Duration}.
-     * The values conform to and are defined by:</p>
+     * and are available using the {@code get} methods of  the created {@link Duration}.
+     * The values conform to and are defined by:
      * <ul>
      *   <li>ISO 8601:2000(E) Section 5.5.3.2 Alternative format</li>
      *   <li><a href="http://www.w3.org/TR/xmlschema-2/#isoformats">
@@ -440,13 +441,13 @@
      * {@link java.util.Calendar#DATE} = 1, etc.
      * This is important as there are variations in the Gregorian Calendar,
      * e.g. leap years have different days in the month = {@link java.util.Calendar#FEBRUARY}
-     * so the result of {@link Duration#getDays()} can be influenced.</p>
+     * so the result of {@link Duration#getDays()} can be influenced.
      *
-     * <p>Any remaining milliseconds after determining the day, hour, minute and second are discarded.</p>
+     * <p>Any remaining milliseconds after determining the day, hour, minute and second are discarded.
      *
-     * @param durationInMilliseconds Milliseconds of <code>Duration</code> to create.
+     * @param durationInMilliseconds Milliseconds of {@code Duration} to create.
      *
-     * @return New <code>Duration</code> created with the specified <code>durationInMilliseconds</code>.
+     * @return New {@code Duration} created with the specified {@code durationInMilliseconds}.
      *
      * @see <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
      *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>
@@ -457,34 +458,34 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> using the specified
-     * <code>day</code>, <code>hour</code>, <code>minute</code> and <code>second</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration} using the specified
+     * {@code day}, {@code hour}, {@code minute} and {@code second} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param day Day of <code>Duration</code>.
-     * @param hour Hour of <code>Duration</code>.
-     * @param minute Minute of <code>Duration</code>.
-     * @param second Second of <code>Duration</code>.
+     * @param day Day of {@code Duration}.
+     * @param hour Hour of {@code Duration}.
+     * @param minute Minute of {@code Duration}.
+     * @param second Second of {@code Duration}.
      *
-     * @return New <code>Duration</code> created with the specified <code>day</code>, <code>hour</code>, <code>minute</code>
-     * and <code>second</code>.
+     * @return New {@code Duration} created with the specified {@code day}, {@code hour}, {@code minute}
+     * and {@code second}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if all the fields (day, hour, ...) are null or
+     * {@code Duration}: if all the fields (day, hour, ...) are null or
      * if any of the fields is negative.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
      */
@@ -507,29 +508,29 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> using the specified
-     * <code>day</code>, <code>hour</code>, <code>minute</code> and <code>second</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration} using the specified
+     * {@code day}, {@code hour}, {@code minute} and {@code second} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param day Day of <code>Duration</code>.
-     * @param hour Hour of <code>Duration</code>.
-     * @param minute Minute of <code>Duration</code>.
-     * @param second Second of <code>Duration</code>.
+     * @param day Day of {@code Duration}.
+     * @param hour Hour of {@code Duration}.
+     * @param minute Minute of {@code Duration}.
+     * @param second Second of {@code Duration}.
      *
-     * @return New <code>Duration</code> created with the specified <code>day</code>, <code>hour</code>, <code>minute</code>
-     * and <code>second</code>.
+     * @return New {@code Duration} created with the specified {@code day}, {@code hour}, {@code minute}
+     * and {@code second}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if any of the fields (day, hour, ...) is negative.
+     * {@code Duration}: if any of the fields (day, hour, ...) is negative.
      */
     public Duration newDurationDayTime(
             final boolean isPositive,
@@ -548,28 +549,30 @@
             }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> by parsing its <code>String</code> representation,
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration}
+     * by parsing its {@code String} representation,
      * "<em>PnYnM</em>", <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
-     * <p>The datatype <code>xdt:yearMonthDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:yearMonthDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only year and month components.
-     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.</p>
+     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.
      *
-     * <p>Both values are set and available from the created {@link Duration}</p>
+     * <p>Both values are set and available from the created {@link Duration}
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
-     * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
-     * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * Implementations may chose not to or be incapable of supporting
+     * arbitrarily large and/or small values. An {@link UnsupportedOperationException}
+     * will be thrown with a message indicating implementation limits
+     * if implementation capacities are exceeded.
      *
      * @param lexicalRepresentation Lexical representation of a duration.
      *
-     * @return New <code>Duration</code> created using the specified <code>lexicalRepresentation</code>.
+     * @return New {@code Duration} created using the specified {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If <code>lexicalRepresentation</code> is not a valid representation of a <code>Duration</code> expressed only in terms of years and months.
+     * @throws IllegalArgumentException If {@code lexicalRepresentation} is not a valid representation of a {@code Duration} expressed only in terms of years and months.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
-     * @throws NullPointerException If <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws NullPointerException If {@code lexicalRepresentation} is {@code null}.
      */
     public Duration newDurationYearMonth(
             final String lexicalRepresentation) {
@@ -594,17 +597,18 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> using the specified milliseconds as defined in
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration}
+     * using the specified milliseconds as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
-     * <p>The datatype <code>xdt:yearMonthDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:yearMonthDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only year and month components.
-     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.</p>
+     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.
      *
      * <p>Both values are set by computing their values from the specified milliseconds
-     * and are available using the <code>get</code> methods of  the created {@link Duration}.
-     * The values conform to and are defined by:</p>
+     * and are available using the {@code get} methods of  the created {@link Duration}.
+     * The values conform to and are defined by:
      * <ul>
      *   <li>ISO 8601:2000(E) Section 5.5.3.2 Alternative format</li>
      *   <li><a href="http://www.w3.org/TR/xmlschema-2/#isoformats">
@@ -619,13 +623,13 @@
      * {@link java.util.Calendar#DATE} = 1, etc.
      * This is important as there are variations in the Gregorian Calendar,
      * e.g. leap years have different days in the month = {@link java.util.Calendar#FEBRUARY}
-     * so the result of {@link Duration#getMonths()} can be influenced.</p>
+     * so the result of {@link Duration#getMonths()} can be influenced.
      *
-     * <p>Any remaining milliseconds after determining the year and month are discarded.</p>
+     * <p>Any remaining milliseconds after determining the year and month are discarded.
      *
-     * @param durationInMilliseconds Milliseconds of <code>Duration</code> to create.
+     * @param durationInMilliseconds Milliseconds of {@code Duration} to create.
      *
-     * @return New <code>Duration</code> created using the specified <code>durationInMilliseconds</code>.
+     * @return New {@code Duration} created using the specified {@code durationInMilliseconds}.
      */
     public Duration newDurationYearMonth(
             final long durationInMilliseconds) {
@@ -646,27 +650,27 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> using the specified
-     * <code>year</code> and <code>month</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration} using the specified
+     * {@code year} and {@code month} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param year Year of <code>Duration</code>.
-     * @param month Month of <code>Duration</code>.
+     * @param year Year of {@code Duration}.
+     * @param month Month of {@code Duration}.
      *
-     * @return New <code>Duration</code> created using the specified <code>year</code> and <code>month</code>.
+     * @return New {@code Duration} created using the specified {@code year} and {@code month}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if all of the fields (year, month) are null or
+     * {@code Duration}: if all of the fields (year, month) are null or
      * if any of the fields is negative.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
      */
@@ -687,22 +691,22 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> using the specified
-     * <code>year</code> and <code>month</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration} using the specified
+     * {@code year} and {@code month} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param year Year of <code>Duration</code>.
-     * @param month Month of <code>Duration</code>.
+     * @param year Year of {@code Duration}.
+     * @param month Month of {@code Duration}.
      *
-     * @return New <code>Duration</code> created using the specified <code>year</code> and <code>month</code>.
+     * @return New {@code Duration} created using the specified {@code year} and {@code month}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if any of the fields (year, month) is negative.
+     * {@code Duration}: if any of the fields (year, month) is negative.
      */
     public Duration newDurationYearMonth(
             final boolean isPositive,
@@ -716,44 +720,44 @@
             }
 
     /**
-     * <p>Create a new instance of an <code>XMLGregorianCalendar</code>.</p>
+     * Create a new instance of an {@code XMLGregorianCalendar}.
      *
-     * <p>All date/time datatype fields set to {@link DatatypeConstants#FIELD_UNDEFINED} or null.</p>
+     * <p>All date/time datatype fields set to {@link DatatypeConstants#FIELD_UNDEFINED} or null.
      *
-     * @return New <code>XMLGregorianCalendar</code> with all date/time datatype fields set to
+     * @return New {@code XMLGregorianCalendar} with all date/time datatype fields set to
      *   {@link DatatypeConstants#FIELD_UNDEFINED} or null.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar();
 
     /**
-     * <p>Create a new XMLGregorianCalendar by parsing the String as a lexical representation.</p>
+     * Create a new XMLGregorianCalendar by parsing the String as a lexical representation.
      *
      * <p>Parsing the lexical string representation is defined in
      * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime-order">XML Schema 1.0 Part 2, Section 3.2.[7-14].1,
-     * <em>Lexical Representation</em>.</a></p>
+     * <em>Lexical Representation</em>.</a>
      *
-     * <p>The string representation may not have any leading and trailing whitespaces.</p>
+     * <p>The string representation may not have any leading and trailing whitespaces.
      *
      * <p>The parsing is done field by field so that
-     * the following holds for any lexically correct String x:</p>
+     * the following holds for any lexically correct String x:
      * <pre>
      * newXMLGregorianCalendar(x).toXMLFormat().equals(x)
      * </pre>
      * <p>Except for the noted lexical/canonical representation mismatches
      * listed in <a href="http://www.w3.org/2001/05/xmlschema-errata#e2-45">
-     * XML Schema 1.0 errata, Section 3.2.7.2</a>.</p>
+     * XML Schema 1.0 errata, Section 3.2.7.2</a>.
      *
      * @param lexicalRepresentation Lexical representation of one the eight XML Schema date/time datatypes.
      *
-     * @return <code>XMLGregorianCalendar</code> created from the <code>lexicalRepresentation</code>.
+     * @return {@code XMLGregorianCalendar} created from the {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If the <code>lexicalRepresentation</code> is not a valid <code>XMLGregorianCalendar</code>.
-     * @throws NullPointerException If <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws IllegalArgumentException If the {@code lexicalRepresentation} is not a valid {@code XMLGregorianCalendar}.
+     * @throws NullPointerException If {@code lexicalRepresentation} is {@code null}.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar(final String lexicalRepresentation);
 
     /**
-     * <p>Create an <code>XMLGregorianCalendar</code> from a {@link GregorianCalendar}.</p>
+     * Create an {@code XMLGregorianCalendar} from a {@link GregorianCalendar}.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
@@ -764,30 +768,30 @@
      *       </th>
      *     </tr>
      *     <tr>
-     *        <th><code>java.util.GregorianCalendar</code> field</th>
-     *        <th><code>javax.xml.datatype.XMLGregorianCalendar</code> field</th>
+     *        <th>{@code java.util.GregorianCalendar} field</th>
+     *        <th>{@code javax.xml.datatype.XMLGregorianCalendar} field</th>
      *     </tr>
      *   </thead>
      *   <tbody>
      *     <tr>
-     *       <td><code>ERA == GregorianCalendar.BC ? -YEAR : YEAR</code></td>
+     *       <td>{@code ERA == GregorianCalendar.BC ? -YEAR : YEAR}</td>
      *       <td>{@link XMLGregorianCalendar#setYear(int year)}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>MONTH + 1</code></td>
+     *       <td>{@code MONTH + 1}</td>
      *       <td>{@link XMLGregorianCalendar#setMonth(int month)}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>DAY_OF_MONTH</code></td>
+     *       <td>{@code DAY_OF_MONTH}</td>
      *       <td>{@link XMLGregorianCalendar#setDay(int day)}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND</code></td>
+     *       <td>{@code HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND}</td>
      *       <td>{@link XMLGregorianCalendar#setTime(int hour, int minute, int second, BigDecimal fractional)}</td>
      *     </tr>
      *     <tr>
      *       <td>
-     *         <code>(ZONE_OFFSET + DST_OFFSET) / (60*1000)</code><br/>
+     *         {@code (ZONE_OFFSET + DST_OFFSET) / (60*1000)}<br>
      *         <em>(in minutes)</em>
      *       </td>
      *       <td>{@link XMLGregorianCalendar#setTimezone(int offset)}<sup><em>*</em></sup>
@@ -796,49 +800,50 @@
      *   </tbody>
      * </table>
      * <p><em>*</em>conversion loss of information. It is not possible to represent
-     * a <code>java.util.GregorianCalendar</code> daylight savings timezone id in the
-     * XML Schema 1.0 date/time datatype representation.</p>
+     * a {@code java.util.GregorianCalendar} daylight savings timezone id in the
+     * XML Schema 1.0 date/time datatype representation.
      *
-     * <p>To compute the return value's <code>TimeZone</code> field,
+     * <p>To compute the return value's {@code TimeZone} field,
      * <ul>
-     * <li>when <code>this.getTimezone() != FIELD_UNDEFINED</code>,
-     * create a <code>java.util.TimeZone</code> with a custom timezone id
-     * using the <code>this.getTimezone()</code>.</li>
-     * <li>else use the <code>GregorianCalendar</code> default timezone value
+     * <li>when {@code this.getTimezone() != FIELD_UNDEFINED},
+     * create a {@code java.util.TimeZone} with a custom timezone id
+     * using the {@code this.getTimezone()}.</li>
+     * <li>else use the {@code GregorianCalendar} default timezone value
      * for the host is defined as specified by
-     * <code>java.util.TimeZone.getDefault()</code>.</li></p>
-     *
-     * @param cal <code>java.util.GregorianCalendar</code> used to create <code>XMLGregorianCalendar</code>
+     * {@code java.util.TimeZone.getDefault()}.</li>
+     * </ul>
      *
-     * @return <code>XMLGregorianCalendar</code> created from <code>java.util.GregorianCalendar</code>
+     * @param cal {@code java.util.GregorianCalendar} used to create {@code XMLGregorianCalendar}
      *
-     * @throws NullPointerException If <code>cal</code> is <code>null</code>.
+     * @return {@code XMLGregorianCalendar} created from {@code java.util.GregorianCalendar}
+     *
+     * @throws NullPointerException If {@code cal} is {@code null}.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar(final GregorianCalendar cal);
 
     /**
-     * <p>Constructor allowing for complete value spaces allowed by
+     * Constructor allowing for complete value spaces allowed by
      * W3C XML Schema 1.0 recommendation for xsd:dateTime and related
-     * builtin datatypes. Note that <code>year</code> parameter supports
+     * builtin datatypes. Note that {@code year} parameter supports
      * arbitrarily large numbers and fractionalSecond has infinite
-     * precision.</p>
+     * precision.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param year of <code>XMLGregorianCalendar</code> to be created.
-     * @param month of <code>XMLGregorianCalendar</code> to be created.
-     * @param day of <code>XMLGregorianCalendar</code> to be created.
-     * @param hour of <code>XMLGregorianCalendar</code> to be created.
-     * @param minute of <code>XMLGregorianCalendar</code> to be created.
-     * @param second of <code>XMLGregorianCalendar</code> to be created.
-     * @param fractionalSecond of <code>XMLGregorianCalendar</code> to be created.
-     * @param timezone of <code>XMLGregorianCalendar</code> to be created.
+     * @param year of {@code XMLGregorianCalendar} to be created.
+     * @param month of {@code XMLGregorianCalendar} to be created.
+     * @param day of {@code XMLGregorianCalendar} to be created.
+     * @param hour of {@code XMLGregorianCalendar} to be created.
+     * @param minute of {@code XMLGregorianCalendar} to be created.
+     * @param second of {@code XMLGregorianCalendar} to be created.
+     * @param fractionalSecond of {@code XMLGregorianCalendar} to be created.
+     * @param timezone of {@code XMLGregorianCalendar} to be created.
      *
-     * @return <code>XMLGregorianCalendar</code> created from specified values.
+     * @return {@code XMLGregorianCalendar} created from specified values.
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar(
@@ -852,29 +857,29 @@
             final int timezone);
 
     /**
-     * <p>Constructor of value spaces that a
-     * <code>java.util.GregorianCalendar</code> instance would need to convert to an
-     * <code>XMLGregorianCalendar</code> instance.</p>
+     * Constructor of value spaces that a
+     * {@code java.util.GregorianCalendar} instance would need to convert to an
+     * {@code XMLGregorianCalendar} instance.
      *
-     * <p><code>XMLGregorianCalendar eon</code> and
-     * <code>fractionalSecond</code> are set to <code>null</code></p>
+     * <p>{@code XMLGregorianCalendar eon} and
+     * {@code fractionalSecond} are set to {@code null}
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param year of <code>XMLGregorianCalendar</code> to be created.
-     * @param month of <code>XMLGregorianCalendar</code> to be created.
-     * @param day of <code>XMLGregorianCalendar</code> to be created.
-     * @param hour of <code>XMLGregorianCalendar</code> to be created.
-     * @param minute of <code>XMLGregorianCalendar</code> to be created.
-     * @param second of <code>XMLGregorianCalendar</code> to be created.
-     * @param millisecond of <code>XMLGregorianCalendar</code> to be created.
-     * @param timezone of <code>XMLGregorianCalendar</code> to be created.
+     * @param year of {@code XMLGregorianCalendar} to be created.
+     * @param month of {@code XMLGregorianCalendar} to be created.
+     * @param day of {@code XMLGregorianCalendar} to be created.
+     * @param hour of {@code XMLGregorianCalendar} to be created.
+     * @param minute of {@code XMLGregorianCalendar} to be created.
+     * @param second of {@code XMLGregorianCalendar} to be created.
+     * @param millisecond of {@code XMLGregorianCalendar} to be created.
+     * @param timezone of {@code XMLGregorianCalendar} to be created.
      *
-     * @return <code>XMLGregorianCalendar</code> created from specified values.
+     * @return {@code XMLGregorianCalendar} created from specified values.
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendar(
@@ -918,26 +923,26 @@
     }
 
     /**
-     * <p>Create a Java representation of XML Schema builtin datatype <code>date</code> or <code>g*</code>.</p>
+     * Create a Java representation of XML Schema builtin datatype {@code date} or {@code g*}.
      *
-     * <p>For example, an instance of <code>gYear</code> can be created invoking this factory
-     * with <code>month</code> and <code>day</code> parameters set to
-     * {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>For example, an instance of {@code gYear} can be created invoking this factory
+     * with {@code month} and {@code day} parameters set to
+     * {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param year of <code>XMLGregorianCalendar</code> to be created.
-     * @param month of <code>XMLGregorianCalendar</code> to be created.
-     * @param day of <code>XMLGregorianCalendar</code> to be created.
+     * @param year of {@code XMLGregorianCalendar} to be created.
+     * @param month of {@code XMLGregorianCalendar} to be created.
+     * @param day of {@code XMLGregorianCalendar} to be created.
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendarDate(
@@ -958,20 +963,20 @@
             }
 
     /**
-     * <p>Create a Java instance of XML Schema builtin datatype <code>time</code>.</p>
+     * Create a Java instance of XML Schema builtin datatype {@code time}.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
      * @param hours number of hours
      * @param minutes number of minutes
      * @param seconds number of seconds
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
@@ -994,24 +999,24 @@
     }
 
     /**
-     * <p>Create a Java instance of XML Schema builtin datatype time.</p>
+     * Create a Java instance of XML Schema builtin datatype time.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
      * @param hours number of hours
      * @param minutes number of minutes
      * @param seconds number of seconds
-     * @param fractionalSecond value of <code>null</code> indicates that this optional field is not set.
+     * @param fractionalSecond value of {@code null} indicates that this optional field is not set.
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendarTime(
@@ -1033,9 +1038,9 @@
             }
 
     /**
-     * <p>Create a Java instance of XML Schema builtin datatype time.</p>
+     * Create a Java instance of XML Schema builtin datatype time.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
      * @param hours number of hours
      * @param minutes number of minutes
@@ -1043,13 +1048,13 @@
      * @param milliseconds number of milliseconds
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendarTime(
--- a/jaxp/src/java.xml/share/classes/javax/xml/datatype/Duration.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/Duration.java	Mon Apr 27 09:17:39 2015 -0700
@@ -35,37 +35,37 @@
 
 /**
  * <p>Immutable representation of a time span as defined in
- * the W3C XML Schema 1.0 specification.</p>
+ * the W3C XML Schema 1.0 specification.
  *
  * <p>A Duration object represents a period of Gregorian time,
  * which consists of six fields (years, months, days, hours,
- * minutes, and seconds) plus a sign (+/-) field.</p>
+ * minutes, and seconds) plus a sign (+/-) field.
  *
- * <p>The first five fields have non-negative (>=0) integers or null
+ * <p>The first five fields have non-negative ({@literal >=}0) integers or null
  * (which represents that the field is not set),
  * and the seconds field has a non-negative decimal or null.
- * A negative sign indicates a negative duration.</p>
+ * A negative sign indicates a negative duration.
  *
  * <p>This class provides a number of methods that make it easy
  * to use for the duration datatype of XML Schema 1.0 with
- * the errata.</p>
+ * the errata.
  *
  * <h2>Order relationship</h2>
  * <p>Duration objects only have partial order, where two values A and B
- * maybe either:</p>
+ * maybe either:
  * <ol>
- *  <li>A&lt;B (A is shorter than B)
- *  <li>A&gt;B (A is longer than B)
+ *  <li>A{@literal <}B (A is shorter than B)
+ *  <li>A{@literal >}B (A is longer than B)
  *  <li>A==B   (A and B are of the same duration)
- *  <li>A&lt;>B (Comparison between A and B is indeterminate)
+ *  <li>A{@literal <>}B (Comparison between A and B is indeterminate)
  * </ol>
  *
  * <p>For example, 30 days cannot be meaningfully compared to one month.
  * The {@link #compare(Duration duration)} method implements this
- * relationship.</p>
+ * relationship.
  *
  * <p>See the {@link #isLongerThan(Duration)} method for details about
- * the order relationship among <code>Duration</code> objects.</p>
+ * the order relationship among {@code Duration} objects.
  *
  * <h2>Operations over Duration</h2>
  * <p>This class provides a set of basic arithmetic operations, such
@@ -73,20 +73,20 @@
  * Because durations don't have total order, an operation could
  * fail for some combinations of operations. For example, you cannot
  * subtract 15 days from 1 month. See the javadoc of those methods
- * for detailed conditions where this could happen.</p>
+ * for detailed conditions where this could happen.
  *
  * <p>Also, division of a duration by a number is not provided because
- * the <code>Duration</code> class can only deal with finite precision
- * decimal numbers. For example, one cannot represent 1 sec divided by 3.</p>
+ * the {@code Duration} class can only deal with finite precision
+ * decimal numbers. For example, one cannot represent 1 sec divided by 3.
  *
  * <p>However, you could substitute a division by 3 with multiplying
- * by numbers such as 0.3 or 0.333.</p>
+ * by numbers such as 0.3 or 0.333.
  *
  * <h2>Range of allowed values</h2>
  * <p>
- * Because some operations of <code>Duration</code> rely on {@link Calendar}
+ * Because some operations of {@code Duration} rely on {@link Calendar}
  * even though {@link Duration} can hold very large or very small values,
- * some of the methods may not work correctly on such <code>Duration</code>s.
+ * some of the methods may not work correctly on such {@code Duration}s.
  * The impacted methods document their dependency on {@link Calendar}.
  *
  * @author <a href="mailto:Joseph.Fialli@Sun.COM">Joseph Fialli</a>
@@ -99,7 +99,7 @@
 public abstract class Duration {
 
     /**
-     * <p>Debugging <code>true</code> or <code>false</code>.</p>
+     * Debugging {@code true} or {@code false}.
      */
     private static final boolean DEBUG = true;
 
@@ -107,24 +107,24 @@
      * Default no-arg constructor.
      *
      * <p>Note: Always use the {@link DatatypeFactory} to
-     * construct an instance of <code>Duration</code>.
+     * construct an instance of {@code Duration}.
      * The constructor on this class cannot be guaranteed to
      * produce an object with a consistent state and may be
-     * removed in the future.</p>
+     * removed in the future.
      */
     public Duration() {
     }
 
     /**
-     * <p>Return the name of the XML Schema date/time type that this instance
+     * Return the name of the XML Schema date/time type that this instance
      * maps to. Type is computed based on fields that are set,
-     * i.e. {@link #isSet(DatatypeConstants.Field field)} == <code>true</code>.</p>
+     * i.e. {@link #isSet(DatatypeConstants.Field field)} == {@code true}.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="7">
-     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br/>
+     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br>
      *         <i>(timezone is optional for all date/time datatypes)</i>
      *       </th>
      *     </tr>
@@ -238,16 +238,16 @@
     public abstract int getSign();
 
     /**
-     * <p>Get the years value of this <code>Duration</code> as an <code>int</code> or <code>0</code> if not present.</p>
+     * Get the years value of this {@code Duration} as an {@code int} or {@code 0} if not present.
      *
-     * <p><code>getYears()</code> is a convenience method for
-     * {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)}.</p>
+     * <p>{@code getYears()} is a convenience method for
+     * {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)}.
      *
-     * <p>As the return value is an <code>int</code>, an incorrect value will be returned for <code>Duration</code>s
-     * with years that go beyond the range of an <code>int</code>.
-     * Use {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)} to avoid possible loss of precision.</p>
+     * <p>As the return value is an {@code int}, an incorrect value will be returned for {@code Duration}s
+     * with years that go beyond the range of an {@code int}.
+     * Use {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)} to avoid possible loss of precision.
      *
-     * @return If the years field is present, return its value as an <code>int</code>, else return <code>0</code>.
+     * @return If the years field is present, return its value as an {@code int}, else return {@code 0}.
      */
     public int getYears() {
         return getField(DatatypeConstants.YEARS).intValue();
@@ -260,7 +260,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the MONTHS field.
      *
-     * @return Months of this <code>Duration</code>.
+     * @return Months of this {@code Duration}.
      */
     public int getMonths() {
         return getField(DatatypeConstants.MONTHS).intValue();
@@ -273,7 +273,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the DAYS field.
      *
-     * @return Days of this <code>Duration</code>.
+     * @return Days of this {@code Duration}.
      */
     public int getDays() {
         return getField(DatatypeConstants.DAYS).intValue();
@@ -286,7 +286,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the HOURS field.
      *
-     * @return Hours of this <code>Duration</code>.
+     * @return Hours of this {@code Duration}.
      *
      */
     public int getHours() {
@@ -300,7 +300,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the MINUTES field.
      *
-     * @return Minutes of this <code>Duration</code>.
+     * @return Minutes of this {@code Duration}.
      *
      */
     public int getMinutes() {
@@ -323,32 +323,32 @@
     }
 
     /**
-     * <p>Returns the length of the duration in milli-seconds.</p>
+     * Returns the length of the duration in milli-seconds.
      *
      * <p>If the seconds field carries more digits than milli-second order,
      * those will be simply discarded (or in other words, rounded to zero.)
-     * For example, for any Calendar value <code>x</code>,</p>
+     * For example, for any Calendar value {@code x},
      * <pre>
-     * <code>new Duration("PT10.00099S").getTimeInMills(x) == 10000</code>.
-     * <code>new Duration("-PT10.00099S").getTimeInMills(x) == -10000</code>.
+     * {@code new Duration("PT10.00099S").getTimeInMills(x) == 10000}
+     * {@code new Duration("-PT10.00099S").getTimeInMills(x) == -10000}
      * </pre>
      *
      * <p>
      * Note that this method uses the {@link #addTo(Calendar)} method,
-     * which may work incorrectly with <code>Duration</code> objects with
+     * which may work incorrectly with {@code Duration} objects with
      * very large values in its fields. See the {@link #addTo(Calendar)}
      * method for details.
      *
      * @param startInstant
-     *      The length of a month/year varies. The <code>startInstant</code> is
+     *      The length of a month/year varies. The {@code startInstant} is
      *      used to disambiguate this variance. Specifically, this method
-     *      returns the difference between <code>startInstant</code> and
-     *      <code>startInstant+duration</code>
+     *      returns the difference between {@code startInstant} and
+     *      {@code startInstant+duration}
      *
-     * @return milliseconds between <code>startInstant</code> and
-     *   <code>startInstant</code> plus this <code>Duration</code>
+     * @return milliseconds between {@code startInstant} and
+     *   {@code startInstant} plus this {@code Duration}
      *
-     * @throws NullPointerException if <code>startInstant</code> parameter
+     * @throws NullPointerException if {@code startInstant} parameter
      * is null.
      *
      */
@@ -360,33 +360,33 @@
     }
 
     /**
-     * <p>Returns the length of the duration in milli-seconds.</p>
+     * Returns the length of the duration in milli-seconds.
      *
      * <p>If the seconds field carries more digits than milli-second order,
      * those will be simply discarded (or in other words, rounded to zero.)
-     * For example, for any <code>Date</code> value <code>x</code>,</p>
+     * For example, for any {@code Date} value {@code x},
      * <pre>
-     * <code>new Duration("PT10.00099S").getTimeInMills(x) == 10000</code>.
-     * <code>new Duration("-PT10.00099S").getTimeInMills(x) == -10000</code>.
+     * {@code new Duration("PT10.00099S").getTimeInMills(x) == 10000}
+     * {@code new Duration("-PT10.00099S").getTimeInMills(x) == -10000}
      * </pre>
      *
      * <p>
      * Note that this method uses the {@link #addTo(Date)} method,
-     * which may work incorrectly with <code>Duration</code> objects with
+     * which may work incorrectly with {@code Duration} objects with
      * very large values in its fields. See the {@link #addTo(Date)}
      * method for details.
      *
      * @param startInstant
-     *      The length of a month/year varies. The <code>startInstant</code> is
+     *      The length of a month/year varies. The {@code startInstant} is
      *      used to disambiguate this variance. Specifically, this method
-     *      returns the difference between <code>startInstant</code> and
-     *      <code>startInstant+duration</code>.
+     *      returns the difference between {@code startInstant} and
+     *      {@code startInstant+duration}.
      *
      * @throws NullPointerException
      *      If the startInstant parameter is null.
      *
-     * @return milliseconds between <code>startInstant</code> and
-     *   <code>startInstant</code> plus this <code>Duration</code>
+     * @return milliseconds between {@code startInstant} and
+     *   {@code startInstant} plus this {@code Duration}
      *
      * @see #getTimeInMillis(Calendar)
      */
@@ -418,7 +418,7 @@
      *      returns a {@link java.math.BigInteger} object. For SECONDS, this
      *      method returns a {@link java.math.BigDecimal}.
      *
-     * @throws NullPointerException If the <code>field</code> is <code>null</code>.
+     * @throws NullPointerException If the {@code field} is {@code null}.
      */
     public abstract Number getField(final DatatypeConstants.Field field);
 
@@ -440,9 +440,9 @@
     public abstract boolean isSet(final DatatypeConstants.Field field);
 
     /**
-     * <p>Computes a new duration whose value is <code>this+rhs</code>.</p>
+     * Computes a new duration whose value is {@code this+rhs}.
      *
-     * <p>For example,</p>
+     * <p>For example,
      * <pre>
      * "1 day" + "-3 days" = "-2 days"
      * "1 year" + "1 day" = "1 year and 1 day"
@@ -453,28 +453,28 @@
      *
      * <p>Since there's no way to meaningfully subtract 1 day from 1 month,
      * there are cases where the operation fails in
-     * {@link IllegalStateException}.</p>
+     * {@link IllegalStateException}.
      *
      * <p>
-     * Formally, the computation is defined as follows.</p>
+     * Formally, the computation is defined as follows.
      * <p>
-     * Firstly, we can assume that two <code>Duration</code>s to be added
+     * Firstly, we can assume that two {@code Duration}s to be added
      * are both positive without losing generality (i.e.,
-     * <code>(-X)+Y=Y-X</code>, <code>X+(-Y)=X-Y</code>,
-     * <code>(-X)+(-Y)=-(X+Y)</code>)
+     * {@code (-X)+Y=Y-X}, {@code X+(-Y)=X-Y},
+     * {@code (-X)+(-Y)=-(X+Y)})
      *
      * <p>
-     * Addition of two positive <code>Duration</code>s are simply defined as
+     * Addition of two positive {@code Duration}s are simply defined as
      * field by field addition where missing fields are treated as 0.
      * <p>
-     * A field of the resulting <code>Duration</code> will be unset if and
-     * only if respective fields of two input <code>Duration</code>s are unset.
+     * A field of the resulting {@code Duration} will be unset if and
+     * only if respective fields of two input {@code Duration}s are unset.
      * <p>
-     * Note that <code>lhs.add(rhs)</code> will be always successful if
-     * <code>lhs.signum()*rhs.signum()!=-1</code> or both of them are
-     * normalized.</p>
+     * Note that {@code lhs.add(rhs)} will be always successful if
+     * {@code lhs.signum()*rhs.signum()!=-1} or both of them are
+     * normalized.
      *
-     * @param rhs <code>Duration</code> to add to this <code>Duration</code>
+     * @param rhs {@code Duration} to add to this {@code Duration}
      *
      * @return
      *      non-null valid Duration object.
@@ -501,25 +501,22 @@
      * uses int to hold values, there are cases where this method
      * won't work correctly (for example if values of fields
      * exceed the range of int.)
-     * </p>
      *
      * <p>
      * Also, since this duration class is a Gregorian duration, this
      * method will not work correctly if the given {@link Calendar}
      * object is based on some other calendar systems.
-     * </p>
      *
      * <p>
-     * Any fractional parts of this <code>Duration</code> object
+     * Any fractional parts of this {@code Duration} object
      * beyond milliseconds will be simply ignored. For example, if
      * this duration is "P1.23456S", then 1 is added to SECONDS,
      * 234 is added to MILLISECONDS, and the rest will be unused.
-     * </p>
      *
      * <p>
      * Note that because {@link Calendar#add(int, int)} is using
-     * <code>int</code>, <code>Duration</code> with values beyond the
-     * range of <code>int</code> in its fields
+     * {@code int}, {@code Duration} with values beyond the
+     * range of {@code int} in its fields
      * will cause overflow/underflow to the given {@link Calendar}.
      * {@link XMLGregorianCalendar#add(Duration)} provides the same
      * basic operation as this method while avoiding
@@ -571,9 +568,9 @@
     }
 
     /**
-     * <p>Computes a new duration whose value is <code>this-rhs</code>.</p>
+     * Computes a new duration whose value is {@code this-rhs}.
      *
-     * <p>For example:</p>
+     * <p>For example:
      * <pre>
      * "1 day" - "-3 days" = "4 days"
      * "1 year" - "1 day" = IllegalStateException
@@ -583,31 +580,31 @@
      * </pre>
      *
      * <p>Since there's no way to meaningfully subtract 1 day from 1 month,
-     * there are cases where the operation fails in {@link IllegalStateException}.</p>
+     * there are cases where the operation fails in {@link IllegalStateException}.
      *
      * <p>Formally the computation is defined as follows.
-     * First, we can assume that two <code>Duration</code>s are both positive
+     * First, we can assume that two {@code Duration}s are both positive
      * without losing generality.  (i.e.,
-     * <code>(-X)-Y=-(X+Y)</code>, <code>X-(-Y)=X+Y</code>,
-     * <code>(-X)-(-Y)=-(X-Y)</code>)</p>
+     * {@code (-X)-Y=-(X+Y)}, {@code X-(-Y)=X+Y},
+     * {@code (-X)-(-Y)=-(X-Y)})
      *
      * <p>Then two durations are subtracted field by field.
-     * If the sign of any non-zero field <code>F</code> is different from
+     * If the sign of any non-zero field {@code F} is different from
      * the sign of the most significant field,
-     * 1 (if <code>F</code> is negative) or -1 (otherwise)
-     * will be borrowed from the next bigger unit of <code>F</code>.</p>
+     * 1 (if {@code F} is negative) or -1 (otherwise)
+     * will be borrowed from the next bigger unit of {@code F}.
      *
      * <p>This process is repeated until all the non-zero fields have
-     * the same sign.</p>
+     * the same sign.
      *
      * <p>If a borrow occurs in the days field (in other words, if
      * the computation needs to borrow 1 or -1 month to compensate
      * days), then the computation fails by throwing an
-     * {@link IllegalStateException}.</p>
+     * {@link IllegalStateException}.
      *
-     * @param rhs <code>Duration</code> to subtract from this <code>Duration</code>.
+     * @param rhs {@code Duration} to subtract from this {@code Duration}.
      *
-     * @return New <code>Duration</code> created from subtracting <code>rhs</code> from this <code>Duration</code>.
+     * @return New {@code Duration} created from subtracting {@code rhs} from this {@code Duration}.
      *
      * @throws IllegalStateException
      *      If two durations cannot be meaningfully subtracted. For
@@ -624,18 +621,18 @@
     }
 
     /**
-     * <p>Computes a new duration whose value is <code>factor</code> times
-     * longer than the value of this duration.</p>
+     * Computes a new duration whose value is {@code factor} times
+     * longer than the value of this duration.
      *
      * <p>This method is provided for the convenience.
-     * It is functionally equivalent to the following code:</p>
+     * It is functionally equivalent to the following code:
      * <pre>
      * multiply(new BigDecimal(String.valueOf(factor)))
      * </pre>
      *
-     * @param factor Factor times longer of new <code>Duration</code> to create.
+     * @param factor Factor times longer of new {@code Duration} to create.
      *
-     * @return New <code>Duration</code> that is <code>factor</code>times longer than this <code>Duration</code>.
+     * @return New {@code Duration} that is {@code factor}times longer than this {@code Duration}.
      *
      * @see #multiply(BigDecimal)
      */
@@ -644,7 +641,7 @@
     }
 
     /**
-     * Computes a new duration whose value is <code>factor</code> times
+     * Computes a new duration whose value is {@code factor} times
      * longer than the value of this duration.
      *
      * <p>
@@ -656,7 +653,7 @@
      * </pre>
      *
      * <p>
-     * Since the <code>Duration</code> class is immutable, this method
+     * Since the {@code Duration} class is immutable, this method
      * doesn't change the value of this object. It simply computes
      * a new Duration object and returns it.
      *
@@ -671,7 +668,7 @@
      * When fractions of month cannot be meaningfully carried down
      * to days, or year to months, this will cause an
      * {@link IllegalStateException} to be thrown.
-     * For example if you multiple one month by 0.5.</p>
+     * For example if you multiple one month by 0.5.
      *
      * <p>
      * To avoid {@link IllegalStateException}, use
@@ -681,39 +678,39 @@
      * @param factor to multiply by
      *
      * @return
-     *      returns a non-null valid <code>Duration</code> object
+     *      returns a non-null valid {@code Duration} object
      *
      * @throws IllegalStateException if operation produces fraction in
      * the months field.
      *
-     * @throws NullPointerException if the <code>factor</code> parameter is
-     * <code>null</code>.
+     * @throws NullPointerException if the {@code factor} parameter is
+     * {@code null}.
      *
      */
     public abstract Duration multiply(final BigDecimal factor);
 
     /**
-     * Returns a new <code>Duration</code> object whose
-     * value is <code>-this</code>.
+     * Returns a new {@code Duration} object whose
+     * value is {@code -this}.
      *
      * <p>
-     * Since the <code>Duration</code> class is immutable, this method
+     * Since the {@code Duration} class is immutable, this method
      * doesn't change the value of this object. It simply computes
      * a new Duration object and returns it.
      *
      * @return
-     *      always return a non-null valid <code>Duration</code> object.
+     *      always return a non-null valid {@code Duration} object.
      */
     public abstract Duration negate();
 
     /**
-     * <p>Converts the years and months fields into the days field
-     * by using a specific time instant as the reference point.</p>
+     * Converts the years and months fields into the days field
+     * by using a specific time instant as the reference point.
      *
      * <p>For example, duration of one month normalizes to 31 days
-     * given the start time instance "July 8th 2003, 17:40:32".</p>
+     * given the start time instance "July 8th 2003, 17:40:32".
      *
-     * <p>Formally, the computation is done as follows:</p>
+     * <p>Formally, the computation is done as follows:
      * <ol>
      *  <li>the given Calendar object is cloned</li>
      *  <li>the years, months and days fields will be added to the {@link Calendar} object
@@ -725,37 +722,37 @@
      *      Duration object.</li>
      * </ol>
      *
-     * <p>Note that since the Calendar class uses <code>int</code> to
+     * <p>Note that since the Calendar class uses {@code int} to
      * hold the value of year and month, this method may produce
      * an unexpected result if this duration object holds
-     * a very large value in the years or months fields.</p>
+     * a very large value in the years or months fields.
      *
-     * @param startTimeInstant <code>Calendar</code> reference point.
+     * @param startTimeInstant {@code Calendar} reference point.
      *
-     * @return <code>Duration</code> of years and months of this <code>Duration</code> as days.
+     * @return {@code Duration} of years and months of this {@code Duration} as days.
      *
      * @throws NullPointerException If the startTimeInstant parameter is null.
      */
     public abstract Duration normalizeWith(final Calendar startTimeInstant);
 
     /**
-     * <p>Partial order relation comparison with this <code>Duration</code> instance.</p>
+     * Partial order relation comparison with this {@code Duration} instance.
      *
      * <p>Comparison result must be in accordance with
      * <a href="http://www.w3.org/TR/xmlschema-2/#duration-order">W3C XML Schema 1.0 Part 2, Section 3.2.7.6.2,
-     * <i>Order relation on duration</i></a>.</p>
+     * <i>Order relation on duration</i></a>.
      *
-     * <p>Return:</p>
+     * <p>Return:
      * <ul>
-     *   <li>{@link DatatypeConstants#LESSER} if this <code>Duration</code> is shorter than <code>duration</code> parameter</li>
-     *   <li>{@link DatatypeConstants#EQUAL} if this <code>Duration</code> is equal to <code>duration</code> parameter</li>
-     *   <li>{@link DatatypeConstants#GREATER} if this <code>Duration</code> is longer than <code>duration</code> parameter</li>
+     *   <li>{@link DatatypeConstants#LESSER} if this {@code Duration} is shorter than {@code duration} parameter</li>
+     *   <li>{@link DatatypeConstants#EQUAL} if this {@code Duration} is equal to {@code duration} parameter</li>
+     *   <li>{@link DatatypeConstants#GREATER} if this {@code Duration} is longer than {@code duration} parameter</li>
      *   <li>{@link DatatypeConstants#INDETERMINATE} if a conclusive partial order relation cannot be determined</li>
      * </ul>
      *
      * @param duration to compare
      *
-     * @return the relationship between <code>this</code> <code>Duration</code>and <code>duration</code> parameter as
+     * @return the relationship between {@code this Duration} and {@code duration} parameter as
      *   {@link DatatypeConstants#LESSER}, {@link DatatypeConstants#EQUAL}, {@link DatatypeConstants#GREATER}
      *   or {@link DatatypeConstants#INDETERMINATE}.
      *
@@ -763,7 +760,7 @@
      *   cannot reasonably process the request, e.g. W3C XML Schema allows for
      *   arbitrarily large/small/precise values, the request may be beyond the
      *   implementations capability.
-     * @throws NullPointerException if <code>duration</code> is <code>null</code>.
+     * @throws NullPointerException if {@code duration} is {@code null}.
      *
      * @see #isShorterThan(Duration)
      * @see #isLongerThan(Duration)
@@ -771,23 +768,23 @@
     public abstract int compare(final Duration duration);
 
     /**
-     * <p>Checks if this duration object is strictly longer than
-     * another <code>Duration</code> object.</p>
+     * Checks if this duration object is strictly longer than
+     * another {@code Duration} object.
      *
-     * <p>Duration X is "longer" than Y if and only if X>Y
+     * <p>Duration X is "longer" than Y if and only if X {@literal >} Y
      * as defined in the section 3.2.6.2 of the XML Schema 1.0
-     * specification.</p>
+     * specification.
      *
-     * <p>For example, "P1D" (one day) > "PT12H" (12 hours) and
-     * "P2Y" (two years) > "P23M" (23 months).</p>
+     * <p>For example, "P1D" (one day) {@literal >} "PT12H" (12 hours) and
+     * "P2Y" (two years) {@literal >} "P23M" (23 months).
      *
-     * @param duration <code>Duration</code> to test this <code>Duration</code> against.
+     * @param duration {@code Duration} to test this {@code Duration} against.
      *
      * @throws UnsupportedOperationException If the underlying implementation
      *   cannot reasonably process the request, e.g. W3C XML Schema allows for
      *   arbitrarily large/small/precise values, the request may be beyond the
      *   implementations capability.
-     * @throws NullPointerException If <code>duration</code> is null.
+     * @throws NullPointerException If {@code duration} is null.
      *
      * @return
      *      true if the duration represented by this object
@@ -801,19 +798,19 @@
     }
 
     /**
-     * <p>Checks if this duration object is strictly shorter than
-     * another <code>Duration</code> object.</p>
+     * Checks if this duration object is strictly shorter than
+     * another {@code Duration} object.
      *
-     * @param duration <code>Duration</code> to test this <code>Duration</code> against.
+     * @param duration {@code Duration} to test this {@code Duration} against.
      *
-     * @return <code>true</code> if <code>duration</code> parameter is shorter than this <code>Duration</code>,
-     *   else <code>false</code>.
+     * @return {@code true} if {@code duration} parameter is shorter than this {@code Duration},
+     *   else {@code false}.
      *
      * @throws UnsupportedOperationException If the underlying implementation
      *   cannot reasonably process the request, e.g. W3C XML Schema allows for
      *   arbitrarily large/small/precise values, the request may be beyond the
      *   implementations capability.
-     * @throws NullPointerException if <code>duration</code> is null.
+     * @throws NullPointerException if {@code duration} is null.
      *
      * @see #isLongerThan(Duration duration)
      * @see #compare(Duration duration)
@@ -823,19 +820,19 @@
     }
 
     /**
-     * <p>Checks if this duration object has the same duration
-     * as another <code>Duration</code> object.</p>
+     * Checks if this duration object has the same duration
+     * as another {@code Duration} object.
      *
-     * <p>For example, "P1D" (1 day) is equal to "PT24H" (24 hours).</p>
+     * <p>For example, "P1D" (1 day) is equal to "PT24H" (24 hours).
      *
      * <p>Duration X is equal to Y if and only if time instant
      * t+X and t+Y are the same for all the test time instants
      * specified in the section 3.2.6.2 of the XML Schema 1.0
-     * specification.</p>
+     * specification.
      *
-     * <p>Note that there are cases where two <code>Duration</code>s are
+     * <p>Note that there are cases where two {@code Duration}s are
      * "incomparable" to each other, like one month and 30 days.
-     * For example,</p>
+     * For example,
      * <pre>
      * !new Duration("P1M").isShorterThan(new Duration("P30D"))
      * !new Duration("P1M").isLongerThan(new Duration("P30D"))
@@ -843,14 +840,14 @@
      * </pre>
      *
      * @param duration
-     *      The object to compare this <code>Duration</code> against.
+     *      The object to compare this {@code Duration} against.
      *
      * @return
-     *      <code>true</code> if this duration is the same length as
-     *         <code>duration</code>.
-     *      <code>false</code> if <code>duration</code> is <code>null</code>,
+     *      {@code true} if this duration is the same length as
+     *         {@code duration}.
+     *      {@code false} if {@code duration} is {@code null},
      *         is not a
-     *         <code>Duration</code> object,
+     *         {@code Duration} object,
      *         or its length is different from this duration.
      *
      * @throws UnsupportedOperationException If the underlying implementation
@@ -877,18 +874,19 @@
     public abstract int hashCode();
 
     /**
-     * <p>Returns a <code>String</code> representation of this <code>Duration</code> <code>Object</code>.</p>
+     * Returns a {@code String} representation of this {@code Duration Object}.
      *
-     * <p>The result is formatted according to the XML Schema 1.0 spec and can be always parsed back later into the
-     * equivalent <code>Duration</code> <code>Object</code> by {@link DatatypeFactory#newDuration(String  lexicalRepresentation)}.</p>
+     * <p>The result is formatted according to the XML Schema 1.0 spec
+     * and can be always parsed back later into the
+     * equivalent {@code Duration Object} by {@link DatatypeFactory#newDuration(String  lexicalRepresentation)}.
      *
-     * <p>Formally, the following holds for any <code>Duration</code>
-     * <code>Object</code> x:</p>
+     * <p>Formally, the following holds for any {@code Duration}
+     * {@code Object} x:
      * <pre>
      * new Duration(x.toString()).equals(x)
      * </pre>
      *
-     * @return A non-<code>null</code> valid <code>String</code> representation of this <code>Duration</code>.
+     * @return A non-{@code null} valid {@code String} representation of this {@code Duration}.
      */
     public String toString() {
 
@@ -934,14 +932,14 @@
     }
 
     /**
-     * <p>Turns {@link BigDecimal} to a string representation.</p>
+     * Turns {@link BigDecimal} to a string representation.
      *
      * <p>Due to a behavior change in the {@link BigDecimal#toString()}
-     * method in JDK1.5, this had to be implemented here.</p>
+     * method in JDK1.5, this had to be implemented here.
      *
-     * @param bd <code>BigDecimal</code> to format as a <code>String</code>
+     * @param bd {@code BigDecimal} to format as a {@code String}
      *
-     * @return  <code>String</code> representation of <code>BigDecimal</code>
+     * @return  {@code String} representation of {@code BigDecimal}
      */
     private String toString(BigDecimal bd) {
         String intString = bd.unscaledValue().toString();
@@ -972,15 +970,15 @@
 
 
     /**
-     * <p>Calls the {@link Calendar#getTimeInMillis} method.
+     * Calls the {@link Calendar#getTimeInMillis} method.
      * Prior to JDK1.4, this method was protected and therefore
-     * cannot be invoked directly.</p>
+     * cannot be invoked directly.
      *
-     * <p>TODO: In future, this should be replaced by <code>cal.getTimeInMillis()</code>.</p>
+     * <p>TODO: In future, this should be replaced by {@code cal.getTimeInMillis()}.
      *
-     * @param cal <code>Calendar</code> to get time in milliseconds.
+     * @param cal {@code Calendar} to get time in milliseconds.
      *
-     * @return Milliseconds of <code>cal</code>.
+     * @return Milliseconds of {@code cal}.
      */
     private static long getCalendarTimeInMillis(final Calendar cal) {
         return cal.getTime().getTime();
--- a/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java	Mon Apr 27 09:17:39 2015 -0700
@@ -43,17 +43,17 @@
  * {@link DatatypeConstants#GMONTH}, and
  * {@link DatatypeConstants#GDAY}
  * defined in the XML Namespace
- * <code>"http://www.w3.org/2001/XMLSchema"</code>.
+ * {@code "http://www.w3.org/2001/XMLSchema"}.
  * These datatypes are normatively defined in
- * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime">W3C XML Schema 1.0 Part 2, Section 3.2.7-14</a>.</p>
+ * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime">W3C XML Schema 1.0 Part 2, Section 3.2.7-14</a>.
  *
  * <p>The table below defines the mapping between XML Schema 1.0
  * date/time datatype fields and this class' fields. It also summarizes
  * the value constraints for the date and time fields defined in
  * <a href="http://www.w3.org/TR/xmlschema-2/#isoformats">W3C XML Schema 1.0 Part 2, Appendix D,
- * <i>ISO 8601 Date and Time Formats</i></a>.</p>
+ * <i>ISO 8601 Date and Time Formats</i></a>.
  *
- * <a name="datetimefieldmapping"/>
+ * <a name="datetimefieldmapping"></a>
  * <table border="2" rules="all" cellpadding="2">
  *   <thead>
  *     <tr>
@@ -64,22 +64,22 @@
  *   </thead>
  *   <tbody>
  *     <tr>
- *       <th>XML Schema 1.0<br/>
- *           datatype<br/>
+ *       <th>XML Schema 1.0<br>
+ *           datatype<br>
  *            field</th>
- *       <th>Related<br/>XMLGregorianCalendar<br/>Accessor(s)</th>
+ *       <th>Related<br>XMLGregorianCalendar<br>Accessor(s)</th>
  *       <th>Value Range</th>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-year"/>year</td>
- *       <td> {@link #getYear()} + {@link #getEon()} or<br/>
+ *       <td><a name="datetimefield-year">year</a></td>
+ *       <td> {@link #getYear()} + {@link #getEon()} or<br>
  *            {@link #getEonAndYear}
  *       </td>
- *       <td> <code>getYear()</code> is a value between -(10^9-1) to (10^9)-1
- *            or {@link DatatypeConstants#FIELD_UNDEFINED}.<br/>
- *            {@link #getEon()} is high order year value in billion of years.<br/>
- *            <code>getEon()</code> has values greater than or equal to (10^9) or less than or equal to -(10^9).
- *            A value of null indicates field is undefined.</br>
+ *       <td> {@code getYear()} is a value between -(10^9-1) to (10^9)-1
+ *            or {@link DatatypeConstants#FIELD_UNDEFINED}.<br>
+ *            {@link #getEon()} is high order year value in billion of years.<br>
+ *            {@code getEon()} has values greater than or equal to (10^9) or less than or equal to -(10^9).
+ *            A value of null indicates field is undefined.<br>
  *            Given that <a href="http://www.w3.org/2001/05/xmlschema-errata#e2-63">XML Schema 1.0 errata</a> states that the year zero
  *            will be a valid lexical value in a future version of XML Schema,
  *            this class allows the year field to be set to zero. Otherwise,
@@ -89,20 +89,20 @@
  *            </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-month"/>month</td>
+ *       <td><a name="datetimefield-month">month</a></td>
  *       <td> {@link #getMonth()} </td>
  *       <td> 1 to 12 or {@link DatatypeConstants#FIELD_UNDEFINED} </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-day"/>day</td>
+ *       <td><a name="datetimefield-day">day</a></td>
  *       <td> {@link #getDay()} </td>
- *       <td> Independent of month, max range is 1 to 31 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br/>
+ *       <td> Independent of month, max range is 1 to 31 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br>
  *            The normative value constraint stated relative to month
  *            field's value is in <a href="http://www.w3.org/TR/xmlschema-2/#isoformats">W3C XML Schema 1.0 Part 2, Appendix D</a>.
  *       </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-hour"/>hour</td>
+ *       <td><a name="datetimefield-hour">hour</a></td>
  *       <td>{@link #getHour()}</td>
  *       <td>
  *         0 to 23 or {@link DatatypeConstants#FIELD_UNDEFINED}.
@@ -114,28 +114,28 @@
  *       </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-minute"/>minute</td>
+ *       <td><a name="datetimefield-minute">minute</a></td>
  *       <td> {@link #getMinute()} </td>
  *       <td> 0 to 59 or {@link DatatypeConstants#FIELD_UNDEFINED} </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-second"/>second</td>
+ *       <td><a name="datetimefield-second">second</a></td>
  *       <td>
- *         {@link #getSecond()} + {@link #getMillisecond()}/1000 or<br/>
+ *         {@link #getSecond()} + {@link #getMillisecond()}/1000 or<br>
  *         {@link #getSecond()} + {@link #getFractionalSecond()}
  *       </td>
  *       <td>
- *         {@link #getSecond()} from 0 to 60 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br/>
- *         <i>(Note: 60 only allowable for leap second.)</i><br/>
+ *         {@link #getSecond()} from 0 to 60 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br>
+ *         <i>(Note: 60 only allowable for leap second.)</i><br>
  *         {@link #getFractionalSecond()} allows for infinite precision over the range from 0.0 to 1.0 when
- *         the {@link #getSecond()} is defined.<br/>
- *         <code>FractionalSecond</code> is optional and has a value of <code>null</code> when it is undefined.<br />
+ *         the {@link #getSecond()} is defined.<br>
+ *         {@code FractionalSecond} is optional and has a value of {@code null} when it is undefined.<br>
  *            {@link #getMillisecond()} is the convenience
  *            millisecond precision of value of {@link #getFractionalSecond()}.
  *       </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-timezone"/>timezone</td>
+ *       <td><a name="datetimefield-timezone">timezone</a></td>
  *       <td> {@link #getTimezone()} </td>
  *       <td> Number of minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.
  *         Value range from -14 hours (-14 * 60 minutes) to 14 hours (14 * 60 minutes).
@@ -145,14 +145,13 @@
  *  </table>
  *
  * <p>All maximum value space constraints listed for the fields in the table
- * above are checked by factory methods, @{link DatatypeFactory},
+ * above are checked by factory methods, {@link DatatypeFactory},
  * setter methods and parse methods of
- * this class. <code>IllegalArgumentException</code> is thrown when a
+ * this class. {@code IllegalArgumentException} is thrown when a
  * parameter's value is outside the value constraint for the field or
  * if the composite
  * values constitute an invalid XMLGregorianCalendar instance (for example, if
  * the 31st of June is specified).
- * </p>
  *
  * <p>The following operations are defined for this class:
  * <ul>
@@ -169,7 +168,6 @@
  *      W3C XML Schema 1.0 Part 2, Appendix E, <i>Adding durations to dateTimes</i></a>.
  *   </li>
  * </ul>
- * </p>
  *
  * @author <a href="mailto:Joseph.Fialli@Sun.com">Joseph Fialli</a>
  * @author <a href="mailto:Kohsuke.Kawaguchi@Sun.com">Kohsuke Kawaguchi</a>
@@ -187,26 +185,26 @@
          * Default no-arg constructor.
          *
          * <p>Note: Always use the {@link DatatypeFactory} to
-         * construct an instance of <code>XMLGregorianCalendar</code>.
+         * construct an instance of {@code XMLGregorianCalendar}.
          * The constructor on this class cannot be guaranteed to
          * produce an object with a consistent state and may be
-         * removed in the future.</p>
+         * removed in the future.
          */
          public XMLGregorianCalendar() {
          }
 
         /**
-         * <p>Unset all fields to undefined.</p>
+         * Unset all fields to undefined.
          *
          * <p>Set all int fields to {@link DatatypeConstants#FIELD_UNDEFINED} and reference fields
-         * to null.</p>
+         * to null.
          */
         public abstract void clear();
 
         /**
-         * <p>Reset this <code>XMLGregorianCalendar</code> to its original values.</p>
+         * Reset this {@code XMLGregorianCalendar} to its original values.
          *
-         * <p><code>XMLGregorianCalendar</code> is reset to the same values as when it was created with
+         * <p>{@code XMLGregorianCalendar} is reset to the same values as when it was created with
          * {@link DatatypeFactory#newXMLGregorianCalendar()},
          * {@link DatatypeFactory#newXMLGregorianCalendar(String lexicalRepresentation)},
          * {@link DatatypeFactory#newXMLGregorianCalendar(
@@ -250,83 +248,82 @@
          *   int seconds,
          *   int milliseconds,
          *   int timezone)}.
-         * </p>
          *
-         * <p><code>reset()</code> is designed to allow the reuse of existing <code>XMLGregorianCalendar</code>s
-         * thus saving resources associated with the creation of new <code>XMLGregorianCalendar</code>s.</p>
+         * <p>{@code reset()} is designed to allow the reuse of existing {@code XMLGregorianCalendar}s
+         * thus saving resources associated with the creation of new {@code XMLGregorianCalendar}s.
          */
         public abstract void reset();
 
     /**
-     * <p>Set low and high order component of XSD <code>dateTime</code> year field.</p>
+     * Set low and high order component of XSD {@code dateTime} year field.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of <code>null</code>.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@code null}.
      *
      * @param year value constraints summarized in <a href="#datetimefield-year">year field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>year</code> parameter is
+     * @throws IllegalArgumentException if {@code year} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setYear(BigInteger year);
 
     /**
-     * <p>Set year of XSD <code>dateTime</code> year field.</p>
+     * Set year of XSD {@code dateTime} year field.
      *
      * <p>Unset this field by invoking the setter with a parameter value of
-     * {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
-     * <p>Note: if the absolute value of the <code>year</code> parameter
+     * <p>Note: if the absolute value of the {@code year} parameter
      * is less than 10^9, the eon component of the XSD year field is set to
-     * <code>null</code> by this method.</p>
+     * {@code null} by this method.
      *
      * @param year value constraints are summarized in <a href="#datetimefield-year">year field of date/time field mapping table</a>.
-     *   If year is {@link DatatypeConstants#FIELD_UNDEFINED}, then eon is set to <code>null</code>.
+     *   If year is {@link DatatypeConstants#FIELD_UNDEFINED}, then eon is set to {@code null}.
      */
     public abstract void setYear(int year);
 
     /**
-     * <p>Set month.</p>
+     * Set month.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
      * @param month value constraints summarized in <a href="#datetimefield-month">month field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>month</code> parameter is
+     * @throws IllegalArgumentException if {@code month} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setMonth(int month);
 
     /**
-     * <p>Set days in month.</p>
+     * Set days in month.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
      * @param day value constraints summarized in <a href="#datetimefield-day">day field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>day</code> parameter is
+     * @throws IllegalArgumentException if {@code day} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setDay(int day);
 
     /**
-     * <p>Set the number of minutes in the timezone offset.</p>
+     * Set the number of minutes in the timezone offset.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
      * @param offset value constraints summarized in <a href="#datetimefield-timezone">
      *   timezone field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>offset</code> parameter is
+     * @throws IllegalArgumentException if {@code offset} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setTimezone(int offset);
 
     /**
-     * <p>Set time as one unit.</p>
+     * Set time as one unit.
      *
      * @param hour value constraints are summarized in
      * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
@@ -352,71 +349,71 @@
     }
 
         /**
-         * <p>Set hours.</p>
+         * Set hours.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param hour value constraints summarized in <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>hour</code> parameter is outside value constraints for the field as specified in
+         * @throws IllegalArgumentException if {@code hour} parameter is outside value constraints for the field as specified in
          *   <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setHour(int hour);
 
         /**
-         * <p>Set minutes.</p>
+         * Set minutes.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param minute value constraints summarized in <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>minute</code> parameter is outside value constraints for the field as specified in
+         * @throws IllegalArgumentException if {@code minute} parameter is outside value constraints for the field as specified in
          *   <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setMinute(int minute);
 
         /**
-         * <p>Set seconds.</p>
+         * Set seconds.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param second value constraints summarized in <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>second</code> parameter is outside value constraints for the field as specified in
+         * @throws IllegalArgumentException if {@code second} parameter is outside value constraints for the field as specified in
          *   <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setSecond(int second);
 
         /**
-         * <p>Set milliseconds.</p>
+         * Set milliseconds.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param millisecond value constraints summarized in
          *   <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>millisecond</code> parameter is outside value constraints for the field as specified
+         * @throws IllegalArgumentException if {@code millisecond} parameter is outside value constraints for the field as specified
          *   in <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setMillisecond(int millisecond);
 
         /**
-         * <p>Set fractional seconds.</p>
+         * Set fractional seconds.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of <code>null</code>.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@code null}.
          *
          * @param fractional value constraints summarized in
          *   <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>fractional</code> parameter is outside value constraints for the field as specified
+         * @throws IllegalArgumentException if {@code fractional} parameter is outside value constraints for the field as specified
          *   in <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setFractionalSecond(BigDecimal fractional);
 
 
     /**
-     * <p>Set time as one unit, including the optional infinite precision
-     * fractional seconds.</p>
+     * Set time as one unit, including the optional infinite precision
+     * fractional seconds.
      *
      * @param hour value constraints are summarized in
      * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
@@ -424,7 +421,7 @@
      * <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
      * @param second value constraints are summarized in
      * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
-     * @param fractional value of <code>null</code> indicates this optional
+     * @param fractional value of {@code null} indicates this optional
      *   field is not set.
      *
      * @throws IllegalArgumentException if any parameter is
@@ -445,7 +442,7 @@
 
 
     /**
-     * <p>Set time as one unit, including optional milliseconds.</p>
+     * Set time as one unit, including optional milliseconds.
      *
      * @param hour value constraints are summarized in
      * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
@@ -469,13 +466,13 @@
     }
 
         /**
-         * <p>Return high order component for XML Schema 1.0 dateTime datatype field for
-         * <code>year</code>.
-         * <code>null</code> if this optional part of the year field is not defined.</p>
+         * Return high order component for XML Schema 1.0 dateTime datatype field for
+         * {@code year}.
+         * {@code null} if this optional part of the year field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.</p>
-         * @return eon of this <code>XMLGregorianCalendar</code>. The value
+         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.
+         * @return eon of this {@code XMLGregorianCalendar}. The value
          * returned is an integer multiple of 10^9.
          *
          * @see #getYear()
@@ -484,13 +481,13 @@
         public abstract BigInteger getEon();
 
         /**
-         * <p>Return low order component for XML Schema 1.0 dateTime datatype field for
-         * <code>year</code> or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return low order component for XML Schema 1.0 dateTime datatype field for
+         * {@code year} or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.
          *
-         * @return year  of this <code>XMLGregorianCalendar</code>.
+         * @return year  of this {@code XMLGregorianCalendar}.
          *
          * @see #getEon()
          * @see #getEonAndYear()
@@ -498,16 +495,16 @@
         public abstract int getYear();
 
         /**
-         * <p>Return XML Schema 1.0 dateTime datatype field for
-         * <code>year</code>.</p>
+         * Return XML Schema 1.0 dateTime datatype field for
+         * {@code year}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.
          *
-         * @return sum of <code>eon</code> and <code>BigInteger.valueOf(year)</code>
-         * when both fields are defined. When only <code>year</code> is defined,
-         * return it. When both <code>eon</code> and <code>year</code> are not
-         * defined, return <code>null</code>.
+         * @return sum of {@code eon} and {@code BigInteger.valueOf(year)}
+         * when both fields are defined. When only {@code year} is defined,
+         * return it. When both {@code eon} and {@code year} are not
+         * defined, return {@code null}.
          *
          * @see #getEon()
          * @see #getYear()
@@ -515,21 +512,21 @@
         public abstract BigInteger getEonAndYear();
 
         /**
-         * <p>Return number of month or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return number of month or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-month">month field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-month">month field of date/time field mapping table</a>.
          *
-         * @return year  of this <code>XMLGregorianCalendar</code>.
+         * @return year  of this {@code XMLGregorianCalendar}.
          *
          */
         public abstract int getMonth();
 
         /**
-         * Return day in month or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return day in month or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-day">day field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-day">day field of date/time field mapping table</a>.
          *
          * @see #setDay(int)
          */
@@ -540,7 +537,7 @@
          * {@link DatatypeConstants#FIELD_UNDEFINED} if this optional field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-timezone">timezone field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-timezone">timezone field of date/time field mapping table</a>.
          *
          * @see #setTimezone(int)
          */
@@ -551,34 +548,34 @@
          * Returns {@link DatatypeConstants#FIELD_UNDEFINED} if this field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
          * @see #setTime(int, int, int)
          */
         public abstract int getHour();
 
         /**
-         * Return minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.
          * Returns {@link DatatypeConstants#FIELD_UNDEFINED} if this field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
          * @see #setTime(int, int, int)
          */
         public abstract int getMinute();
 
         /**
-         * <p>Return seconds or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return seconds or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Returns {@link DatatypeConstants#FIELD_UNDEFINED} if this field is not defined.
          * When this field is not defined, the optional xs:dateTime
          * fractional seconds field, represented by
          * {@link #getFractionalSecond()} and {@link #getMillisecond()},
-         * must not be defined.</p>
+         * must not be defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @return Second  of this <code>XMLGregorianCalendar</code>.
+         * @return Second  of this {@code XMLGregorianCalendar}.
          *
          * @see #getFractionalSecond()
          * @see #getMillisecond()
@@ -587,20 +584,20 @@
         public abstract int getSecond();
 
         /**
-         * <p>Return millisecond precision of {@link #getFractionalSecond()}.</p>
+         * Return millisecond precision of {@link #getFractionalSecond()}.
          *
          * <p>This method represents a convenience accessor to infinite
          * precision fractional second value returned by
          * {@link #getFractionalSecond()}. The returned value is the rounded
          * down to milliseconds value of
          * {@link #getFractionalSecond()}. When {@link #getFractionalSecond()}
-         * returns <code>null</code>, this method must return
-         * {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * returns {@code null}, this method must return
+         * {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @return Millisecond  of this <code>XMLGregorianCalendar</code>.
+         * @return Millisecond  of this {@code XMLGregorianCalendar}.
          *
          * @see #getFractionalSecond()
          * @see #setTime(int, int, int)
@@ -618,18 +615,18 @@
         }
 
         /**
-         * <p>Return fractional seconds.</p>
+         * Return fractional seconds.
          *
-         * <p><code>null</code> is returned when this optional field is not defined.</p>
+         * <p>{@code null} is returned when this optional field is not defined.
          *
          * <p>Value constraints are detailed in
-         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
          * <p>This optional field can only have a defined value when the
          * xs:dateTime second field, represented by {@link #getSecond()},
-         * does not return {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * does not return {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
-         * @return fractional seconds  of this <code>XMLGregorianCalendar</code>.
+         * @return fractional seconds  of this {@code XMLGregorianCalendar}.
          *
          * @see #getSecond()
          * @see #setTime(int, int, int, BigDecimal)
@@ -638,51 +635,51 @@
 
     // comparisons
     /**
-     * <p>Compare two instances of W3C XML Schema 1.0 date/time datatypes
+     * Compare two instances of W3C XML Schema 1.0 date/time datatypes
      * according to partial order relation defined in
      * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime-order">W3C XML Schema 1.0 Part 2, Section 3.2.7.3,
-     * <i>Order relation on dateTime</i></a>.</p>
+     * <i>Order relation on dateTime</i></a>.
      *
-     * <p><code>xsd:dateTime</code> datatype field mapping to accessors of
+     * <p>{@code xsd:dateTime} datatype field mapping to accessors of
      * this class are defined in
-     * <a href="#datetimefieldmapping">date/time field mapping table</a>.</p>
+     * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      *
-     * @param xmlGregorianCalendar Instance of <code>XMLGregorianCalendar</code> to compare
+     * @param xmlGregorianCalendar Instance of {@code XMLGregorianCalendar} to compare
      *
-     * @return The relationship between <code>this</code> <code>XMLGregorianCalendar</code> and
-     *   the specified <code>xmlGregorianCalendar</code> as
+     * @return The relationship between {@code this} {@code XMLGregorianCalendar} and
+     *   the specified {@code xmlGregorianCalendar} as
      *   {@link DatatypeConstants#LESSER},
      *   {@link DatatypeConstants#EQUAL},
      *   {@link DatatypeConstants#GREATER} or
      *   {@link DatatypeConstants#INDETERMINATE}.
      *
-     * @throws NullPointerException if <code>xmlGregorianCalendar</code> is null.
+     * @throws NullPointerException if {@code xmlGregorianCalendar} is null.
      */
     public abstract int compare(XMLGregorianCalendar xmlGregorianCalendar);
 
     /**
-     * <p>Normalize this instance to UTC.</p>
+     * Normalize this instance to UTC.
      *
-     * <p>2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z</p>
-     * <p>Implements W3C XML Schema Part 2, Section 3.2.7.3 (A).</p>
+     * <p>2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z
+     * <p>Implements W3C XML Schema Part 2, Section 3.2.7.3 (A).
      *
-     * @return <code>this</code> <code>XMLGregorianCalendar</code> normalized to UTC.
+     * @return {@code this} {@code XMLGregorianCalendar} normalized to UTC.
      */
     public abstract XMLGregorianCalendar normalize();
 
     /**
-     * <p>Compares this calendar to the specified object. The result is
-     * <code>true</code> if and only if the argument is not null and is an
-     * <code>XMLGregorianCalendar</code> object that represents the same
-     * instant in time as this object.</p>
+     * Compares this calendar to the specified object. The result is
+     * {@code true} if and only if the argument is not null and is an
+     * {@code XMLGregorianCalendar} object that represents the same
+     * instant in time as this object.
      *
      * @param obj to compare.
      *
-     * @return <code>true</code> when <code>obj</code> is an instance of
-     * <code>XMLGregorianCalendar</code> and
+     * @return {@code true} when {@code obj} is an instance of
+     * {@code XMLGregorianCalendar} and
      * {@link #compare(XMLGregorianCalendar obj)}
      * returns {@link DatatypeConstants#EQUAL},
-     * otherwise <code>false</code>.
+     * otherwise {@code false}.
      */
     public boolean equals(Object obj) {
 
@@ -693,7 +690,7 @@
     }
 
     /**
-     * <p>Returns a hash code consistent with the definition of the equals method.</p>
+     * Returns a hash code consistent with the definition of the equals method.
      *
      * @return hash code of this object.
      */
@@ -721,15 +718,15 @@
     }
 
     /**
-     * <p>Return the lexical representation of <code>this</code> instance.
+     * Return the lexical representation of {@code this} instance.
      * The format is specified in
      * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime-order">XML Schema 1.0 Part 2, Section 3.2.[7-14].1,
-     * <i>Lexical Representation</i>".</a></p>
+     * <i>Lexical Representation</i>".</a>
      *
      * <p>Specific target lexical representation format is determined by
-     * {@link #getXMLSchemaType()}.</p>
+     * {@link #getXMLSchemaType()}.
      *
-     * @return XML, as <code>String</code>, representation of this <code>XMLGregorianCalendar</code>
+     * @return XML, as {@code String}, representation of this {@code XMLGregorianCalendar}
      *
      * @throws IllegalStateException if the combination of set fields
      *    does not match one of the eight defined XML Schema builtin date/time datatypes.
@@ -737,14 +734,14 @@
     public abstract String toXMLFormat();
 
     /**
-     * <p>Return the name of the XML Schema date/time type that this instance
-     * maps to. Type is computed based on fields that are set.</p>
+     * Return the name of the XML Schema date/time type that this instance
+     * maps to. Type is computed based on fields that are set.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="7">
-     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br/>
+     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br>
      *         <i>(timezone is optional for all date/time datatypes)</i>
      *       </th>
      *     </tr>
@@ -850,11 +847,11 @@
     public abstract QName getXMLSchemaType();
 
         /**
-         * <p>Returns a <code>String</code> representation of this <code>XMLGregorianCalendar</code> <code>Object</code>.</p>
+         * Returns a {@code String} representation of this {@code XMLGregorianCalendar} {@code Object}.
          *
-         * <p>The result is a lexical representation generated by {@link #toXMLFormat()}.</p>
+         * <p>The result is a lexical representation generated by {@link #toXMLFormat()}.
          *
-         * @return A non-<code>null</code> valid <code>String</code> representation of this <code>XMLGregorianCalendar</code>.
+         * @return A non-{@code null} valid {@code String} representation of this {@code XMLGregorianCalendar}.
          *
      * @throws IllegalStateException if the combination of set fields
      *    does not match one of the eight defined XML Schema builtin date/time datatypes.
@@ -867,89 +864,89 @@
     }
 
     /**
-     * Validate instance by <code>getXMLSchemaType()</code> constraints.
+     * Validate instance by {@code getXMLSchemaType()} constraints.
      * @return true if data values are valid.
      */
     public abstract boolean isValid();
 
     /**
-     * <p>Add <code>duration</code> to this instance.</p>
+     * Add {@code duration} to this instance.
      *
      * <p>The computation is specified in
      * <a href="http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes">XML Schema 1.0 Part 2, Appendix E,
-     * <i>Adding durations to dateTimes</i>></a>.
+     * <i>Adding durations to dateTimes</i></a>.
      * <a href="#datetimefieldmapping">date/time field mapping table</a>
-     * defines the mapping from XML Schema 1.0 <code>dateTime</code> fields
-     * to this class' representation of those fields.</p>
+     * defines the mapping from XML Schema 1.0 {@code dateTime} fields
+     * to this class' representation of those fields.
      *
-     * @param duration Duration to add to this <code>XMLGregorianCalendar</code>.
+     * @param duration Duration to add to this {@code XMLGregorianCalendar}.
      *
-     * @throws NullPointerException  when <code>duration</code> parameter is <code>null</code>.
+     * @throws NullPointerException  when {@code duration} parameter is {@code null}.
      */
     public abstract void add(Duration duration);
 
     /**
-     * <p>Convert this <code>XMLGregorianCalendar</code> to a {@link GregorianCalendar}.</p>
+     * Convert this {@code XMLGregorianCalendar} to a {@link GregorianCalendar}.
      *
-     * <p>When <code>this</code> instance has an undefined field, this
-     * conversion relies on the <code>java.util.GregorianCalendar</code> default
+     * <p>When {@code this} instance has an undefined field, this
+     * conversion relies on the {@code java.util.GregorianCalendar} default
      * for its corresponding field. A notable difference between
-     * XML Schema 1.0 date/time datatypes and <code>java.util.GregorianCalendar</code>
+     * XML Schema 1.0 date/time datatypes and {@code java.util.GregorianCalendar}
      * is that Timezone value is optional for date/time datatypes and it is
-     * a required field for <code>java.util.GregorianCalendar</code>. See javadoc
-     * for <code>java.util.TimeZone.getDefault()</code> on how the default
-     * is determined. To explicitly specify the <code>TimeZone</code>
+     * a required field for {@code java.util.GregorianCalendar}. See javadoc
+     * for {@code java.util.TimeZone.getDefault()} on how the default
+     * is determined. To explicitly specify the {@code TimeZone}
      * instance, see
-     * {@link #toGregorianCalendar(TimeZone, Locale, XMLGregorianCalendar)}.</p>
+     * {@link #toGregorianCalendar(TimeZone, Locale, XMLGregorianCalendar)}.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="2">
      *          Field by Field Conversion from this class to
-     *          <code>java.util.GregorianCalendar</code>
+     *          {@code java.util.GregorianCalendar}
      *       </th>
      *     </tr>
      *   </thead>
      *   <tbody>
      *     <tr>
-     *        <td><code>java.util.GregorianCalendar</code> field</td>
-     *        <td><code>javax.xml.datatype.XMLGregorianCalendar</code> field</td>
+     *        <td>{@code java.util.GregorianCalendar} field</td>
+     *        <td>{@code javax.xml.datatype.XMLGregorianCalendar} field</td>
      *     </tr>
      *     <tr>
-     *       <td><code>ERA</code></td>
-     *       <td>{@link #getEonAndYear()}<code>.signum() < 0 ? GregorianCalendar.BC : GregorianCalendar.AD</code></td>
+     *       <td>{@code ERA}</td>
+     *       <td>{@link #getEonAndYear()}{@code .signum() < 0 ? GregorianCalendar.BC : GregorianCalendar.AD}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>YEAR</code></td>
-     *       <td>{@link #getEonAndYear()}<code>.abs().intValue()</code><i>*</i></td>
+     *       <td>{@code YEAR}</td>
+     *       <td>{@link #getEonAndYear()}{@code .abs().intValue()}<i>*</i></td>
      *     </tr>
      *     <tr>
-     *       <td><code>MONTH</code></td>
+     *       <td>{@code MONTH}</td>
      *       <td>{@link #getMonth()} - {@link DatatypeConstants#JANUARY} + {@link GregorianCalendar#JANUARY}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>DAY_OF_MONTH</code></td>
+     *       <td>{@code DAY_OF_MONTH}</td>
      *       <td>{@link #getDay()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>HOUR_OF_DAY</code></td>
+     *       <td>{@code HOUR_OF_DAY}</td>
      *       <td>{@link #getHour()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>MINUTE</code></td>
+     *       <td>{@code MINUTE}</td>
      *       <td>{@link #getMinute()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>SECOND</code></td>
+     *       <td>{@code SECOND}</td>
      *       <td>{@link #getSecond()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>MILLISECOND</code></td>
+     *       <td>{@code MILLISECOND}</td>
      *       <td>get millisecond order from {@link #getFractionalSecond()}<i>*</i> </td>
      *     </tr>
      *     <tr>
-     *       <td><code>GregorianCalendar.setTimeZone(TimeZone)</code></td>
+     *       <td>{@code GregorianCalendar.setTimeZone(TimeZone)}</td>
      *       <td>{@link #getTimezone()} formatted into Custom timezone id</td>
      *     </tr>
      *   </tbody>
@@ -958,74 +955,74 @@
      * to source datatype having higher precision than target datatype.
      *
      * <p>To ensure consistency in conversion implementations, the new
-     * <code>GregorianCalendar</code> should be instantiated in following
+     * {@code GregorianCalendar} should be instantiated in following
      * manner.
      * <ul>
-     *   <li>Using <code>timeZone</code> value as defined above, create a new
-     * <code>java.util.GregorianCalendar(timeZone,Locale.getDefault())</code>.
+     *   <li>Using {@code timeZone} value as defined above, create a new
+     * {@code java.util.GregorianCalendar(timeZone,Locale.getDefault())}.
      *   </li>
      *   <li>Initialize all GregorianCalendar fields by calling {@link java.util.GregorianCalendar#clear()}.</li>
      *   <li>Obtain a pure Gregorian Calendar by invoking
-     *   <code>GregorianCalendar.setGregorianChange(
-     *   new Date(Long.MIN_VALUE))</code>.</li>
+     *   {@code GregorianCalendar.setGregorianChange(
+     *   new Date(Long.MIN_VALUE))}.</li>
      *   <li>Its fields ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY,
      *       MINUTE, SECOND and MILLISECOND are set using the method
-     *       <code>Calendar.set(int,int)</code></li>
+     *       {@code Calendar.set(int,int)}</li>
      * </ul>
-     * </p>
      *
      * @see #toGregorianCalendar(java.util.TimeZone, java.util.Locale, XMLGregorianCalendar)
      */
     public abstract GregorianCalendar toGregorianCalendar();
 
     /**
-     * <p>Convert this <code>XMLGregorianCalendar</code> along with provided parameters
-     * to a {@link GregorianCalendar} instance.</p>
+     * Convert this {@code XMLGregorianCalendar} along with provided parameters
+     * to a {@link GregorianCalendar} instance.
      *
      * <p> Since XML Schema 1.0 date/time datetypes has no concept of
      * timezone ids or daylight savings timezone ids, this conversion operation
      * allows the user to explicitly specify one with
-     * <code>timezone</code> parameter.</p>
+     * {@code timezone} parameter.
      *
-     * <p>To compute the return value's <code>TimeZone</code> field,
+     * <p>To compute the return value's {@code TimeZone} field,
      * <ul>
-     * <li>when parameter <code>timeZone</code> is non-null,
+     * <li>when parameter {@code timeZone} is non-null,
      * it is the timezone field.</li>
-     * <li>else when <code>this.getTimezone() != FIELD_UNDEFINED</code>,
-     * create a <code>java.util.TimeZone</code> with a custom timezone id
-     * using the <code>this.getTimezone()</code>.</li>
-     * <li>else when <code>defaults.getTimezone() != FIELD_UNDEFINED</code>,
-     * create a <code>java.util.TimeZone</code> with a custom timezone id
-     * using <code>defaults.getTimezone()</code>.</li>
-     * <li>else use the <code>GregorianCalendar</code> default timezone value
+     * <li>else when {@code this.getTimezone() != FIELD_UNDEFINED},
+     * create a {@code java.util.TimeZone} with a custom timezone id
+     * using the {@code this.getTimezone()}.</li>
+     * <li>else when {@code defaults.getTimezone() != FIELD_UNDEFINED},
+     * create a {@code java.util.TimeZone} with a custom timezone id
+     * using {@code defaults.getTimezone()}.</li>
+     * <li>else use the {@code GregorianCalendar} default timezone value
      * for the host is defined as specified by
-     * <code>java.util.TimeZone.getDefault()</code>.</li></p>
+     * {@code java.util.TimeZone.getDefault()}.</li>
+     * </ul>
      *
      * <p>To ensure consistency in conversion implementations, the new
-     * <code>GregorianCalendar</code> should be instantiated in following
+     * {@code GregorianCalendar} should be instantiated in following
      * manner.
      * <ul>
-     *   <li>Create a new <code>java.util.GregorianCalendar(TimeZone,
-     *       Locale)</code> with TimeZone set as specified above and the
-     *       <code>Locale</code> parameter.
+     *   <li>Create a new {@code java.util.GregorianCalendar(TimeZone,
+     *       Locale)} with TimeZone set as specified above and the
+     *       {@code Locale} parameter.
      *   </li>
      *   <li>Initialize all GregorianCalendar fields by calling {@link GregorianCalendar#clear()}</li>
      *   <li>Obtain a pure Gregorian Calendar by invoking
-     *   <code>GregorianCalendar.setGregorianChange(
-     *   new Date(Long.MIN_VALUE))</code>.</li>
+     *   {@code GregorianCalendar.setGregorianChange(
+     *   new Date(Long.MIN_VALUE))}.</li>
      *   <li>Its fields ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY,
      *       MINUTE, SECOND and MILLISECOND are set using the method
-     *       <code>Calendar.set(int,int)</code></li>
+     *       {@code Calendar.set(int,int)}</li>
      * </ul>
      *
-     * @param timezone provide Timezone. <code>null</code> is a legal value.
+     * @param timezone provide Timezone. {@code null} is a legal value.
      * @param aLocale  provide explicit Locale. Use default GregorianCalendar locale if
-     *                 value is <code>null</code>.
+     *                 value is {@code null}.
      * @param defaults provide default field values to use when corresponding
      *                 field for this instance is FIELD_UNDEFINED or null.
-     *                 If <code>defaults</code>is <code>null</code> or a field
-     *                 within the specified <code>defaults</code> is undefined,
-     *                 just use <code>java.util.GregorianCalendar</code> defaults.
+     *                 If {@code defaults}is {@code null} or a field
+     *                 within the specified {@code defaults} is undefined,
+     *                 just use {@code java.util.GregorianCalendar} defaults.
      * @return a java.util.GregorianCalendar conversion of this instance.
      */
     public abstract GregorianCalendar toGregorianCalendar(
@@ -1034,7 +1031,7 @@
                 XMLGregorianCalendar defaults);
 
     /**
-     * <p>Returns a <code>java.util.TimeZone</code> for this class.</p>
+     * Returns a {@code java.util.TimeZone} for this class.
      *
      * <p>If timezone field is defined for this instance,
      * returns TimeZone initialized with custom timezone id
@@ -1042,7 +1039,7 @@
      * try the defaultZoneoffset that was passed in.
      * If defaultZoneoffset is FIELD_UNDEFINED, return
      * default timezone for this host.
-     * (Same default as java.util.GregorianCalendar).</p>
+     * (Same default as java.util.GregorianCalendar).
      *
      * @param defaultZoneoffset default zoneoffset if this zoneoffset is
      * {@link DatatypeConstants#FIELD_UNDEFINED}.
@@ -1054,9 +1051,9 @@
 
 
     /**
-     * <p>Creates and returns a copy of this object.</p>
+     * Creates and returns a copy of this object.
      *
-     * @return copy of this <code>Object</code>
+     * @return copy of this {@code Object}
      */
    public abstract Object clone();
 }
--- a/jaxp/src/java.xml/share/classes/javax/xml/namespace/NamespaceContext.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/namespace/NamespaceContext.java	Mon Apr 27 09:17:39 2015 -0700
@@ -28,44 +28,44 @@
 import java.util.Iterator;
 
 /**
- * <p>Interface for read only XML Namespace context processing.</p>
+ * Interface for read only XML Namespace context processing.
  *
- * <p>An XML Namespace has the properties:</p>
+ * <p>An XML Namespace has the properties:
  * <ul>
  *   <li>Namespace URI:
  *       Namespace name expressed as a URI to which the prefix is bound</li>
  *   <li>prefix: syntactically, this is the part of the attribute name
- *       following the <code>XMLConstants.XMLNS_ATTRIBUTE</code>
+ *       following the {@code XMLConstants.XMLNS_ATTRIBUTE}
  *       ("xmlns") in the Namespace declaration</li>
  * </ul>
  * <p>example:
- * <code>&lt;element xmlns:prefix="http://Namespace-name-URI"&gt;</code></p>
+ * {@code <element xmlns:prefix="http://Namespace-name-URI">}
  *
- * <p>All <code>get*(*)</code> methods operate in the current scope
- * for Namespace URI and prefix resolution.</p>
+ * <p>All {@code get*(*)} methods operate in the current scope
+ * for Namespace URI and prefix resolution.
  *
  * <p>Note that a Namespace URI can be bound to
  * <strong>multiple</strong> prefixes in the current scope.  This can
- * occur when multiple <code>XMLConstants.XMLNS_ATTRIBUTE</code>
+ * occur when multiple {@code XMLConstants.XMLNS_ATTRIBUTE}
  * ("xmlns") Namespace declarations occur in the same Start-Tag and
- * refer to the same Namespace URI. e.g.<br />
- * <pre>
- * &lt;element xmlns:prefix1="http://Namespace-name-URI"
- *          xmlns:prefix2="http://Namespace-name-URI"&gt;
+ * refer to the same Namespace URI. e.g.<br>
+ * <pre> {@code
+ * <element xmlns:prefix1="http://Namespace-name-URI"
+ *          xmlns:prefix2="http://Namespace-name-URI"> }
  * </pre>
  * This can also occur when the same Namespace URI is used in multiple
- * <code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns") Namespace
- * declarations in the logical parent element hierarchy.  e.g.<br />
- * <pre>
- * &lt;parent xmlns:prefix1="http://Namespace-name-URI">
- *   &lt;child xmlns:prefix2="http://Namespace-name-URI"&gt;
+ * {@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns") Namespace
+ * declarations in the logical parent element hierarchy.  e.g.<br>
+ * <pre> {@code
+ * <parent xmlns:prefix1="http://Namespace-name-URI">
+ *   <child xmlns:prefix2="http://Namespace-name-URI">
  *     ...
- *   &lt;/child&gt;
- * &lt;/parent&gt;
- * </pre></p>
+ *   </child>
+ * </parent> }
+ * </pre>
  *
  * <p>A prefix can only be bound to a <strong>single</strong>
- * Namespace URI in the current scope.</p>
+ * Namespace URI in the current scope.
  *
  * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @see javax.xml.XMLConstants
@@ -82,17 +82,17 @@
 public interface NamespaceContext {
 
     /**
-     * <p>Get Namespace URI bound to a prefix in the current scope.</p>
+     * Get Namespace URI bound to a prefix in the current scope.
      *
      * <p>When requesting a Namespace URI by prefix, the following
      * table describes the returned Namespace URI value for all
-     * possible prefix values:</p>
+     * possible prefix values:
      *
      * <table border="2" rules="all" cellpadding="4">
      *   <thead>
      *     <tr>
      *       <td align="center" colspan="2">
-     *         <code>getNamespaceURI(prefix)</code>
+     *         {@code getNamespaceURI(prefix)}
      *         return value for specified prefixes
      *       </td>
      *     </tr>
@@ -103,9 +103,9 @@
      *   </thead>
      *   <tbody>
      *     <tr>
-     *       <td><code>DEFAULT_NS_PREFIX</code> ("")</td>
+     *       <td>{@code DEFAULT_NS_PREFIX} ("")</td>
      *       <td>default Namespace URI in the current scope or
-     *         <code>{@link
+     *         <code> {@link
      *         javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI("")}
      *         </code>
      *         when there is no default Namespace URI in the current scope</td>
@@ -117,24 +117,24 @@
      *     <tr>
      *       <td>unbound prefix</td>
      *       <td>
-     *         <code>{@link
+     *         <code> {@link
      *         javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI("")}
      *         </code>
      *       </td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td>
-     *       <td><code>XMLConstants.XML_NS_URI</code>
+     *       <td>{@code XMLConstants.XML_NS_PREFIX} ("xml")</td>
+     *       <td>{@code XMLConstants.XML_NS_URI}
      *           ("http://www.w3.org/XML/1998/namespace")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns")</td>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE_NS_URI}
      *         ("http://www.w3.org/2000/xmlns/")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>null</code></td>
-     *       <td><code>IllegalArgumentException</code> is thrown</td>
+     *       <td>{@code null}</td>
+     *       <td>{@code IllegalArgumentException} is thrown</td>
      *     </tr>
      *    </tbody>
      * </table>
@@ -143,26 +143,26 @@
      *
      * @return Namespace URI bound to prefix in the current scope
      *
-     * @throws IllegalArgumentException When <code>prefix</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code prefix} is
+     *   {@code null}
      */
     String getNamespaceURI(String prefix);
 
     /**
-     * <p>Get prefix bound to Namespace URI in the current scope.</p>
+     * Get prefix bound to Namespace URI in the current scope.
      *
      * <p>To get all prefixes bound to a Namespace URI in the current
-     * scope, use {@link #getPrefixes(String namespaceURI)}.</p>
+     * scope, use {@link #getPrefixes(String namespaceURI)}.
      *
      * <p>When requesting a prefix by Namespace URI, the following
      * table describes the returned prefix value for all Namespace URI
-     * values:</p>
+     * values:
      *
      * <table border="2" rules="all" cellpadding="4">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="2">
-     *         <code>getPrefix(namespaceURI)</code> return value for
+     *         {@code getPrefix(namespaceURI)} return value for
      *         specified Namespace URIs
      *       </th>
      *     </tr>
@@ -173,8 +173,8 @@
      *   </thead>
      *   <tbody>
      *     <tr>
-     *       <td>&lt;default Namespace URI&gt;</td>
-     *       <td><code>XMLConstants.DEFAULT_NS_PREFIX</code> ("")
+     *       <td>{@code <default Namespace URI>}</td>
+     *       <td>{@code XMLConstants.DEFAULT_NS_PREFIX} ("")
      *       </td>
      *     </tr>
      *     <tr>
@@ -186,21 +186,21 @@
      *     </tr>
      *     <tr>
      *       <td>unbound Namespace URI</td>
-     *       <td><code>null</code></td>
+     *       <td>{@code null}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XML_NS_URI</code>
+     *       <td>{@code XMLConstants.XML_NS_URI}
      *           ("http://www.w3.org/XML/1998/namespace")</td>
-     *       <td><code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td>
+     *       <td>{@code XMLConstants.XML_NS_PREFIX} ("xml")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE_NS_URI}
      *           ("http://www.w3.org/2000/xmlns/")</td>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>null</code></td>
-     *       <td><code>IllegalArgumentException</code> is thrown</td>
+     *       <td>{@code null}</td>
+     *       <td>{@code IllegalArgumentException} is thrown</td>
      *     </tr>
      *   </tbody>
      * </table>
@@ -209,32 +209,32 @@
      *
      * @return prefix bound to Namespace URI in current context
      *
-     * @throws IllegalArgumentException When <code>namespaceURI</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code namespaceURI} is
+     *   {@code null}
      */
     String getPrefix(String namespaceURI);
 
     /**
-     * <p>Get all prefixes bound to a Namespace URI in the current
-     * scope.</p>
+     * Get all prefixes bound to a Namespace URI in the current
+     * scope.
      *
      * <p>An Iterator over String elements is returned in an arbitrary,
-     * <strong>implementation dependent</strong>, order.</p>
+     * <strong>implementation dependent</strong>, order.
      *
-     * <p><strong>The <code>Iterator</code> is
+     * <p><strong>The {@code Iterator} is
      * <em>not</em> modifiable.  e.g. the
-     * <code>remove()</code> method will throw
-     * <code>UnsupportedOperationException</code>.</strong></p>
+     * {@code remove()} method will throw
+     * {@code UnsupportedOperationException}.</strong>
      *
      * <p>When requesting prefixes by Namespace URI, the following
      * table describes the returned prefixes value for all Namespace
-     * URI values:</p>
+     * URI values:
      *
      * <table border="2" rules="all" cellpadding="4">
      *   <thead>
      *     <tr>
-     *       <th align="center" colspan="2"><code>
-     *         getPrefixes(namespaceURI)</code> return value for
+     *       <th align="center" colspan="2">{@code
+     *         getPrefixes(namespaceURI)} return value for
      *         specified Namespace URIs</th>
      *     </tr>
      *     <tr>
@@ -245,9 +245,9 @@
      *   <tbody>
      *     <tr>
      *       <td>bound Namespace URI,
-     *         including the &lt;default Namespace URI&gt;</td>
+     *         including the {@code <default Namespace URI>}</td>
      *       <td>
-     *         <code>Iterator</code> over prefixes bound to Namespace URI in
+     *         {@code Iterator} over prefixes bound to Namespace URI in
      *         the current scope in an arbitrary,
      *         <strong>implementation dependent</strong>,
      *         order
@@ -255,34 +255,34 @@
      *     </tr>
      *     <tr>
      *       <td>unbound Namespace URI</td>
-     *       <td>empty <code>Iterator</code></td>
+     *       <td>empty {@code Iterator}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XML_NS_URI</code>
+     *       <td>{@code XMLConstants.XML_NS_URI}
      *           ("http://www.w3.org/XML/1998/namespace")</td>
-     *       <td><code>Iterator</code> with one element set to
-     *         <code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td>
+     *       <td>{@code Iterator} with one element set to
+     *         {@code XMLConstants.XML_NS_PREFIX} ("xml")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE_NS_URI}
      *           ("http://www.w3.org/2000/xmlns/")</td>
-     *       <td><code>Iterator</code> with one element set to
-     *         <code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td>
+     *       <td>{@code Iterator} with one element set to
+     *         {@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>null</code></td>
-     *       <td><code>IllegalArgumentException</code> is thrown</td>
+     *       <td>{@code null}</td>
+     *       <td>{@code IllegalArgumentException} is thrown</td>
      *     </tr>
      *   </tbody>
      * </table>
      *
      * @param namespaceURI URI of Namespace to lookup
      *
-     * @return <code>Iterator</code> for all prefixes bound to the
+     * @return {@code Iterator} for all prefixes bound to the
      *   Namespace URI in the current scope
      *
-     * @throws IllegalArgumentException When <code>namespaceURI</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code namespaceURI} is
+     *   {@code null}
      */
     Iterator getPrefixes(String namespaceURI);
 }
--- a/jaxp/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -47,8 +47,8 @@
     private boolean coalescing = false;
 
     /**
-     * <p>Protected constructor to prevent instantiation.
-     * Use {@link #newInstance()}.</p>
+     * Protected constructor to prevent instantiation.
+     * Use {@link #newInstance()}.
      */
     protected DocumentBuilderFactory () {
     }
@@ -60,7 +60,6 @@
      * This method uses the following ordered lookup procedure to determine
      * the {@code DocumentBuilderFactory} implementation class to
      * load:
-     * <p>
      * <ul>
      * <li>
      * Use the {@code javax.xml.parsers.DocumentBuilderFactory} system
@@ -131,7 +130,7 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code DocumentBuilderFactory} from class name.
+     * Obtain a new instance of a {@code DocumentBuilderFactory} from class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
      * should be loaded.
@@ -143,21 +142,22 @@
      * <h2>Tip for Trouble-shooting</h2>
      * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to {@code System.err} about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
-     * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.parsers.DocumentBuilderFactory}.
+     * @param factoryClassName fully qualified factory class name that provides
+     *        implementation of {@code javax.xml.parsers.DocumentBuilderFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return New instance of a {@code DocumentBuilderFactory}
      *
-     * @throws FactoryConfigurationError if <code>factoryClassName</code> is <code>null</code>, or
+     * @throws FactoryConfigurationError if {@code factoryClassName} is {@code null}, or
      *                                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -187,7 +187,7 @@
     /**
      * Specifies that the parser produced by this code will
      * provide support for XML namespaces. By default the value of this is set
-     * to <code>false</code>
+     * to {@code false}
      *
      * @param awareness true if the parser produced will provide support
      *                  for XML namespaces; false otherwise.
@@ -200,7 +200,7 @@
     /**
      * Specifies that the parser produced by this code will
      * validate documents as they are parsed. By default the value of this
-     * is set to <code>false</code>.
+     * is set to {@code false}.
      *
      * <p>
      * Note that "the validation" here means
@@ -208,15 +208,13 @@
      * parser</a> as defined in the XML recommendation.
      * In other words, it essentially just controls the DTD validation.
      * (except the legacy two properties defined in JAXP 1.2.)
-     * </p>
      *
      * <p>
      * To use modern schema languages such as W3C XML Schema or
      * RELAX NG instead of DTD, you can configure your parser to be
      * a non-validating parser by leaving the {@link #setValidating(boolean)}
-     * method <code>false</code>, then use the {@link #setSchema(Schema)}
+     * method {@code false}, then use the {@link #setSchema(Schema)}
      * method to associate a schema to a parser.
-     * </p>
      *
      * @param validating true if the parser produced will validate documents
      *                   as they are parsed; false otherwise.
@@ -234,7 +232,7 @@
      * element content that has an element only content model (see XML
      * Rec 3.2.1) will be eliminated. Due to reliance on the content model
      * this setting requires the parser to be in validating mode. By default
-     * the value of this is set to <code>false</code>.
+     * the value of this is set to {@code false}.
      *
      * @param whitespace true if the parser created must eliminate whitespace
      *                   in the element content when parsing XML documents;
@@ -248,7 +246,7 @@
     /**
      * Specifies that the parser produced by this code will
      * expand entity reference nodes. By default the value of this is set to
-     * <code>true</code>
+     * {@code true}
      *
      * @param expandEntityRef true if the parser produced will expand entity
      *                        reference nodes; false otherwise.
@@ -259,11 +257,10 @@
     }
 
     /**
-     * <p>Specifies that the parser produced by this code will
-     * ignore comments. By default the value of this is set to <code>false
-     * </code>.</p>
+     * Specifies that the parser produced by this code will
+     * ignore comments. By default the value of this is set to {@code false}.
      *
-     * @param ignoreComments <code>boolean</code> value to ignore comments during processing
+     * @param ignoreComments {@code boolean} value to ignore comments during processing
      */
 
     public void setIgnoringComments(boolean ignoreComments) {
@@ -274,7 +271,7 @@
      * Specifies that the parser produced by this code will
      * convert CDATA nodes to Text nodes and append it to the
      * adjacent (if any) text node. By default the value of this is set to
-     * <code>false</code>
+     * {@code false}
      *
      * @param coalescing  true if the parser produced will convert CDATA nodes
      *                    to Text nodes and append it to the adjacent (if any)
@@ -367,25 +364,23 @@
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
-     *      <p>
      *      Setting the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property
      *      restricts the access to external DTDs, external Entity References to the
      *      protocols specified by the property.
      *      If access is denied during parsing due to the restriction of this property,
      *      {@link org.xml.sax.SAXException} will be thrown by the parse methods defined by
      *      {@link javax.xml.parsers.DocumentBuilder}.
-     *      </p>
-     *      <p>
+     *   </li>
+     *   <li>
      *      Setting the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} property
      *      restricts the access to external Schema set by the schemaLocation attribute to
      *      the protocols specified by the property.  If access is denied during parsing
      *      due to the restriction of this property, {@link org.xml.sax.SAXException}
      *      will be thrown by the parse methods defined by
      *      {@link javax.xml.parsers.DocumentBuilder}.
-     *      </p>
      *   </li>
      * </ul>
      *
@@ -413,61 +408,61 @@
                 throws IllegalArgumentException;
 
     /**
-     * <p>Set a feature for this {@code DocumentBuilderFactory} and <code>DocumentBuilder</code>s created by this factory.</p>
+     * Set a feature for this {@code DocumentBuilderFactory}
+     * and {@code DocumentBuilder}s created by this factory.
      *
      * <p>
      * Feature names are fully qualified {@link java.net.URI}s.
      * Implementations may define their own features.
      * A {@link ParserConfigurationException} is thrown if this {@code DocumentBuilderFactory} or the
-     * <code>DocumentBuilder</code>s it creates cannot support the feature.
+     * {@code DocumentBuilder}s it creates cannot support the feature.
      * It is possible for a {@code DocumentBuilderFactory} to expose a feature value but be unable to change its state.
-     * </p>
+     *
      *
      * <p>
      * All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-     * When the feature is:</p>
+     * When the feature is:
      * <ul>
      *   <li>
-     *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits.
+     *     {@code true}: the implementation will limit XML processing to conform to implementation limits.
      *     Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources.
      *     If XML processing is limited for security reasons, it will be reported via a call to the registered
      *    {@link org.xml.sax.ErrorHandler#fatalError(SAXParseException exception)}.
      *     See {@link  DocumentBuilder#setErrorHandler(org.xml.sax.ErrorHandler errorHandler)}.
      *   </li>
      *   <li>
-     *     <code>false</code>: the implementation will processing XML according to the XML specifications without
+     *     {@code false}: the implementation will processing XML according to the XML specifications without
      *     regard to possible implementation limits.
      *   </li>
      * </ul>
      *
      * @param name Feature name.
-     * @param value Is feature state <code>true</code> or <code>false</code>.
+     * @param value Is feature state {@code true} or {@code false}.
      *
-     * @throws ParserConfigurationException if this {@code DocumentBuilderFactory} or the <code>DocumentBuilder</code>s
+     * @throws ParserConfigurationException if this {@code DocumentBuilderFactory} or the {@code DocumentBuilder}s
      *   it creates cannot support this feature.
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+     * @throws NullPointerException If the {@code name} parameter is null.
      * @since 1.5
      */
     public abstract void setFeature(String name, boolean value)
             throws ParserConfigurationException;
 
     /**
-     * <p>Get the state of the named feature.</p>
+     * Get the state of the named feature.
      *
      * <p>
      * Feature names are fully qualified {@link java.net.URI}s.
      * Implementations may define their own features.
      * An {@link ParserConfigurationException} is thrown if this {@code DocumentBuilderFactory} or the
-     * <code>DocumentBuilder</code>s it creates cannot support the feature.
+     * {@code DocumentBuilder}s it creates cannot support the feature.
      * It is possible for an {@code DocumentBuilderFactory} to expose a feature value but be unable to change its state.
-     * </p>
      *
      * @param name Feature name.
      *
      * @return State of the named feature.
      *
      * @throws ParserConfigurationException if this {@code DocumentBuilderFactory}
-     *   or the <code>DocumentBuilder</code>s it creates cannot support this feature.
+     *   or the {@code DocumentBuilder}s it creates cannot support this feature.
      * @since 1.5
      */
     public abstract boolean getFeature(String name)
@@ -501,7 +496,7 @@
     }
 
     /**
-     * <p>Set the {@link Schema} to be used by parsers created
+     * Set the {@link Schema} to be used by parsers created
      * from this factory.
      *
      * <p>
@@ -529,26 +524,26 @@
      *
      * <p>
      * This processing will take effect even if
-     * the {@link #isValidating()} method returns <code>false</code>.
+     * the {@link #isValidating()} method returns {@code false}.
      *
      * <p>It is an error to use
-     * the <code>http://java.sun.com/xml/jaxp/properties/schemaSource</code>
-     * property and/or the <code>http://java.sun.com/xml/jaxp/properties/schemaLanguage</code>
+     * the {@code http://java.sun.com/xml/jaxp/properties/schemaSource}
+     * property and/or the {@code http://java.sun.com/xml/jaxp/properties/schemaLanguage}
      * property in conjunction with a {@link Schema} object.
      * Such configuration will cause a {@link ParserConfigurationException}
-     * exception when the {@link #newDocumentBuilder()} is invoked.</p>
+     * exception when the {@link #newDocumentBuilder()} is invoked.
      *
      *
-     * <h4>Note for implementors</h4>
+     * <h3>Note for implementors</h3>
      *
      * <p>
      * A parser must be able to work with any {@link Schema}
      * implementation. However, parsers and schemas are allowed
      * to use implementation-specific custom mechanisms
      * as long as they yield the result described in the specification.
-     * </p>
+     *
      *
-     * @param schema <code>Schema</code> to use or <code>null</code>
+     * @param schema {@code Schema} to use or {@code null}
      *   to remove a schema.
      *
      * @throws UnsupportedOperationException When implementation does not
@@ -569,16 +564,16 @@
 
 
     /**
-     * <p>Set state of XInclude processing.</p>
+     * Set state of XInclude processing.
      *
      * <p>If XInclude markup is found in the document instance, should it be
      * processed as specified in <a href="http://www.w3.org/TR/xinclude/">
-     * XML Inclusions (XInclude) Version 1.0</a>.</p>
+     * XML Inclusions (XInclude) Version 1.0</a>.
      *
-     * <p>XInclude processing defaults to <code>false</code>.</p>
+     * <p>XInclude processing defaults to {@code false}.
      *
-     * @param state Set XInclude processing to <code>true</code> or
-     *   <code>false</code>
+     * @param state Set XInclude processing to {@code true} or
+     *   {@code false}
      *
      * @throws UnsupportedOperationException When implementation does not
      *   override this method.
@@ -594,7 +589,7 @@
     }
 
     /**
-     * <p>Get state of XInclude processing.</p>
+     * Get state of XInclude processing.
      *
      * @return current state of XInclude processing
      *
--- a/jaxp/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -42,17 +42,17 @@
 public abstract class SAXParserFactory {
 
     /**
-     * <p>Should Parsers be validating?</p>
+     * Should Parsers be validating?
      */
     private boolean validating = false;
 
     /**
-     * <p>Should Parsers be namespace aware?</p>
+     * Should Parsers be namespace aware?
      */
     private boolean namespaceAware = false;
 
     /**
-     * <p>Protected constructor to force use of {@link #newInstance()}.</p>
+     * Protected constructor to force use of {@link #newInstance()}.
      */
     protected SAXParserFactory () {
 
@@ -64,7 +64,6 @@
      * This method uses the following ordered lookup procedure to determine
      * the {@code SAXParserFactory} implementation class to
      * load:
-     * <p>
      * <ul>
      * <li>
      * Use the {@code javax.xml.parsers.SAXParserFactory} system
@@ -138,19 +137,19 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code SAXParserFactory} from class name.
+     * Obtain a new instance of a {@code SAXParserFactory} from class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <p>Once an application has obtained a reference to a {@code SAXParserFactory}
-     * it can use the factory to configure and obtain parser instances.</p>
+     * it can use the factory to configure and obtain parser instances.
      *
      *
      * <h2>Tip for Trouble-shooting</h2>
      * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to {@code System.err} about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
      * <p>
      * If you have problems, try:
@@ -160,12 +159,12 @@
      *
      * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.parsers.SAXParserFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return New instance of a {@code SAXParserFactory}
      *
-     * @throws FactoryConfigurationError if <code>factoryClassName</code> is <code>null</code>, or
+     * @throws FactoryConfigurationError if {@code factoryClassName} is {@code null}, or
      *                                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -179,8 +178,8 @@
     }
 
     /**
-     * <p>Creates a new instance of a SAXParser using the currently
-     * configured factory parameters.</p>
+     * Creates a new instance of a SAXParser using the currently
+     * configured factory parameters.
      *
      * @return A new instance of a SAXParser.
      *
@@ -196,7 +195,7 @@
     /**
      * Specifies that the parser produced by this code will
      * provide support for XML namespaces. By default the value of this is set
-     * to <code>false</code>.
+     * to {@code false}.
      *
      * @param awareness true if the parser produced by this code will
      *                  provide support for XML namespaces; false otherwise.
@@ -209,7 +208,7 @@
     /**
      * Specifies that the parser produced by this code will
      * validate documents as they are parsed. By default the value of this is
-     * set to <code>false</code>.
+     * set to {@code false}.
      *
      * <p>
      * Note that "the validation" here means
@@ -217,15 +216,13 @@
      * parser</a> as defined in the XML recommendation.
      * In other words, it essentially just controls the DTD validation.
      * (except the legacy two properties defined in JAXP 1.2.)
-     * </p>
      *
      * <p>
      * To use modern schema languages such as W3C XML Schema or
      * RELAX NG instead of DTD, you can configure your parser to be
      * a non-validating parser by leaving the {@link #setValidating(boolean)}
-     * method <code>false</code>, then use the {@link #setSchema(Schema)}
+     * method {@code false}, then use the {@link #setSchema(Schema)}
      * method to associate a schema to a parser.
-     * </p>
      *
      * @param validating true if the parser produced by this code will
      *                   validate documents as they are parsed; false otherwise.
@@ -260,24 +257,23 @@
     }
 
     /**
-     *
-     * <p>Sets the particular feature in the underlying implementation of
+     * Sets the particular feature in the underlying implementation of
      * org.xml.sax.XMLReader.
      * A list of the core features and properties can be found at
-     * <a href="http://www.saxproject.org/">http://www.saxproject.org/</a></p>
+     * <a href="http://www.saxproject.org/">http://www.saxproject.org/</a>
      *
      * <p>All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-     * When the feature is</p>
+     * When the feature is
      * <ul>
      *   <li>
-     *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits.
+     *     {@code true}: the implementation will limit XML processing to conform to implementation limits.
      *     Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources.
      *     If XML processing is limited for security reasons, it will be reported via a call to the registered
      *     {@link org.xml.sax.ErrorHandler#fatalError(SAXParseException exception)}.
-     *     See {@link SAXParser} <code>parse</code> methods for handler specification.
+     *     See {@link SAXParser} {@code parse} methods for handler specification.
      *   </li>
      *   <li>
-     *     When the feature is <code>false</code>, the implementation will processing XML according to the XML specifications without
+     *     When the feature is {@code false}, the implementation will processing XML according to the XML specifications without
      *     regard to possible implementation limits.
      *   </li>
      * </ul>
@@ -292,7 +288,7 @@
      * @throws SAXNotSupportedException When the underlying XMLReader
      *            recognizes the property name but doesn't support the
      *            property.
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+     * @throws NullPointerException If the {@code name} parameter is null.
      *
      * @see org.xml.sax.XMLReader#setFeature
      */
@@ -302,8 +298,8 @@
 
     /**
      *
-     * <p>Returns the particular property requested for in the underlying
-     * implementation of org.xml.sax.XMLReader.</p>
+     * Returns the particular property requested for in the underlying
+     * implementation of org.xml.sax.XMLReader.
      *
      * @param name The name of the property to be retrieved.
      *
@@ -347,12 +343,12 @@
     }
 
     /**
-     * <p>Set the {@link Schema} to be used by parsers created
-     * from this factory.</p>
+     * Set the {@link Schema} to be used by parsers created
+     * from this factory.
      *
      * <p>When a {@link Schema} is non-null, a parser will use a validator
      * created from it to validate documents before it passes information
-     * down to the application.</p>
+     * down to the application.
      *
      * <p>When warnings/errors/fatal errors are found by the validator, the parser must
      * handle them as if those errors were found by the parser itself.
@@ -364,29 +360,28 @@
      * <p>A validator may modify the SAX event stream (for example by
      * adding default values that were missing in documents), and a parser
      * is responsible to make sure that the application will receive
-     * those modified event stream.</p>
+     * those modified event stream.
      *
-     * <p>Initially, <code>null</code> is set as the {@link Schema}.</p>
+     * <p>Initially, {@code null} is set as the {@link Schema}.
      *
      * <p>This processing will take effect even if
-     * the {@link #isValidating()} method returns <code>false</code>.
+     * the {@link #isValidating()} method returns {@code false}.
      *
      * <p>It is an error to use
-     * the <code>http://java.sun.com/xml/jaxp/properties/schemaSource</code>
-     * property and/or the <code>http://java.sun.com/xml/jaxp/properties/schemaLanguage</code>
+     * the {@code http://java.sun.com/xml/jaxp/properties/schemaSource}
+     * property and/or the {@code http://java.sun.com/xml/jaxp/properties/schemaLanguage}
      * property in conjunction with a non-null {@link Schema} object.
      * Such configuration will cause a {@link SAXException}
-     * exception when those properties are set on a {@link SAXParser}.</p>
+     * exception when those properties are set on a {@link SAXParser}.
      *
-     * <h4>Note for implementors</h4>
+     * <h3>Note for implementors</h3>
      * <p>
      * A parser must be able to work with any {@link Schema}
      * implementation. However, parsers and schemas are allowed
      * to use implementation-specific custom mechanisms
      * as long as they yield the result described in the specification.
-     * </p>
      *
-     * @param schema <code>Schema</code> to use, <code>null</code> to remove a schema.
+     * @param schema {@code Schema} to use, {@code null} to remove a schema.
      *
      * @throws UnsupportedOperationException When implementation does not
      *   override this method
@@ -404,16 +399,16 @@
     }
 
     /**
-     * <p>Set state of XInclude processing.</p>
+     * Set state of XInclude processing.
      *
      * <p>If XInclude markup is found in the document instance, should it be
      * processed as specified in <a href="http://www.w3.org/TR/xinclude/">
-     * XML Inclusions (XInclude) Version 1.0</a>.</p>
+     * XML Inclusions (XInclude) Version 1.0</a>.
      *
-     * <p>XInclude processing defaults to <code>false</code>.</p>
+     * <p>XInclude processing defaults to {@code false}.
      *
-     * @param state Set XInclude processing to <code>true</code> or
-     *   <code>false</code>
+     * @param state Set XInclude processing to {@code true} or
+     *   {@code false}
      *
      * @throws UnsupportedOperationException When implementation does not
      *   override this method
@@ -429,7 +424,7 @@
     }
 
     /**
-     * <p>Get state of XInclude processing.</p>
+     * Get state of XInclude processing.
      *
      * @return current state of XInclude processing
      *
--- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -70,7 +70,6 @@
    * This static method creates a new factory instance.
    * This method uses the following ordered lookup procedure to determine
    * the XMLEventFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the javax.xml.stream.XMLEventFactory system property.
@@ -158,7 +157,6 @@
    * <p>
    * This method uses the following ordered lookup procedure to determine
    * the XMLEventFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the value of the system property identified by {@code factoryId}.
--- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -160,7 +160,7 @@
    * This static method creates a new factory instance.
    * This method uses the following ordered lookup procedure to determine
    * the XMLInputFactory implementation class to load:
-   * </p>
+   *
    * <ul>
    * <li>
    *   <p>Use the javax.xml.stream.XMLInputFactory system property.
@@ -201,12 +201,11 @@
    * <p>
    *   Once an application has obtained a reference to a XMLInputFactory it
    *   can use the factory to configure and obtain stream instances.
-   * </p>
    * <p>
    *   Note that this is a new method that replaces the deprecated newInstance() method.
    *     No changes in behavior are defined by this replacement method relative to
    *     the deprecated method.
-   * </p>
+   *
    * @throws FactoryConfigurationError in case of {@linkplain
    *   java.util.ServiceConfigurationError service configuration error} or if
    *   the implementation is not available or cannot be instantiated.
@@ -245,7 +244,6 @@
    * <p>
    * This method uses the following ordered lookup procedure to determine
    * the XMLInputFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   <p>
@@ -488,7 +486,6 @@
    * <p>
    * All implementations that implement JAXP 1.5 or newer are required to
    * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property.
-   * </p>
    * <ul>
    *   <li>
    *        <p>
@@ -497,7 +494,7 @@
    *        due to the restriction of this property, {@link javax.xml.stream.XMLStreamException}
    *        will be thrown by the {@link javax.xml.stream.XMLStreamReader#next()} or
    *        {@link javax.xml.stream.XMLEventReader#nextEvent()} method.
-   *        </p>
+   *
    *   </li>
    * </ul>
    * @param name The name of the property (may not be null)
--- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -54,17 +54,18 @@
  *        <th>Default Value</th>
  *        <th>Required</th>
  *              </tr>
- *         <tr><td>javax.xml.stream.isRepairingNamespaces</td><td>defaults prefixes on the output side</td><td>Boolean</td><td>False</td><td>Yes</td></tr>
+ *         <tr><td>javax.xml.stream.isRepairingNamespaces</td><td>defaults prefixes
+ *                 on the output side</td><td>Boolean</td><td>False</td><td>Yes</td></tr>
  *      </tbody>
  *   </table>
  *
- * <p>The following paragraphs describe the namespace and prefix repair algorithm:</p>
+ * <p>The following paragraphs describe the namespace and prefix repair algorithm:
  *
  * <p>The property can be set with the following code line:
- * <code>setProperty("javax.xml.stream.isRepairingNamespaces",new Boolean(true|false));</code></p>
+ * {@code setProperty("javax.xml.stream.isRepairingNamespaces", new Boolean(true|false));}
  *
  * <p>This property specifies that the writer default namespace prefix declarations.
- * The default value is false. </p>
+ * The default value is false.
  *
  * <p>If a writer isRepairingNamespaces it will create a namespace declaration
  * on the current StartElement for
@@ -74,11 +75,11 @@
  * has not been declared in a parent of the current StartElement it will be declared
  * on the current StartElement.  If the defaultNamespace is bound and in scope
  * and the default namespace matches the URI of the attribute or StartElement
- * QName no prefix will be assigned.</p>
+ * QName no prefix will be assigned.
  *
  * <p>If an element or attribute name has a prefix, but is not
  * bound to any namespace URI, then the prefix will be removed
- * during serialization.</p>
+ * during serialization.
  *
  * <p>If element and/or attribute names in the same start or
  * empty-element tag are bound to different namespace URIs and
@@ -86,20 +87,20 @@
  * occurring attribute retains the original prefix and the
  * following attributes have their prefixes replaced with a
  * new prefix that is bound to the namespace URIs of those
- * attributes. </p>
+ * attributes.
  *
  * <p>If an element or attribute name uses a prefix that is
  * bound to a different URI than that inherited from the
  * namespace context of the parent of that element and there
  * is no namespace declaration in the context of the current
- * element then such a namespace declaration is added. </p>
+ * element then such a namespace declaration is added.
  *
  * <p>If an element or attribute name is bound to a prefix and
  * there is a namespace declaration that binds that prefix
  * to a different URI then that namespace declaration is
  * either removed if the correct mapping is inherited from
  * the parent context of that element, or changed to the
- * namespace URI of the element or attribute using that prefix.</p>
+ * namespace URI of the element or attribute using that prefix.
  *
  * @version 1.2
  * @author Copyright (c) 2009, 2015 by Oracle Corporation. All Rights Reserved.
@@ -136,7 +137,6 @@
    * This static method creates a new factory instance. This method uses the
    * following ordered lookup procedure to determine the XMLOutputFactory
    * implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the javax.xml.stream.XMLOutputFactory system property.
@@ -177,6 +177,7 @@
    *   <p>
    *   Otherwise, the system-default implementation is returned.
    * </li>
+   * </ul>
    * <p>
    * Once an application has obtained a reference to a XMLOutputFactory it
    * can use the factory to configure and obtain stream instances.
@@ -222,7 +223,6 @@
    * <p>
    * This method uses the following ordered lookup procedure to determine
    * the XMLOutputFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the value of the system property identified by {@code factoryId}.
--- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLStreamReader.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLStreamReader.java	Mon Apr 27 09:17:39 2015 -0700
@@ -57,9 +57,9 @@
  * javax.xml.stream.notations and javax.xml.stream.entities.
  * When the current event is a DTD the following call will return a
  * list of Notations
- *  <code>List l = (List) getProperty("javax.xml.stream.notations");</code>
+ * {@code List l = (List) getProperty("javax.xml.stream.notations");}
  * The following call will return a list of entity declarations:
- * <code>List l = (List) getProperty("javax.xml.stream.entities");</code>
+ * {@code List l = (List) getProperty("javax.xml.stream.entities");}
  * These properties can only be accessed during a DTD event and
  * are defined to return null if the information is not available.
  *
@@ -97,12 +97,13 @@
  *            getElementText(), nextTag()
  *       </td>
  *     </tr>
+ *     <tr>
  *       <td> ATTRIBUTE  </td>
  *       <td> next(), nextTag()
  *            getAttributeXXX(), isAttributeSpecified(),
  *       </td>
  *     </tr>
- *     </tr>
+ *     <tr>
  *       <td> NAMESPACE  </td>
  *       <td> next(), nextTag()
  *            getNamespaceXXX()
@@ -184,7 +185,7 @@
    * If element content is empty (i.e. content is "") then no CHARACTERS event will be reported.
    *
    * <p>Given the following XML:<br>
-   * &lt;foo>&lt;!--description-->content text&lt;![CDATA[&lt;greeting>Hello&lt;/greeting>]]>other content&lt;/foo><br>
+   * {@code <foo><!--description-->content text<![CDATA[<greeting>Hello>/greeting>]]>other content>/foo>}<br>
    * The behavior of calling next() when being on foo will be:<br>
    * 1- the comment (COMMENT)<br>
    * 2- then the characters section (CHARACTERS)<br>
@@ -192,14 +193,14 @@
    * 4- then the next characters section (another CHARACTERS)<br>
    * 5- then the END_ELEMENT<br>
    *
-   * <p><b>NOTE:</b> empty element (such as &lt;tag/>) will be reported
+   * <p><b>NOTE:</b> empty element (such as {@code <tag/>}) will be reported
    *  with  two separate events: START_ELEMENT, END_ELEMENT - This preserves
-   *   parsing equivalency of empty element to &lt;tag>&lt;/tag>.
+   *   parsing equivalency of empty element to {@code <tag></tag>}.
    *
    * This method will throw an IllegalStateException if it is called after hasNext() returns false.
    * @see javax.xml.stream.events.XMLEvent
    * @return the integer code corresponding to the current parse event
-   * @throws NoSuchElementException if this is called when hasNext() returns false
+   * @throws java.util.NoSuchElementException if this is called when hasNext() returns false
    * @throws XMLStreamException  if there is an error processing the underlying XML source
    */
   public int next() throws XMLStreamException;
@@ -219,38 +220,39 @@
    * Reads the content of a text-only element, an exception is thrown if this is
    * not a text-only element.
    * Regardless of value of javax.xml.stream.isCoalescing this method always returns coalesced content.
-   * <br /> Precondition: the current event is START_ELEMENT.
-   * <br /> Postcondition: the current event is the corresponding END_ELEMENT.
+   * <br> Precondition: the current event is START_ELEMENT.
+   * <br> Postcondition: the current event is the corresponding END_ELEMENT.
    *
-   * <br />The method does the following (implementations are free to optimized
+   * <br>The method does the following (implementations are free to optimized
    * but must do equivalent processing):
    * <pre>
    * if(getEventType() != XMLStreamConstants.START_ELEMENT) {
-   * throw new XMLStreamException(
-   * "parser must be on START_ELEMENT to read next text", getLocation());
+   *     throw new XMLStreamException(
+   *     "parser must be on START_ELEMENT to read next text", getLocation());
    * }
+   *
    * int eventType = next();
    * StringBuffer content = new StringBuffer();
-   * while(eventType != XMLStreamConstants.END_ELEMENT ) {
-   * if(eventType == XMLStreamConstants.CHARACTERS
-   * || eventType == XMLStreamConstants.CDATA
-   * || eventType == XMLStreamConstants.SPACE
-   * || eventType == XMLStreamConstants.ENTITY_REFERENCE) {
-   * buf.append(getText());
-   * } else if(eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
-   * || eventType == XMLStreamConstants.COMMENT) {
-   * // skipping
-   * } else if(eventType == XMLStreamConstants.END_DOCUMENT) {
-   * throw new XMLStreamException(
-   * "unexpected end of document when reading element text content", this);
-   * } else if(eventType == XMLStreamConstants.START_ELEMENT) {
-   * throw new XMLStreamException(
-   * "element text content may not contain START_ELEMENT", getLocation());
-   * } else {
-   * throw new XMLStreamException(
-   * "Unexpected event type "+eventType, getLocation());
-   * }
-   * eventType = next();
+   * while(eventType != XMLStreamConstants.END_ELEMENT) {
+   *     if(eventType == XMLStreamConstants.CHARACTERS
+   *        || eventType == XMLStreamConstants.CDATA
+   *        || eventType == XMLStreamConstants.SPACE
+   *        || eventType == XMLStreamConstants.ENTITY_REFERENCE) {
+   *           buf.append(getText());
+   *     } else if(eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
+   *               || eventType == XMLStreamConstants.COMMENT) {
+   *         // skipping
+   *     } else if(eventType == XMLStreamConstants.END_DOCUMENT) {
+   *         throw new XMLStreamException(
+   *         "unexpected end of document when reading element text content", this);
+   *     } else if(eventType == XMLStreamConstants.START_ELEMENT) {
+   *         throw new XMLStreamException(
+   *         "element text content may not contain START_ELEMENT", getLocation());
+   *     } else {
+   *         throw new XMLStreamException(
+   *         "Unexpected event type "+eventType, getLocation());
+   *     }
+   *     eventType = next();
    * }
    * return buf.toString();
    * </pre>
@@ -268,33 +270,33 @@
    * are encountered, an exception is thrown. This method should
    * be used when processing element-only content seperated by white space.
    *
-   * <br /> Precondition: none
-   * <br /> Postcondition: the current event is START_ELEMENT or END_ELEMENT
+   * <br> Precondition: none
+   * <br> Postcondition: the current event is START_ELEMENT or END_ELEMENT
    * and cursor may have moved over any whitespace event.
    *
-   * <br />Essentially it does the following (implementations are free to optimized
+   * <br>Essentially it does the following (implementations are free to optimized
    * but must do equivalent processing):
-   * <pre>
+   * <pre> {@code
    * int eventType = next();
-   * while((eventType == XMLStreamConstants.CHARACTERS &amp;&amp; isWhiteSpace()) // skip whitespace
-   * || (eventType == XMLStreamConstants.CDATA &amp;&amp; isWhiteSpace())
+   * while((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace
+   * || (eventType == XMLStreamConstants.CDATA && isWhiteSpace())
    * // skip whitespace
    * || eventType == XMLStreamConstants.SPACE
    * || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
    * || eventType == XMLStreamConstants.COMMENT
    * ) {
-   * eventType = next();
+   *     eventType = next();
    * }
-   * if (eventType != XMLStreamConstants.START_ELEMENT &amp;&amp; eventType != XMLStreamConstants.END_ELEMENT) {
-   * throw new String XMLStreamException("expected start or end tag", getLocation());
+   * if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) {
+   *     throw new String XMLStreamException("expected start or end tag", getLocation());
    * }
-   * return eventType;
+   * return eventType; }
    * </pre>
    *
    * @return the event type of the element read (START_ELEMENT or END_ELEMENT)
    * @throws XMLStreamException if the current event is not white space, PROCESSING_INSTRUCTION,
    * START_ELEMENT or END_ELEMENT
-   * @throws NoSuchElementException if this is called when hasNext() returns false
+   * @throws java.util.NoSuchElementException if this is called when hasNext() returns false
    */
   public int nextTag() throws XMLStreamException;
 
@@ -309,7 +311,7 @@
   public boolean hasNext() throws XMLStreamException;
 
   /**
-   * Frees any resources associated with this Reader.  This method does not close the
+   * Frees any resources associated with this Reader. This method does not close the
    * underlying input source.
    * @throws XMLStreamException if there are errors freeing associated resources
    */
@@ -542,7 +544,7 @@
    * If the number of characters actually copied is less than the "length", then there is no more text.
    * Otherwise, subsequent calls need to be made until all text has been retrieved. For example:
    *
-   *<code>
+   * <pre>{@code
    * int length = 1024;
    * char[] myBuffer = new char[ length ];
    *
@@ -553,7 +555,7 @@
    *   if (nCopied < length)
    *       break;
    * }
-   * </code>
+   * } </pre>
    * XMLStreamException may be thrown if there are any XML errors in the underlying source.
    * The "targetStart" argument must be greater than or equal to 0 and less than the length of "target",
    * Length must be greater than 0 and "targetStart + length" must be less than or equal to length of "target".
@@ -564,8 +566,8 @@
    * @param length the number of characters to copy
    * @return the number of characters actually copied
    * @throws XMLStreamException if the underlying XML source is not well-formed
-   * @throws IndexOutOfBoundsException if targetStart < 0 or > than the length of target
-   * @throws IndexOutOfBoundsException if length < 0 or targetStart + length > length of target
+   * @throws IndexOutOfBoundsException if targetStart {@literal <} 0 or {@literal >} than the length of target
+   * @throws IndexOutOfBoundsException if length {@literal <} 0 or targetStart + length {@literal >} length of target
    * @throws UnsupportedOperationException if this method is not supported
    * @throws NullPointerException is if target is null
    */
--- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -33,9 +33,9 @@
 /**
  * The XMLStreamWriter interface specifies how to write XML.  The XMLStreamWriter  does
  * not perform well formedness checking on its input.  However
- * the writeCharacters method is required to escape &amp; , &lt; and &gt;
+ * the writeCharacters method is required to escape {@literal &, < and >}
  * For attribute values the writeAttribute method will escape the
- * above characters plus &quot; to ensure that all character content
+ * above characters plus {@literal "} to ensure that all character content
  * and attribute values are well formed.
  *
  * Each NAMESPACE
@@ -44,12 +44,12 @@
  * <table border="1" cellpadding="2" cellspacing="0">
  *     <thead>
  *         <tr>
- *             <th colspan="5">XML Namespaces, <code>javax.xml.stream.isRepairingNamespaces</code> and write method behaviour</th>
+ *             <th colspan="5">XML Namespaces, {@code javax.xml.stream.isRepairingNamespaces} and write method behaviour</th>
  *         </tr>
  *         <tr>
  *             <th>Method</th> <!-- method -->
- *             <th colspan="2"><code>isRepairingNamespaces</code> == true</th>
- *             <th colspan="2"><code>isRepairingNamespaces</code> == false</th>
+ *             <th colspan="2">{@code isRepairingNamespaces} == true</th>
+ *             <th colspan="2">{@code isRepairingNamespaces} == false</th>
  *         </tr>
  *         <tr>
  *             <th></th> <!-- method -->
@@ -62,7 +62,7 @@
  *
  *     <tbody>
  *         <tr>
- *             <th><code>writeAttribute(namespaceURI, localName, value)</code></th>
+ *             <th>{@code writeAttribute(namespaceURI, localName, value)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td>
  *                 <!-- namespaceURI bound -->
@@ -79,19 +79,19 @@
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 <code>XMLStreamException</code>
+ *                 {@code XMLStreamException}
  *             </td>
  *         </tr>
  *
  *         <tr>
- *             <th><code>writeAttribute(prefix, namespaceURI, localName, value)</code></th>
+ *             <th>{@code writeAttribute(prefix, namespaceURI, localName, value)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 prefix:localName="value"&nbsp;<sup>[1]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
+ *                 bound to same prefix:<br>
+ *                 prefix:localName="value"&nbsp;<sup>[1]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
  *                 xmlns:{generated}="namespaceURI" {generated}:localName="value"
  *             </td>
  *             <td>
@@ -101,11 +101,11 @@
  *             <!-- isRepairingNamespaces == false -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 prefix:localName="value"&nbsp;<sup>[1][2]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
- *                 <code>XMLStreamException</code><sup>[2]</sup>
+ *                 bound to same prefix:<br>
+ *                 prefix:localName="value"&nbsp;<sup>[1][2]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
+ *                 {@code XMLStreamException}<sup>[2]</sup>
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
@@ -114,58 +114,58 @@
  *         </tr>
  *
  *         <tr>
- *             <th><code>writeStartElement(namespaceURI, localName)</code><br />
- *                 <br />
- *                 <code>writeEmptyElement(namespaceURI, localName)</code></th>
+ *             <th>{@code writeStartElement(namespaceURI, localName)}<br>
+ *                 <br>
+ *                 {@code writeEmptyElement(namespaceURI, localName)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td >
  *                 <!-- namespaceURI bound -->
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup>
+ *                 {@code <prefix:localName>}&nbsp;<sup>[1]</sup>
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 &lt;{generated}:localName xmlns:{generated}="namespaceURI"&gt;
+ *                 {@code <{generated}:localName xmlns:{generated}="namespaceURI">}
  *             </td>
  *             <!-- isRepairingNamespaces == false -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup>
+ *                 {@code prefix:localName>}&nbsp;<sup>[1]</sup>
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 <code>XMLStreamException</code>
+ *                 {@code XMLStreamException}
  *             </td>
  *         </tr>
  *
  *         <tr>
- *             <th><code>writeStartElement(prefix, localName, namespaceURI)</code><br />
- *                 <br />
- *                 <code>writeEmptyElement(prefix, localName, namespaceURI)</code></th>
+ *             <th>{@code writeStartElement(prefix, localName, namespaceURI)}<br>
+ *                 <br>
+ *                 {@code writeEmptyElement(prefix, localName, namespaceURI)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
- *                 &lt;{generated}:localName xmlns:{generated}="namespaceURI"&gt;
+ *                 bound to same prefix:<br>
+ *                 {@code <prefix:localName>}&nbsp;<sup>[1]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
+ *                 {@code <{generated}:localName xmlns:{generated}="namespaceURI">}
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 &lt;prefix:localName xmlns:prefix="namespaceURI"&gt;&nbsp;<sup>[4]</sup>
+ *                 {@code <prefix:localName xmlns:prefix="namespaceURI">}&nbsp;<sup>[4]</sup>
  *             </td>
  *             <!-- isRepairingNamespaces == false -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
- *                 <code>XMLStreamException</code>
+ *                 bound to same prefix:<br>
+ *                 {@code <prefix:localName>}&nbsp;<sup>[1]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
+ *                 {@code XMLStreamException}
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 &lt;prefix:localName&gt;&nbsp;
+ *                 {@code <prefix:localName>}&nbsp;
  *             </td>
  *         </tr>
  *     </tbody>
@@ -175,10 +175,14 @@
  *                 Notes:
  *                 <ul>
  *                     <li>[1] if namespaceURI == default Namespace URI, then no prefix is written</li>
- *                     <li>[2] if prefix == "" || null && namespaceURI == "", then no prefix or Namespace declaration is generated or written</li>
+ *                     <li>[2] if prefix == "" || null {@literal &&} namespaceURI == "", then
+ *                        no prefix or Namespace declaration is generated or written</li>
  *                     <li>[3] if prefix == "" || null, then a prefix is randomly generated</li>
- *                     <li>[4] if prefix == "" || null, then it is treated as the default Namespace and no prefix is generated or written, an xmlns declaration is generated and written if the namespaceURI is unbound</li>
- *                     <li>[5] if prefix == "" || null, then it is treated as an invalid attempt to define the default Namespace and an XMLStreamException is thrown</li>
+ *                     <li>[4] if prefix == "" || null, then it is treated as the default Namespace and
+ *                        no prefix is generated or written, an xmlns declaration is generated
+ *                        and written if the namespaceURI is unbound</li>
+ *                     <li>[5] if prefix == "" || null, then it is treated as an invalid attempt to
+ *                        define the default Namespace and an XMLStreamException is thrown</li>
  *                 </ul>
  *             </td>
  *         </tr>
--- a/jaxp/src/java.xml/share/classes/javax/xml/transform/Result.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/transform/Result.java	Mon Apr 27 09:17:39 2015 -0700
@@ -27,7 +27,7 @@
 
 /**
  * <p>An object that implements this interface contains the information
- * needed to build a transformation result tree.</p>
+ * needed to build a transformation result tree.
  *
  * @author <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @since 1.4
@@ -38,7 +38,7 @@
      * The name of the processing instruction that is sent if the
      * result tree disables output escaping.
      *
-     * <p>Normally, result tree serialization escapes & and < (and
+     * <p>Normally, result tree serialization escapes{@literal & and <} (and
      * possibly other characters) when outputting text nodes.
      * This ensures that the output is well-formed XML. However,
      * it is sometimes convenient to be able to produce output that is
@@ -46,10 +46,10 @@
      * the output may include ill-formed sections that will
      * be transformed into well-formed XML by a subsequent non-XML aware
      * process. If a processing instruction is sent with this name,
-     * serialization should be output without any escaping. </p>
+     * serialization should be output without any escaping.
      *
      * <p>Result DOM trees may also have PI_DISABLE_OUTPUT_ESCAPING and
-     * PI_ENABLE_OUTPUT_ESCAPING inserted into the tree.</p>
+     * PI_ENABLE_OUTPUT_ESCAPING inserted into the tree.
      *
      * @see <a href="http://www.w3.org/TR/xslt#disable-output-escaping">disable-output-escaping in XSLT Specification</a>
      */
@@ -71,7 +71,7 @@
      *
      * <p>If the Result is not to be written to a file, the system identifier is optional.
      * The application may still want to provide one, however, for use in error messages
-     * and warnings, or to resolve relative output identifiers.</p>
+     * and warnings, or to resolve relative output identifiers.
      *
      * @param systemId The system identifier as a URI string.
      */
--- a/jaxp/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -28,13 +28,13 @@
 /**
  * <p>A TransformerFactory instance can be used to create
  * {@link javax.xml.transform.Transformer} and
- * {@link javax.xml.transform.Templates} objects.</p>
+ * {@link javax.xml.transform.Templates} objects.
  *
  * <p>The system property that determines which Factory implementation
- * to create is named <code>"javax.xml.transform.TransformerFactory"</code>.
+ * to create is named {@code "javax.xml.transform.TransformerFactory"}.
  * This property names a concrete subclass of the
  * {@code TransformerFactory} abstract class. If the property is not
- * defined, a platform default is be used.</p>
+ * defined, a platform default is be used.
  *
  * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @author <a href="mailto:Neeraj.Bajaj@sun.com">Neeraj Bajaj</a>
@@ -51,14 +51,11 @@
 
 
     /**
-     * <p>
      * Obtain a new instance of a {@code TransformerFactory}.
      * This static method creates a new factory instance.
      * <p>
      * This method uses the following ordered lookup procedure to determine
-     * the {@code TransformerFactory} implementation class to
-     * load:
-     * <p>
+     * the {@code TransformerFactory} implementation class to load:
      * <ul>
      * <li>
      * Use the {@code javax.xml.transform.TransformerFactory} system
@@ -118,34 +115,34 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code TransformerFactory} from factory class name.
+     * Obtain a new instance of a {@code TransformerFactory} from factory class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <p>Once an application has obtained a reference to a
      * {@code TransformerFactory} it can use the factory to configure
-     * and obtain transformer instances.</p>
+     * and obtain transformer instances.
      *
      * <h2>Tip for Trouble-shooting</h2>
-     * <p>Setting the <code>jaxp.debug</code> system property will cause
+     * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to <code>System.err</code> about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
      * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.transform.TransformerFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return new TransformerFactory instance, never null.
      *
      * @throws TransformerFactoryConfigurationError
-     *                    if <code>factoryClassName</code> is <code>null</code>, or
+     *                    if {@code factoryClassName} is {@code null}, or
      *                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -160,29 +157,29 @@
                     factoryClassName, classLoader, false, false);
     }
     /**
-     * <p>Process the <code>Source</code> into a <code>Transformer</code>
-     * <code>Object</code>.  The <code>Source</code> is an XSLT document that
+     * Process the {@code Source} into a {@code Transformer}
+     * {@code Object}.  The {@code Source} is an XSLT document that
      * conforms to <a href="http://www.w3.org/TR/xslt">
      * XSL Transformations (XSLT) Version 1.0</a>.  Care must
-     * be taken not to use this <code>Transformer</code> in multiple
-     * <code>Thread</code>s running concurrently.
-     * Different <code>TransformerFactories</code> can be used concurrently by
-     * different <code>Thread</code>s.</p>
+     * be taken not to use this {@code Transformer} in multiple
+     * {@code Thread}s running concurrently.
+     * Different {@code TransformerFactories} can be used concurrently by
+     * different {@code Thread}s.
      *
-     * @param source <code>Source </code> of XSLT document used to create
-     *   <code>Transformer</code>.
-     *   Examples of XML <code>Source</code>s include
+     * @param source {@code Source } of XSLT document used to create
+     *   {@code Transformer}.
+     *   Examples of XML {@code Source}s include
      *   {@link javax.xml.transform.dom.DOMSource DOMSource},
      *   {@link javax.xml.transform.sax.SAXSource SAXSource}, and
      *   {@link javax.xml.transform.stream.StreamSource StreamSource}.
      *
-     * @return A <code>Transformer</code> object that may be used to perform
-     *   a transformation in a single <code>Thread</code>, never
-     *   <code>null</code>.
+     * @return A {@code Transformer} object that may be used to perform
+     *   a transformation in a single {@code Thread}, never
+     *   {@code null}.
      *
      * @throws TransformerConfigurationException Thrown if there are errors when
-     *    parsing the <code>Source</code> or it is not possible to create a
-     *   <code>Transformer</code> instance.
+     *    parsing the {@code Source} or it is not possible to create a
+     *   {@code Transformer} instance.
      *
      * @see <a href="http://www.w3.org/TR/xslt">
      *   XSL Transformations (XSLT) Version 1.0</a>
@@ -191,15 +188,15 @@
         throws TransformerConfigurationException;
 
     /**
-     * <p>Create a new <code>Transformer</code> that performs a copy
-     * of the <code>Source</code> to the <code>Result</code>.
-     * i.e. the "<em>identity transform</em>".</p>
+     * Create a new {@code Transformer} that performs a copy
+     * of the {@code Source} to the {@code Result}.
+     * i.e. the "<em>identity transform</em>".
      *
      * @return A Transformer object that may be used to perform a transformation
      * in a single thread, never null.
      *
      * @throws TransformerConfigurationException When it is not
-     *   possible to create a <code>Transformer</code> instance.
+     *   possible to create a {@code Transformer} instance.
      */
     public abstract Transformer newTransformer()
         throws TransformerConfigurationException;
@@ -215,7 +212,7 @@
      * @param source An object that holds a URL, input stream, etc.
      *
      * @return A Templates object capable of being used for transformation
-     *   purposes, never <code>null</code>.
+     *   purposes, never {@code null}.
      *
      * @throws TransformerConfigurationException When parsing to
      *   construct the Templates object fails.
@@ -224,13 +221,13 @@
         throws TransformerConfigurationException;
 
     /**
-     * <p>Get the stylesheet specification(s) associated with the
-     * XML <code>Source</code> document via the
+     * Get the stylesheet specification(s) associated with the
+     * XML {@code Source} document via the
      * <a href="http://www.w3.org/TR/xml-stylesheet/">
      * xml-stylesheet processing instruction</a> that match the given criteria.
      * Note that it is possible to return several stylesheets, in which case
      * they are applied as if they were a list of imports or cascades in a
-     * single stylesheet.</p>
+     * single stylesheet.
      *
      * @param source The XML source document.
      * @param media The media attribute to be matched.  May be null, in which
@@ -238,12 +235,12 @@
      * @param title The value of the title attribute to match.  May be null.
      * @param charset The value of the charset attribute to match.  May be null.
      *
-     * @return A <code>Source</code> <code>Object</code> suitable for passing
+     * @return A {@code Source} {@code Object} suitable for passing
      *   to the {@code TransformerFactory}.
      *
-     * @throws TransformerConfigurationException An <code>Exception</code>
+     * @throws TransformerConfigurationException An {@code Exception}
      *   is thrown if an error occurings during parsing of the
-     *   <code>source</code>.
+     *   {@code source}.
      *
      * @see <a href="http://www.w3.org/TR/xml-stylesheet/">
      *   Associating Style Sheets with XML documents Version 1.0</a>
@@ -275,22 +272,21 @@
     //======= CONFIGURATION METHODS =======
 
         /**
-         * <p>Set a feature for this {@code TransformerFactory} and <code>Transformer</code>s
-         * or <code>Template</code>s created by this factory.</p>
+         * <p>Set a feature for this {@code TransformerFactory} and {@code Transformer}s
+         * or {@code Template}s created by this factory.
          *
          * <p>
          * Feature names are fully qualified {@link java.net.URI}s.
          * Implementations may define their own features.
          * An {@link TransformerConfigurationException} is thrown if this {@code TransformerFactory} or the
-         * <code>Transformer</code>s or <code>Template</code>s it creates cannot support the feature.
+         * {@code Transformer}s or {@code Template}s it creates cannot support the feature.
          * It is possible for an {@code TransformerFactory} to expose a feature value but be unable to change its state.
-         * </p>
          *
          * <p>All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-         * When the feature is:</p>
+         * When the feature is:
          * <ul>
          *   <li>
-         *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits
+         *     {@code true}: the implementation will limit XML processing to conform to implementation limits
          *     and behave in a secure fashion as defined by the implementation.
          *     Examples include resolving user defined style sheets and functions.
          *     If XML processing is limited for security reasons, it will be reported via a call to the registered
@@ -298,17 +294,17 @@
          *     See {@link  #setErrorListener(ErrorListener listener)}.
          *   </li>
          *   <li>
-         *     <code>false</code>: the implementation will processing XML according to the XML specifications without
+         *     {@code false}: the implementation will processing XML according to the XML specifications without
          *     regard to possible implementation limits.
          *   </li>
          * </ul>
          *
          * @param name Feature name.
-         * @param value Is feature state <code>true</code> or <code>false</code>.
+         * @param value Is feature state {@code true} or {@code false}.
          *
          * @throws TransformerConfigurationException if this {@code TransformerFactory}
-         *   or the <code>Transformer</code>s or <code>Template</code>s it creates cannot support this feature.
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+         *   or the {@code Transformer}s or {@code Template}s it creates cannot support this feature.
+     * @throws NullPointerException If the {@code name} parameter is null.
          */
         public abstract void setFeature(String name, boolean value)
                 throws TransformerConfigurationException;
@@ -319,16 +315,15 @@
          * <p>
          * Feature names are fully qualified {@link java.net.URI}s.
          * Implementations may define their own features.
-         * <code>false</code> is returned if this {@code TransformerFactory} or the
-         * <code>Transformer</code>s or <code>Template</code>s it creates cannot support the feature.
+         * {@code false} is returned if this {@code TransformerFactory} or the
+         * {@code Transformer}s or {@code Template}s it creates cannot support the feature.
          * It is possible for an {@code TransformerFactory} to expose a feature value but be unable to change its state.
-         * </p>
          *
          * @param name Feature name.
          *
-     * @return The current state of the feature, <code>true</code> or <code>false</code>.
+     * @return The current state of the feature, {@code true} or {@code false}.
      *
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+     * @throws NullPointerException If the {@code name} parameter is null.
      */
     public abstract boolean getFeature(String name);
 
@@ -336,13 +331,13 @@
      * Allows the user to set specific attributes on the underlying
      * implementation.  An attribute in this context is defined to
      * be an option that the implementation provides.
-     * An <code>IllegalArgumentException</code> is thrown if the underlying
+     * An {@code IllegalArgumentException} is thrown if the underlying
      * implementation doesn't recognize the attribute.
      * <p>
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD}  and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_STYLESHEET} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
      *      <p>
@@ -351,7 +346,7 @@
      *      If access is denied during transformation due to the restriction of this property,
      *      {@link javax.xml.transform.TransformerException} will be thrown by
      *      {@link javax.xml.transform.Transformer#transform(Source, Result)}.
-     *      </p>
+     *
      *      <p>
      *      Access to external DTDs in the stylesheet is restricted to the protocols
      *      specified by the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property.
@@ -359,7 +354,7 @@
      *      restriction of this property,
      *      {@link javax.xml.transform.TransformerConfigurationException} will be thrown
      *      by the {@link #newTransformer(Source)} method.
-     *      </p>
+     *
      *      <p>
      *      Access to external reference set by the stylesheet processing instruction,
      *      Import and Include element is restricted to the protocols specified by the
@@ -368,14 +363,14 @@
      *      restriction of this property,
      *      {@link javax.xml.transform.TransformerConfigurationException} will be thrown
      *      by the {@link #newTransformer(Source)} method.
-     *      </p>
+     *
      *      <p>
      *      Access to external document through XSLT document function is restricted
      *      to the protocols specified by the property. If access is denied during
      *      the transformation due to the restriction of this property,
      *      {@link javax.xml.transform.TransformerException} will be thrown by the
      *      {@link javax.xml.transform.Transformer#transform(Source, Result)} method.
-     *      </p>
+     *
      *   </li>
      * </ul>
      *
@@ -390,7 +385,7 @@
     /**
      * Allows the user to retrieve specific attributes on the underlying
      * implementation.
-     * An <code>IllegalArgumentException</code> is thrown if the underlying
+     * An {@code IllegalArgumentException} is thrown if the underlying
      * implementation doesn't recognize the attribute.
      *
      * @param name The name of the attribute.
@@ -406,13 +401,13 @@
      * Set the error event listener for the TransformerFactory, which
      * is used for the processing of transformation instructions,
      * and not for the transformation itself.
-     * An <code>IllegalArgumentException</code> is thrown if the
-     * <code>ErrorListener</code> listener is <code>null</code>.
+     * An {@code IllegalArgumentException} is thrown if the
+     * {@code ErrorListener} listener is {@code null}.
      *
      * @param listener The new error listener.
      *
-     * @throws IllegalArgumentException When <code>listener</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code listener} is
+     *   {@code null}
      */
     public abstract void setErrorListener(ErrorListener listener);
 
--- a/jaxp/src/java.xml/share/classes/javax/xml/transform/dom/DOMResult.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/transform/dom/DOMResult.java	Mon Apr 27 09:17:39 2015 -0700
@@ -29,29 +29,32 @@
 import org.w3c.dom.Node;
 
 /**
- * <p>Acts as a holder for a transformation result tree in the form of a Document Object Model (DOM) tree.</p>
+ * Acts as a holder for a transformation result tree
+ * in the form of a Document Object Model (DOM) tree.
  *
- * <p>If no output DOM source is set, the transformation will create a Document node as the holder for the result of the transformation,
- * which may be retrieved with {@link #getNode()}.</p>
+ * <p>If no output DOM source is set, the transformation will create
+ * a Document node as the holder for the result of the transformation,
+ * which may be retrieved with {@link #getNode()}.
  *
  * @author <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @since 1.4
  */
 public class DOMResult implements Result {
 
-    /** <p>If {@link javax.xml.transform.TransformerFactory#getFeature}
-     * returns <code>true</code> when passed this value as an argument,
-     * the <code>Transformer</code> supports <code>Result</code> output of this type.</p>
+    /**
+     * If {@link javax.xml.transform.TransformerFactory#getFeature}
+     * returns {@code true} when passed this value as an argument,
+     * the {@code Transformer} supports {@code Result} output of this type.
      */
     public static final String FEATURE = "http://javax.xml.transform.dom.DOMResult/feature";
 
     /**
-     * <p>Zero-argument default constructor.</p>
+     * Zero-argument default constructor.
      *
-     * <p><code>node</code>,
-     * <code>siblingNode</code> and
-     * <code>systemId</code>
-     * will be set to <code>null</code>.</p>
+     * <p>{@code node},
+     * {@code siblingNode} and
+     * {@code systemId}
+     * will be set to {@code null}.
      */
     public DOMResult() {
         setNode(null);
@@ -60,17 +63,17 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target.</p>
+     * Use a DOM node to create a new output target.
      *
      * <p>In practice, the node should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p><code>siblingNode</code> and
-     * <code>systemId</code>
-     * will be set to <code>null</code>.</p>
+     * <p>{@code siblingNode} and
+     * {@code systemId}
+     * will be set to {@code null}.
      *
      * @param node The DOM node that will contain the result tree.
      */
@@ -81,15 +84,15 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target with the specified System ID.<p>
+     * Use a DOM node to create a new output target with the specified System ID.
      *
      * <p>In practice, the node should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p><code>siblingNode</code> will be set to <code>null</code>.</p>
+     * <p>{@code siblingNode} will be set to {@code null}.
      *
      * @param node The DOM node that will contain the result tree.
      * @param systemId The system identifier which may be used in association with this node.
@@ -101,32 +104,33 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before.</p>
+     * Use a DOM node to create a new output target specifying
+     * the child node where the result nodes should be inserted before.
      *
-     * <p>In practice, <code>node</code> and <code>nextSibling</code> should be
+     * <p>In practice, {@code node} and {@code nextSibling} should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p>Use <code>nextSibling</code> to specify the child node
+     * <p>Use {@code nextSibling} to specify the child node
      * where the result nodes should be inserted before.
-     * If <code>nextSibling</code> is not a sibling of <code>node</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>node</code> is <code>null</code> and <code>nextSibling</code> is not <code>null</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>nextSibling</code> is <code>null</code>,
+     * If {@code nextSibling} is not a sibling of {@code node},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code node} is {@code null} and {@code nextSibling} is not {@code null},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code nextSibling} is {@code null},
      * then the behavior is the same as calling {@link #DOMResult(Node node)},
-     * i.e. append the result nodes as the last child of the specified <code>node</code>.</p>
+     * i.e. append the result nodes as the last child of the specified {@code node}.
      *
-     * <p><code>systemId</code> will be set to <code>null</code>.</p>
+     * <p>{@code systemId} will be set to {@code null}.
      *
      * @param node The DOM node that will contain the result tree.
      * @param nextSibling The child node where the result nodes should be inserted before.
      *
-     * @throws IllegalArgumentException If <code>nextSibling</code> is not a sibling of <code>node</code> or
-     *   <code>node</code> is <code>null</code> and <code>nextSibling</code>
-     *   is not <code>null</code>.
+     * @throws IllegalArgumentException If {@code nextSibling} is not a sibling of {@code node} or
+     *   {@code node} is {@code null} and {@code nextSibling}
+     *   is not {@code null}.
      *
      * @since 1.5
      */
@@ -151,33 +155,35 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before and
-     * the specified System ID.</p>
+     * Use a DOM node to create a new output target specifying the child
+     * node where the result nodes should be inserted before and
+     * the specified System ID.
      *
-     * <p>In practice, <code>node</code> and <code>nextSibling</code> should be
+     * <p>In practice, {@code node} and {@code nextSibling} should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or a
      * {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p>Use <code>nextSibling</code> to specify the child node
+     * <p>Use {@code nextSibling} to specify the child node
      * where the result nodes should be inserted before.
-     * If <code>nextSibling</code> is not a sibling of <code>node</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>node</code> is <code>null</code> and <code>nextSibling</code> is not <code>null</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>nextSibling</code> is <code>null</code>,
+     * If {@code nextSibling} is not a sibling of {@code node},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code node} is {@code null} and {@code nextSibling} is not {@code null},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code nextSibling} is {@code null},
      * then the behavior is the same as calling {@link #DOMResult(Node node, String systemId)},
-     * i.e. append the result nodes as the last child of the specified node and use the specified System ID.</p>
+     * i.e. append the result nodes as the last child of the specified
+     * node and use the specified System ID.
      *
      * @param node The DOM node that will contain the result tree.
      * @param nextSibling The child node where the result nodes should be inserted before.
      * @param systemId The system identifier which may be used in association with this node.
      *
-     * @throws IllegalArgumentException If <code>nextSibling</code> is not a
-     *   sibling of <code>node</code> or
-     *   <code>node</code> is <code>null</code> and <code>nextSibling</code>
-     *   is not <code>null</code>.
+     * @throws IllegalArgumentException If {@code nextSibling} is not a
+     *   sibling of {@code node} or
+     *   {@code node} is {@code null} and {@code nextSibling}
+     *   is not {@code null}.
      *
      * @since 1.5
      */
@@ -202,27 +208,27 @@
     }
 
     /**
-     * <p>Set the node that will contain the result DOM tree.<p>
+     * Set the node that will contain the result DOM tree.
      *
      * <p>In practice, the node should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p>An <code>IllegalStateException</code> is thrown if
-     * <code>nextSibling</code> is not <code>null</code> and
-     * <code>node</code> is not a parent of <code>nextSibling</code>.
-     * An <code>IllegalStateException</code> is thrown if <code>node</code> is <code>null</code> and
-     * <code>nextSibling</code> is not <code>null</code>.</p>
+     * <p>An {@code IllegalStateException} is thrown if
+     * {@code nextSibling} is not {@code null} and
+     * {@code node} is not a parent of {@code nextSibling}.
+     * An {@code IllegalStateException} is thrown if {@code node} is {@code null} and
+     * {@code nextSibling} is not {@code null}.
      *
      * @param node The node to which the transformation will be appended.
      *
-     * @throws IllegalStateException If <code>nextSibling</code> is not
-     *   <code>null</code> and
-     *   <code>nextSibling</code> is not a child of <code>node</code> or
-     *   <code>node</code> is <code>null</code> and
-     *   <code>nextSibling</code> is not <code>null</code>.
+     * @throws IllegalStateException If {@code nextSibling} is not
+     *   {@code null} and
+     *   {@code nextSibling} is not a child of {@code node} or
+     *   {@code node} is {@code null} and
+     *   {@code nextSibling} is not {@code null}.
      */
     public void setNode(Node node) {
         // does the corrent parent/child relationship exist?
@@ -242,7 +248,7 @@
     }
 
     /**
-     * <p>Get the node that will contain the result DOM tree.</p>
+     * Get the node that will contain the result DOM tree.
      *
      * <p>If no node was set via
      * {@link #DOMResult(Node node)},
@@ -251,7 +257,7 @@
      * {@link #DOMResult(Node node, Node nextSibling, String systemId)} or
      * {@link #setNode(Node node)},
      * then the node will be set by the transformation, and may be obtained from this method once the transformation is complete.
-     * Calling this method before the transformation will return <code>null</code>.</p>
+     * Calling this method before the transformation will return {@code null}.
      *
      * @return The node to which the transformation will be appended.
      */
@@ -260,24 +266,24 @@
     }
 
     /**
-     * <p>Set the child node before which the result nodes will be inserted.</p>
+     * Set the child node before which the result nodes will be inserted.
      *
-     * <p>Use <code>nextSibling</code> to specify the child node
+     * <p>Use {@code nextSibling} to specify the child node
      * before which the result nodes should be inserted.
-     * If <code>nextSibling</code> is not a descendant of <code>node</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>node</code> is <code>null</code> and <code>nextSibling</code> is not <code>null</code>,
-     * then an <code>IllegalStateException</code> is thrown.
-     * If <code>nextSibling</code> is <code>null</code>,
+     * If {@code nextSibling} is not a descendant of {@code node},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code node} is {@code null} and {@code nextSibling} is not {@code null},
+     * then an {@code IllegalStateException} is thrown.
+     * If {@code nextSibling} is {@code null},
      * then the behavior is the same as calling {@link #DOMResult(Node node)},
-     * i.e. append the result nodes as the last child of the specified <code>node</code>.</p>
+     * i.e. append the result nodes as the last child of the specified {@code node}.
      *
      * @param nextSibling The child node before which the result nodes will be inserted.
      *
-     * @throws IllegalArgumentException If <code>nextSibling</code> is not a
-     *   descendant of <code>node</code>.
-     * @throws IllegalStateException If <code>node</code> is <code>null</code>
-     *   and <code>nextSibling</code> is not <code>null</code>.
+     * @throws IllegalArgumentException If {@code nextSibling} is not a
+     *   descendant of {@code node}.
+     * @throws IllegalStateException If {@code node} is {@code null}
+     *   and {@code nextSibling} is not {@code null}.
      *
      * @since 1.5
      */
@@ -300,13 +306,13 @@
     }
 
     /**
-     * <p>Get the child node before which the result nodes will be inserted.</p>
+     * Get the child node before which the result nodes will be inserted.
      *
      * <p>If no node was set via
      * {@link #DOMResult(Node node, Node nextSibling)},
      * {@link #DOMResult(Node node, Node nextSibling, String systemId)} or
      * {@link #setNextSibling(Node nextSibling)},
-     * then <code>null</code> will be returned.</p>
+     * then {@code null} will be returned.
      *
      * @return The child node before which the result nodes will be inserted.
      *
@@ -317,7 +323,7 @@
     }
 
     /**
-     * <p>Set the systemId that may be used in association with the node.</p>
+     * Set the systemId that may be used in association with the node.
      *
      * @param systemId The system identifier as a URI string.
      */
@@ -326,13 +332,13 @@
     }
 
     /**
-     * <p>Get the System Identifier.</p>
+     * Get the System Identifier.
      *
      * <p>If no System ID was set via
      * {@link #DOMResult(Node node, String systemId)},
      * {@link #DOMResult(Node node, Node nextSibling, String systemId)} or
      * {@link #setSystemId(String systemId)},
-     * then <code>null</code> will be returned.</p>
+     * then {@code null} will be returned.
      *
      * @return The system identifier.
      */
@@ -345,19 +351,19 @@
     //////////////////////////////////////////////////////////////////////
 
     /**
-     * <p>The node to which the transformation will be appended.</p>
+     * The node to which the transformation will be appended.
      */
     private Node node = null;
 
     /**
-     * <p>The child node before which the result nodes will be inserted.</p>
+     * The child node before which the result nodes will be inserted.
      *
      * @since 1.5
      */
     private Node nextSibling = null;
 
     /**
-     * <p>The System ID that may be used in association with the node.</p>
+     * The System ID that may be used in association with the node.
      */
     private String systemId = null;
 }
--- a/jaxp/src/java.xml/share/classes/javax/xml/transform/stax/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/transform/stax/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -65,9 +65,6 @@
 			<li>@see XMLEventReader</li>
 		</ul>
 		
-		<p>
-			@since 1.6
-		</p>
-
+		@since 1.6
 	</body>
 </html>
--- a/jaxp/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -37,7 +37,7 @@
 import org.xml.sax.SAXParseException;
 
 /**
- * Factory that creates {@link Schema} objects&#x2E; Entry-point to
+ * Factory that creates {@link Schema} objects. Entry-point to
  * the validation API.
  *
  * <p>
@@ -49,12 +49,12 @@
  * it is the application's responsibility to ensure that at most
  * one thread is using a {@link SchemaFactory} object at any
  * given moment. Implementations are encouraged to mark methods
- * as <code>synchronized</code> to protect themselves from broken clients.
+ * as {@code synchronized} to protect themselves from broken clients.
  *
  * <p>
  * {@link SchemaFactory} is not re-entrant. While one of the
- * <code>newSchema</code> methods is being invoked, applications
- * may not attempt to recursively invoke the <code>newSchema</code> method,
+ * {@code newSchema} methods is being invoked, applications
+ * may not attempt to recursively invoke the {@code newSchema} method,
  * even from the same thread.
  *
  * <h2><a name="schemaLanguage"></a>Schema Language</h2>
@@ -92,11 +92,11 @@
  *   </thead>
  *   <tbody>
  *     <tr>
- *       <td>{@link javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI} ("<code>http://www.w3.org/2001/XMLSchema</code>")</td>
+ *       <td>{@link javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI} ("{@code http://www.w3.org/2001/XMLSchema}")</td>
  *       <td><a href="http://www.w3.org/TR/xmlschema-1">W3C XML Schema 1.0</a></td>
  *     </tr>
  *     <tr>
- *       <td>{@link javax.xml.XMLConstants#RELAXNG_NS_URI} ("<code>http://relaxng.org/ns/structure/1.0</code>")</td>
+ *       <td>{@link javax.xml.XMLConstants#RELAXNG_NS_URI} ("{@code http://relaxng.org/ns/structure/1.0}")</td>
  *       <td><a href="http://www.relaxng.org/">RELAX NG 1.0</a></td>
  *     </tr>
  *   </tbody>
@@ -112,24 +112,24 @@
      private static SecuritySupport ss = new SecuritySupport();
 
     /**
-     * <p>Constructor for derived classes.</p>
+     * Constructor for derived classes.
      *
-     * <p>The constructor does nothing.</p>
+     * <p>The constructor does nothing.
      *
      * <p>Derived classes must create {@link SchemaFactory} objects that have
-     * <code>null</code> {@link ErrorHandler} and
-     * <code>null</code> {@link LSResourceResolver}.</p>
+     * {@code null} {@link ErrorHandler} and
+     * {@code null} {@link LSResourceResolver}.
      */
     protected SchemaFactory() {
     }
 
     /**
-     * <p>Lookup an implementation of the <code>SchemaFactory</code> that supports the specified
-     * schema language and return it.</p>
+     * Lookup an implementation of the {@code SchemaFactory} that supports the specified
+     * schema language and return it.
      *
-     * <p>To find a <code>SchemaFactory</code> object for a given schema language,
+     * <p>To find a {@code SchemaFactory} object for a given schema language,
      * this method looks the following places in the following order
-     * where "the class loader" refers to the context class loader:</p>
+     * where "the class loader" refers to the context class loader:
      * <ol>
      *  <li>
      *     <p>
@@ -178,9 +178,9 @@
      *   </li>
      *   <li>
      *     <p>
-     *     Platform default <code>SchemaFactory</code> is located
+     *     Platform default {@code SchemaFactory} is located
      *     in a implementation specific way. There must be a platform default
-     *     <code>SchemaFactory</code> for W3C XML Schema.
+     *     {@code SchemaFactory} for W3C XML Schema.
      *   </li>
      * </ol>
      *
@@ -201,12 +201,12 @@
      *      <a href="#schemaLanguage">the list of available
      *      schema languages</a> for the possible values.
      *
-     * @return New instance of a <code>SchemaFactory</code>
+     * @return New instance of a {@code SchemaFactory}
      *
      * @throws IllegalArgumentException
      *      If no implementation of the schema language is available.
      * @throws NullPointerException
-     *      If the <code>schemaLanguage</code> parameter is null.
+     *      If the {@code schemaLanguage} parameter is null.
      * @throws SchemaFactoryConfigurationError
      *      If a configuration error is encountered.
      *
@@ -233,42 +233,42 @@
     }
 
     /**
-     * <p>Obtain a new instance of a <code>SchemaFactory</code> from class name. <code>SchemaFactory</code>
+     * Obtain a new instance of a {@code SchemaFactory} from class name. {@code SchemaFactory}
      * is returned if specified factory class name supports the specified schema language.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <h2>Tip for Trouble-shooting</h2>
-     * <p>Setting the <code>jaxp.debug</code> system property will cause
+     * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to <code>System.err</code> about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
      * @param schemaLanguage Specifies the schema language which the returned
-     *                          <code>SchemaFactory</code> will understand. See
+     *                          {@code SchemaFactory} will understand. See
      *                          <a href="#schemaLanguage">the list of available
      *                          schema languages</a> for the possible values.
      *
-     * @param factoryClassName fully qualified factory class name that provides implementation of <code>javax.xml.validation.SchemaFactory</code>.
+     * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.validation.SchemaFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
-     * @return New instance of a <code>SchemaFactory</code>
+     * @return New instance of a {@code SchemaFactory}
      *
      * @throws IllegalArgumentException
-     *                   if <code>factoryClassName</code> is <code>null</code>, or
+     *                   if {@code factoryClassName} is {@code null}, or
      *                   the factory class cannot be loaded, instantiated or doesn't
-     *                   support the schema language specified in <code>schemLanguage</code>
+     *                   support the schema language specified in {@code schemLanguage}
      *                   parameter.
      *
      * @throws NullPointerException
-     *      If the <code>schemaLanguage</code> parameter is null.
+     *      If the {@code schemaLanguage} parameter is null.
      *
      * @see #newInstance(String schemaLanguage)
      *
@@ -299,16 +299,16 @@
     }
 
     /**
-     * <p>Is specified schema supported by this <code>SchemaFactory</code>?</p>
+     * Is specified schema supported by this {@code SchemaFactory}?
      *
-     * @param schemaLanguage Specifies the schema language which the returned <code>SchemaFactory</code> will understand.
-     *    <code>schemaLanguage</code> must specify a <a href="#schemaLanguage">valid</a> schema language.
+     * @param schemaLanguage Specifies the schema language which the returned {@code SchemaFactory} will understand.
+     *    {@code schemaLanguage} must specify a <a href="#schemaLanguage">valid</a> schema language.
      *
-     * @return <code>true</code> if <code>SchemaFactory</code> supports <code>schemaLanguage</code>, else <code>false</code>.
+     * @return {@code true} if {@code SchemaFactory} supports {@code schemaLanguage}, else {@code false}.
      *
-     * @throws NullPointerException If <code>schemaLanguage</code> is <code>null</code>.
-     * @throws IllegalArgumentException If <code>schemaLanguage.length() == 0</code>
-     *   or <code>schemaLanguage</code> does not specify a <a href="#schemaLanguage">valid</a> schema language.
+     * @throws NullPointerException If {@code schemaLanguage} is {@code null}.
+     * @throws IllegalArgumentException If {@code schemaLanguage.length() == 0}
+     *   or {@code schemaLanguage} does not specify a <a href="#schemaLanguage">valid</a> schema language.
      */
     public abstract boolean isSchemaLanguageSupported(String schemaLanguage);
 
@@ -320,7 +320,7 @@
      * temporarily be unable to return its value.
      *
      * <p>Implementors are free (and encouraged) to invent their own features,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The feature name, which is a non-null fully-qualified URI.
      *
@@ -331,7 +331,7 @@
      * @throws SAXNotSupportedException When the
      *   {@link SchemaFactory} recognizes the feature name but
      *   cannot determine its value at this time.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      *
      * @see #setFeature(String, boolean)
      */
@@ -345,38 +345,37 @@
     }
 
     /**
-     * <p>Set a feature for this <code>SchemaFactory</code>,
+     * Set a feature for this {@code SchemaFactory},
      * {@link Schema}s created by this factory, and by extension,
      * {@link Validator}s and {@link ValidatorHandler}s created by
      * those {@link Schema}s.
-     * </p>
      *
      * <p>Implementors and developers should pay particular attention
      * to how the special {@link Schema} object returned by {@link
      * #newSchema()} is processed. In some cases, for example, when the
-     * <code>SchemaFactory</code> and the class actually loading the
+     * {@code SchemaFactory} and the class actually loading the
      * schema come from different implementations, it may not be possible
-     * for <code>SchemaFactory</code> features to be inherited automatically.
+     * for {@code SchemaFactory} features to be inherited automatically.
      * Developers should
      * make sure that features, such as secure processing, are explicitly
-     * set in both places.</p>
+     * set in both places.
      *
      * <p>The feature name is any fully-qualified URI. It is
      * possible for a {@link SchemaFactory} to expose a feature value but
-     * to be unable to change the current value.</p>
+     * to be unable to change the current value.
      *
      * <p>All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-     * When the feature is:</p>
+     * When the feature is:
      * <ul>
      *   <li>
-     *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits.
+     *     {@code true}: the implementation will limit XML processing to conform to implementation limits.
      *     Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources.
      *     If XML processing is limited for security reasons, it will be reported via a call to the registered
      *    {@link ErrorHandler#fatalError(SAXParseException exception)}.
      *     See {@link #setErrorHandler(ErrorHandler errorHandler)}.
      *   </li>
      *   <li>
-     *     <code>false</code>: the implementation will processing XML according to the XML specifications without
+     *     {@code false}: the implementation will processing XML according to the XML specifications without
      *     regard to possible implementation limits.
      *   </li>
      * </ul>
@@ -389,7 +388,7 @@
      * @throws SAXNotSupportedException When the
      *   {@link SchemaFactory} recognizes the feature name but
      *   cannot set the requested value.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      *
      * @see #getFeature(String)
      */
@@ -405,15 +404,15 @@
     /**
      * Set the value of a property.
      *
-     * <p>The property name is any fully-qualified URI.  It is
+     * <p>The property name is any fully-qualified URI. It is
      * possible for a {@link SchemaFactory} to recognize a property name but
-     * to be unable to change the current value.</p>
+     * to be unable to change the current value.
      *
      * <p>
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
      *      <p>Access to external DTDs in Schema files is restricted to the protocols
@@ -421,14 +420,14 @@
      *      If access is denied during the creation of new Schema due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link #newSchema(Source)} or {@link #newSchema(File)}
-     *      or {@link #newSchema(URL)} or  or {@link #newSchema(Source[])} method.</p>
+     *      or {@link #newSchema(URL)} or {@link #newSchema(Source[])} method.
      *
      *      <p>Access to external DTDs in xml source files is restricted to the protocols
      *      specified by the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property.
      *      If access is denied during validation due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link javax.xml.validation.Validator#validate(Source)} or
-     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.</p>
+     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.
      *
      *      <p>Access to external reference set by the schemaLocation attribute is
      *      restricted to the protocols specified by the
@@ -436,7 +435,7 @@
      *      If access is denied during validation due to the restriction of this property,
      *      {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link javax.xml.validation.Validator#validate(Source)} or
-     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.</p>
+     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.
      *
      *      <p>Access to external reference set by the Import
      *      and Include element is restricted to the protocols specified by the
@@ -444,7 +443,7 @@
      *      If access is denied during the creation of new Schema due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link #newSchema(Source)} or {@link #newSchema(File)}
-     *      or {@link #newSchema(URL)} or {@link #newSchema(Source[])} method.</p>
+     *      or {@link #newSchema(URL)} or {@link #newSchema(Source[])} method.
      *   </li>
      * </ul>
      *
@@ -456,7 +455,7 @@
      * @throws SAXNotSupportedException When the
      *   {@link SchemaFactory} recognizes the property name but
      *   cannot set the requested value.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      */
     public void setProperty(String name, Object object)
         throws SAXNotRecognizedException, SAXNotSupportedException {
@@ -472,13 +471,13 @@
      *
      * <p>The property name is any fully-qualified URI.  It is
      * possible for a {@link SchemaFactory} to recognize a property name but
-     * temporarily be unable to return its value.</p>
+     * temporarily be unable to return its value.
      *
      * <p>{@link SchemaFactory}s are not required to recognize any specific
-     * property names.</p>
+     * property names.
      *
      * <p>Implementors are free (and encouraged) to invent their own properties,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The property name, which is a non-null fully-qualified URI.
      *
@@ -489,7 +488,7 @@
      * @throws SAXNotSupportedException When the
      *   XMLReader recognizes the property name but
      *   cannot determine its value at this time.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      *
      * @see #setProperty(String, Object)
      */
@@ -504,7 +503,7 @@
 
     /**
      * Sets the {@link ErrorHandler} to receive errors encountered
-     * during the <code>newSchema</code> method invocation.
+     * during the {@code newSchema} method invocation.
      *
      * <p>
      * Error handler can be used to customize the error handling process
@@ -521,7 +520,7 @@
      * <p>
      * If any {@link Throwable} (or instances of its derived classes)
      * is thrown from an {@link ErrorHandler},
-     * the caller of the <code>newSchema</code> method will be thrown
+     * the caller of the {@code newSchema} method will be thrown
      * the same {@link Throwable} object.
      *
      * <p>
@@ -557,7 +556,7 @@
      * {@link ValidatorHandler}s that are created from this {@link SchemaFactory}.
      *
      * @param errorHandler A new error handler to be set.
-     *   This parameter can be <code>null</code>.
+     *   This parameter can be {@code null}.
      */
     public abstract void setErrorHandler(ErrorHandler errorHandler);
 
@@ -583,7 +582,7 @@
      * when it needs to locate external resources while parsing schemas,
      * although exactly what constitutes "locating external resources" is
      * up to each schema language. For example, for W3C XML Schema,
-     * this includes files <code>&lt;include></code>d or <code>&lt;import></code>ed,
+     * this includes files {@code <include>}d or {@code <import>}ed,
      * and DTD referenced from schema files, etc.
      *
      * <p>
@@ -607,7 +606,7 @@
      * If a {@link LSResourceResolver} throws a {@link RuntimeException}
      *  (or instances of its derived classes),
      * then the {@link SchemaFactory} will abort the parsing and
-     * the caller of the <code>newSchema</code> method will receive
+     * the caller of the {@code newSchema} method will receive
      * the same {@link RuntimeException}.
      *
      * <p>
@@ -635,48 +634,48 @@
     public abstract LSResourceResolver getResourceResolver();
 
     /**
-     * <p>Parses the specified source as a schema and returns it as a schema.</p>
+     * Parses the specified source as a schema and returns it as a schema.
      *
-     * <p>This is a convenience method for {@link #newSchema(Source[] schemas)}.</p>
+     * <p>This is a convenience method for {@link #newSchema(Source[] schemas)}.
      *
      * @param schema Source that represents a schema.
      *
-     * @return New <code>Schema</code> from parsing <code>schema</code>.
+     * @return New {@code Schema} from parsing {@code schema}.
      *
      * @throws SAXException If a SAX error occurs during parsing.
-     * @throws NullPointerException if <code>schema</code> is null.
+     * @throws NullPointerException if {@code schema} is null.
      */
     public Schema newSchema(Source schema) throws SAXException {
         return newSchema(new Source[]{schema});
     }
 
     /**
-     * <p>Parses the specified <code>File</code> as a schema and returns it as a <code>Schema</code>.</p>
+     * Parses the specified {@code File} as a schema and returns it as a {@code Schema}.
      *
-     * <p>This is a convenience method for {@link #newSchema(Source schema)}.</p>
+     * <p>This is a convenience method for {@link #newSchema(Source schema)}.
      *
      * @param schema File that represents a schema.
      *
-     * @return New <code>Schema</code> from parsing <code>schema</code>.
+     * @return New {@code Schema} from parsing {@code schema}.
      *
      * @throws SAXException If a SAX error occurs during parsing.
-     * @throws NullPointerException if <code>schema</code> is null.
+     * @throws NullPointerException if {@code schema} is null.
      */
     public Schema newSchema(File schema) throws SAXException {
         return newSchema(new StreamSource(schema));
     }
 
     /**
-     * <p>Parses the specified <code>URL</code> as a schema and returns it as a <code>Schema</code>.</p>
+     * Parses the specified {@code URL} as a schema and returns it as a {@code Schema}.
      *
-     * <p>This is a convenience method for {@link #newSchema(Source schema)}.</p>
+     * <p>This is a convenience method for {@link #newSchema(Source schema)}.
      *
-     * @param schema <code>URL</code> that represents a schema.
+     * @param schema {@code URL} that represents a schema.
      *
-     * @return New <code>Schema</code> from parsing <code>schema</code>.
+     * @return New {@code Schema} from parsing {@code schema}.
      *
      * @throws SAXException If a SAX error occurs during parsing.
-     * @throws NullPointerException if <code>schema</code> is null.
+     * @throws NullPointerException if {@code schema} is null.
      */
     public Schema newSchema(URL schema) throws SAXException {
         return newSchema(new StreamSource(schema.toExternalForm()));
@@ -710,7 +709,7 @@
      * regard.  While a processor should be consistent in its treatment of
      * JAXP schema sources and XML Schema imports, the behaviour between
      * JAXP-compliant parsers may vary; in particular, parsers may choose
-     * to ignore all but the first &lt;import> for a given namespace,
+     * to ignore all but the first {@code <import>} for a given namespace,
      * regardless of information provided in schemaLocation.
      *
      * <p>
@@ -721,7 +720,7 @@
      * <h2>RELAX NG</h2>
      *
      * <p>For RELAX NG, this method must throw {@link UnsupportedOperationException}
-     * if <code>schemas.length!=1</code>.
+     * if {@code schemas.length!=1}.
      *
      *
      * @param schemas
@@ -748,7 +747,7 @@
      *      When an {@link ErrorHandler} is set, errors are reported to
      *      there first. See {@link #setErrorHandler(ErrorHandler)}.
      * @throws NullPointerException
-     *      If the <code>schemas</code> parameter itself is null or
+     *      If the {@code schemas} parameter itself is null or
      *      any item in the array is null.
      * @throws IllegalArgumentException
      *      If any item in the array is not recognized by this method.
@@ -765,7 +764,7 @@
      * is created.
      *
      * <p>Also, implementations are allowed to use implementation-specific
-     * property/feature to alter the semantics of this method.</p>
+     * property/feature to alter the semantics of this method.
      *
      * <p>Implementors and developers should pay particular attention
      * to how the features set on this {@link SchemaFactory} are
@@ -776,7 +775,7 @@
      * for {@link SchemaFactory} features to be inherited automatically.
      * Developers should
      * make sure that features, such as secure processing, are explicitly
-     * set in both places.</p>
+     * set in both places.
      *
      * <h2>W3C XML Schema 1.0</h2>
      * <p>
--- a/jaxp/src/java.xml/share/classes/javax/xml/validation/Validator.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/validation/Validator.java	Mon Apr 27 09:17:39 2015 -0700
@@ -37,16 +37,15 @@
 import org.xml.sax.SAXNotSupportedException;
 
 /**
- * <p>A processor that checks an XML document against {@link Schema}.</p>
+ * A processor that checks an XML document against {@link Schema}.
  *
  * <p>
  * A validator object is not thread-safe and not reentrant.
  * In other words, it is the application's responsibility to make
  * sure that one {@link Validator} object is not used from
- * more than one thread at any given time, and while the <code>validate</code>
+ * more than one thread at any given time, and while the {@code validate}
  * method is invoked, applications may not recursively call
- * the <code>validate</code> method.
- * <p>
+ * the {@code validate} method.
  *
  *
  * @author  <a href="mailto:Kohsuke.Kawaguchi@Sun.com">Kohsuke Kawaguchi</a>
@@ -57,27 +56,28 @@
     /**
      * Constructor for derived classes.
      *
-     * <p>The constructor does nothing.</p>
+     * <p>The constructor does nothing.
      *
      * <p>Derived classes must create {@link Validator} objects that have
-     * <code>null</code> {@link ErrorHandler} and
-     * <code>null</code> {@link LSResourceResolver}.
-     * </p>
+     * {@code null} {@link ErrorHandler} and
+     * {@code null} {@link LSResourceResolver}.
      */
     protected Validator() {
     }
 
         /**
-         * <p>Reset this <code>Validator</code> to its original configuration.</p>
+         * Reset this {@code Validator} to its original configuration.
          *
-         * <p><code>Validator</code> is reset to the same state as when it was created with
+         * <p>{@code Validator} is reset to the same state as when it was created with
          * {@link Schema#newValidator()}.
-         * <code>reset()</code> is designed to allow the reuse of existing <code>Validator</code>s
-         * thus saving resources associated with the creation of new <code>Validator</code>s.</p>
+         * {@code reset()} is designed to allow the reuse of existing {@code Validator}s
+         * thus saving resources associated with the creation of new {@code Validator}s.
          *
-         * <p>The reset <code>Validator</code> is not guaranteed to have the same {@link LSResourceResolver} or {@link ErrorHandler}
-         * <code>Object</code>s, e.g. {@link Object#equals(Object obj)}.  It is guaranteed to have a functionally equal
-         * <code>LSResourceResolver</code> and <code>ErrorHandler</code>.</p>
+         * <p>The reset {@code Validator} is not guaranteed to have
+         * the same {@link LSResourceResolver} or {@link ErrorHandler}
+         * {@code Object}s, e.g. {@link Object#equals(Object obj)}.
+         * It is guaranteed to have a functionally equal
+         * {@code LSResourceResolver} and {@code ErrorHandler}.
          */
         public abstract void reset();
 
@@ -86,7 +86,7 @@
      *
      * <p>This is just a convenience method for
      * {@link #validate(Source source, Result result)}
-     * with <code>result</code> of <code>null</code>.</p>
+     * with {@code result} of {@code null}.
      *
      * @param source
      *      XML to be validated. Must be an XML document or
@@ -97,7 +97,7 @@
      *      or throw an IllegalArgumentException.
      *
      * @throws IllegalArgumentException
-     *      If the <code>Source</code>
+     *      If the {@code Source}
      *      is an XML artifact that the implementation cannot
      *      validate (for example, a processing instruction).
      *
@@ -113,8 +113,8 @@
      *      {@link IOException}.
      *
      *
-     * @throws NullPointerException If <code>source</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException If {@code source} is
+     *   {@code null}.
      *
      * @see #validate(Source source, Result result)
      */
@@ -125,16 +125,16 @@
     }
 
     /**
-     * <p>Validates the specified input and send the augmented validation
-     * result to the specified output.</p>
+     * Validates the specified input and send the augmented validation
+     * result to the specified output.
      *
      * <p>This method places the following restrictions on the types of
-     * the {@link Source}/{@link Result} accepted.</p>
+     * the {@link Source}/{@link Result} accepted.
      *
      * <table border=1>
      * <thead>
      *  <tr>
-     *   <th colspan="5"><code>Source</code> / <code>Result</code> Accepted</th>
+     *   <th colspan="5">{@code Source} / {@code Result} Accepted</th>
      *  </tr>
      *  <tr>
      *   <th></th>
@@ -146,7 +146,7 @@
      * </thead>
      * <tbody align="center">
      *  <tr>
-     *   <td><code>null</code></td>
+     *   <td>{@code null}</td>
      *   <td>OK</td>
      *   <td>OK</td>
      *   <td>OK</td>
@@ -155,44 +155,44 @@
      *  <tr>
      *   <th>{@link javax.xml.transform.stream.StreamResult}</th>
      *   <td>OK</td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *  </tr>
      *  <tr>
      *   <th>{@link javax.xml.transform.sax.SAXResult}</th>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
      *   <td>OK</td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *  </tr>
      *  <tr>
      *   <th>{@link javax.xml.transform.dom.DOMResult}</th>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *   <td>OK</td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
      *  </tr>
      *  <tr>
      *   <th>{@link javax.xml.transform.stax.StAXResult}</th>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *   <td>OK</td>
      *  </tr>
      * </tbody>
      * </table>
      *
-     * <p>To validate one <code>Source</code> into another kind of
-     * <code>Result</code>, use the identity transformer (see
-     * {@link javax.xml.transform.TransformerFactory#newTransformer()}).</p>
+     * <p>To validate one {@code Source} into another kind of
+     * {@code Result}, use the identity transformer (see
+     * {@link javax.xml.transform.TransformerFactory#newTransformer()}).
      *
      * <p>Errors found during the validation is sent to the specified
-     * {@link ErrorHandler}.</p>
+     * {@link ErrorHandler}.
      *
      * <p>If a document is valid, or if a document contains some errors
-     * but none of them were fatal and the <code>ErrorHandler</code> didn't
-     * throw any exception, then the method returns normally.</p>
+     * but none of them were fatal and the {@code ErrorHandler} didn't
+     * throw any exception, then the method returns normally.
      *
      * @param source
      *      XML to be validated. Must be an XML document or
@@ -203,34 +203,34 @@
      *      or throw an IllegalArgumentException.
      *
      * @param result
-     *      The <code>Result</code> object that receives (possibly augmented)
+     *      The {@code Result} object that receives (possibly augmented)
      *      XML. This parameter can be null if the caller is not interested
      *      in it.
      *
-     *      Note that when a <code>DOMResult</code> is used,
+     *      Note that when a {@code DOMResult} is used,
      *      a validator might just pass the same DOM node from
-     *      <code>DOMSource</code> to <code>DOMResult</code>
-     *      (in which case <code>source.getNode()==result.getNode()</code>),
+     *      {@code DOMSource} to {@code DOMResult}
+     *      (in which case {@code source.getNode()==result.getNode()}),
      *      it might copy the entire DOM tree, or it might alter the
      *      node given by the source.
      *
      * @throws IllegalArgumentException
-     *      If the <code>Result</code> type doesn't match the
-     *      <code>Source</code> type of if the <code>Source</code>
+     *      If the {@code Result} type doesn't match the
+     *      {@code Source} type of if the {@code Source}
      *      is an XML artifact that the implementation cannot
      *      validate (for example, a processing instruction).
      * @throws SAXException
-     *      If the <code>ErrorHandler</code> throws a
-     *      <code>SAXException</code> or
-     *      if a fatal error is found and the <code>ErrorHandler</code> returns
+     *      If the {@code ErrorHandler} throws a
+     *      {@code SAXException} or
+     *      if a fatal error is found and the {@code ErrorHandler} returns
      *      normally.
      * @throws IOException
      *      If the validator is processing a
-     *      <code>SAXSource</code> and the
+     *      {@code SAXSource} and the
      *      underlying {@link org.xml.sax.XMLReader} throws an
-     *      <code>IOException</code>.
+     *      {@code IOException}.
      * @throws NullPointerException
-     *      If the <code>source</code> parameter is <code>null</code>.
+     *      If the {@code source} parameter is {@code null}.
      *
      * @see #validate(Source source)
      */
@@ -239,7 +239,7 @@
 
     /**
      * Sets the {@link ErrorHandler} to receive errors encountered
-     * during the <code>validate</code> method invocation.
+     * during the {@code validate} method invocation.
      *
      * <p>
      * Error handler can be used to customize the error handling process
@@ -255,7 +255,7 @@
      *
      * <p>
      * If any {@link Throwable} is thrown from an {@link ErrorHandler},
-     * the caller of the <code>validate</code> method will be thrown
+     * the caller of the {@code validate} method will be thrown
      * the same {@link Throwable} object.
      *
      * <p>
@@ -329,7 +329,7 @@
      * If a {@link LSResourceResolver} throws a {@link RuntimeException}
      *  (or instances of its derived classes),
      * then the {@link Validator} will abort the parsing and
-     * the caller of the <code>validate</code> method will receive
+     * the caller of the {@code validate} method will receive
      * the same {@link RuntimeException}.
      *
      * <p>
@@ -366,7 +366,7 @@
      * contexts, such as before, during, or after a validation.
      *
      * <p>Implementors are free (and encouraged) to invent their own features,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The feature name, which is a non-null fully-qualified URI.
      *
@@ -398,14 +398,14 @@
      * <p>
      * Feature can be used to control the way a {@link Validator}
      * parses schemas, although {@link Validator}s are not required
-     * to recognize any specific feature names.</p>
+     * to recognize any specific feature names.
      *
      * <p>The feature name is any fully-qualified URI.  It is
      * possible for a {@link Validator} to expose a feature value but
      * to be unable to change the current value.
      * Some feature values may be immutable or mutable only
      * in specific contexts, such as before, during, or after
-     * a validation.</p>
+     * a validation.
      *
      * @param name The feature name, which is a non-null fully-qualified URI.
      * @param value The requested value of the feature (true or false).
@@ -438,27 +438,27 @@
      * to be unable to change the current value.
      * Some property values may be immutable or mutable only
      * in specific contexts, such as before, during, or after
-     * a validation.</p>
+     * a validation.
      *
      * <p>
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
      *      <p>Access to external DTDs in source or Schema file is restricted to
      *      the protocols specified by the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD}
      *      property.  If access is denied during validation due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
-     *      {@link #validate(Source)} method.</p>
+     *      {@link #validate(Source)} method.
      *
      *      <p>Access to external reference set by the schemaLocation attribute is
      *      restricted to the protocols specified by the
      *      {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} property.
      *      If access is denied during validation due to the restriction of this property,
      *      {@link org.xml.sax.SAXException} will be thrown by the
-     *      {@link #validate(Source)} method.</p>
+     *      {@link #validate(Source)} method.
      *   </li>
      * </ul>
      *
@@ -490,13 +490,13 @@
      * possible for a {@link Validator} to recognize a property name but
      * temporarily be unable to return its value.
      * Some property values may be available only in specific
-     * contexts, such as before, during, or after a validation.</p>
+     * contexts, such as before, during, or after a validation.
      *
      * <p>{@link Validator}s are not required to recognize any specific
-     * property names.</p>
+     * property names.
      *
      * <p>Implementors are free (and encouraged) to invent their own properties,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The property name, which is a non-null fully-qualified URI.
      *
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPath.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPath.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,7 +32,7 @@
 /**
  * {@code XPath} provides access to the XPath evaluation environment and expressions.
  *
- * <a name="XPath-evaluation"/>
+ * <a name="XPath-evaluation"></a>
  * <table border="1" cellpadding="2">
  *   <thead>
  *     <tr>
@@ -90,7 +90,6 @@
  * more than one thread at any given time, and while the {@code evaluate}
  * method is invoked, applications may not recursively call
  * the {@code evaluate} method.
- * <p>
  *
  * @author  <a href="Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -462,7 +461,6 @@
      * <pre> {@code
      *     evaluateExpression(expression, item, XPathEvaluationResult.class);
      * }</pre>
-     * <p>
      *
      * @implSpec
      * The default implementation in the XPath API is equivalent to:
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathEvaluationResult.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathEvaluationResult.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,7 +32,6 @@
  * evaluation of an XPath expression within the context of a particular node.
  * The evaluation of an XPath expression can result in various result types as
  * defined in XML Path Language (XPath) Version 1.0.
- * <p>
  *
  * @param <T> the object type returned by the XPath evaluation.
  * @see <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version
@@ -121,7 +120,7 @@
     public XPathResultType type();
 
     /**
-     * Returns the value of the result as the type &lt;T&gt; specified for the class.
+     * Returns the value of the result as the type {@code <T>} specified for the class.
      *
      * @return The value of the result.
      */
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -33,7 +33,7 @@
 import java.io.InvalidClassException;
 
 /**
- * <code>XPathException</code> represents a generic XPath exception.</p>
+ * {@code XPathException} represents a generic XPath exception.
  *
  * @author  <a href="Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author <a href="mailto:Jeff.Suttor@Sun.COM">Jeff Suttor</a>
@@ -46,23 +46,23 @@
     };
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathException</code>
-     * with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathException}
+     * with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathException(String message) {
         super(message);
@@ -72,15 +72,15 @@
     }
 
     /**
-     * <p>Constructs a new <code>XPathException</code>
-     * with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathException}
+     * with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathException(Throwable cause) {
         super(cause);
@@ -90,7 +90,7 @@
     }
 
     /**
-     * <p>Get the cause of this XPathException.</p>
+     * Get the cause of this XPathException.
      *
      * @return Cause of this XPathException.
      */
@@ -103,7 +103,7 @@
      * The cause is got from the parent class.
      *
      * @param out stream used for serialization.
-     * @throws IOException thrown by <code>ObjectOutputStream</code>
+     * @throws IOException thrown by {@code ObjectOutputStream}
      *
      */
     private void writeObject(ObjectOutputStream out)
@@ -120,8 +120,8 @@
      * done before.
      *
      * @param in stream used for deserialization
-     * @throws IOException thrown by <code>ObjectInputStream</code>
-     * @throws ClassNotFoundException  thrown by <code>ObjectInputStream</code>
+     * @throws IOException thrown by {@code ObjectInputStream}
+     * @throws ClassNotFoundException  thrown by {@code ObjectInputStream}
      */
     private void readObject(ObjectInputStream in)
             throws IOException, ClassNotFoundException
@@ -139,9 +139,9 @@
     }
 
     /**
-     * <p>Print stack trace to specified <code>PrintStream</code>.</p>
+     * Print stack trace to specified {@code PrintStream}.
      *
-     * @param s Print stack trace to this <code>PrintStream</code>.
+     * @param s Print stack trace to this {@code PrintStream}.
      */
     public void printStackTrace(java.io.PrintStream s) {
         if (getCause() != null) {
@@ -153,16 +153,16 @@
     }
 
     /**
-     * <p>Print stack trace to <code>System.err</code>.</p>
+     * Print stack trace to {@code System.err}.
      */
     public void printStackTrace() {
         printStackTrace(System.err);
     }
 
     /**
-     * <p>Print stack trace to specified <code>PrintWriter</code>.</p>
+     * Print stack trace to specified {@code PrintWriter}.
      *
-     * @param s Print stack trace to this <code>PrintWriter</code>.
+     * @param s Print stack trace to this {@code PrintWriter}.
      */
     public void printStackTrace(PrintWriter s) {
 
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathExpression.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathExpression.java	Mon Apr 27 09:17:39 2015 -0700
@@ -29,9 +29,9 @@
 import org.xml.sax.InputSource;
 
 /**
- * <p>{@code XPathExpression} provides access to compiled XPath expressions.</p>
+ * {@code XPathExpression} provides access to compiled XPath expressions.
  *
- * <a name="XPathExpression-evaluation"/>
+ * <a name="XPathExpression-evaluation"></a>
  * <table border="1" cellpadding="2">
  *   <thead>
  *     <tr>
@@ -54,7 +54,7 @@
  *        If the expression contains a variable reference, its value will be found through the {@link XPathVariableResolver}.
  *        An {@link XPathExpressionException} is raised if the variable resolver is undefined or
  *        the resolver returns {@code null} for the variable.
- *        The value of a variable must be immutable through the course of any single evaluation.</p>
+ *        The value of a variable must be immutable through the course of any single evaluation.
  *      </td>
  *    </tr>
  *    <tr>
@@ -62,7 +62,7 @@
  *      <td>
  *        If the expression contains a function reference, the function will be found through the {@link XPathFunctionResolver}.
  *        An {@link XPathExpressionException} is raised if the function resolver is undefined or
- *        the function resolver returns {@code null} for the function.</p>
+ *        the function resolver returns {@code null} for the function.
  *      </td>
  *    </tr>
  *    <tr>
@@ -76,9 +76,10 @@
  *      <td>
  *        This result of evaluating an expression is converted to an instance of the desired return type.
  *        Valid return types are defined in {@link XPathConstants}.
- *        Conversion to the return type follows XPath conversion rules.</p>
+ *        Conversion to the return type follows XPath conversion rules.
  *      </td>
  *    </tr>
+ *   </tbody>
  * </table>
  *
  * <p>An XPath expression is not thread-safe and not reentrant.
@@ -87,7 +88,6 @@
  * more than one thread at any given time, and while the {@code evaluate}
  * method is invoked, applications may not recursively call
  * the {@code evaluate} method.
- * <p>
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -98,10 +98,10 @@
 
 
     /**
-     * <p>Evaluate the compiled XPath expression in the specified context and return the result as the specified type.</p>
+     * Evaluate the compiled XPath expression in the specified context and return the result as the specified type.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
      * <p>
      * The parameter {@code item} represents the context the XPath expression
@@ -126,13 +126,13 @@
         throws XPathExpressionException;
 
     /**
-     * <p>Evaluate the compiled XPath expression in the specified context and return the result as a {@code String}.</p>
+     * Evaluate the compiled XPath expression in the specified context and return the result as a {@code String}.
      *
      * <p>This method calls {@link #evaluate(Object item, QName returnType)} with a {@code returnType} of
-     * {@link XPathConstants#STRING}.</p>
+     * {@link XPathConstants#STRING}.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
      * <p>
      * The parameter {@code item} represents the context the XPath expression
@@ -153,20 +153,21 @@
         throws XPathExpressionException;
 
     /**
-     * <p>Evaluate the compiled XPath expression in the context of the specified {@code InputSource} and return the result as the
-     * specified type.</p>
+     * Evaluate the compiled XPath expression in the context
+     * of the specified {@code InputSource} and return the result as the
+     * specified type.
      *
      * <p>This method builds a data model for the {@link InputSource} and calls
-     * {@link #evaluate(Object item, QName returnType)} on the resulting document object.</p>
+     * {@link #evaluate(Object item, QName returnType)} on the resulting document object.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
      * <p>If {@code returnType} is not one of the types defined in {@link XPathConstants},
-     * then an {@code IllegalArgumentException} is thrown.</p>
+     * then an {@code IllegalArgumentException} is thrown.
      *
      * <p>If {@code source} or {@code returnType} is {@code null},
-     * then a {@code NullPointerException} is thrown.</p>
+     * then a {@code NullPointerException} is thrown.
      *
      * @param source The {@code InputSource} of the document to evaluate over.
      * @param returnType The desired return type.
@@ -182,16 +183,17 @@
         throws XPathExpressionException;
 
     /**
-     * <p>Evaluate the compiled XPath expression in the context of the specified {@code InputSource} and return the result as a
-     * {@code String}.</p>
+     * Evaluate the compiled XPath expression in the context
+     * of the specified {@code InputSource} and return the result as a
+     * {@code String}.
      *
      * <p>This method calls {@link #evaluate(InputSource source, QName returnType)} with a {@code returnType} of
-     * {@link XPathConstants#STRING}.</p>
+     * {@link XPathConstants#STRING}.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
-     * <p>If {@code source} is {@code null}, then a {@code NullPointerException} is thrown.</p>
+     * <p>If {@code source} is {@code null}, then a {@code NullPointerException} is thrown.
      *
      * @param source The {@code InputSource} of the document to evaluate over.
      *
@@ -351,7 +353,6 @@
      * <pre> {@code
      *     evaluateExpression(source, XPathEvaluationResult.class);
      * }</pre>
-     * <p>
      *
      * @implSpec
      * The default implementation in the XPath API is equivalent to:
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathExpressionException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathExpressionException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml.xpath;
 
 /**
- * <code>XPathExpressionException</code> represents an error in an XPath expression.</p>
+ * {@code XPathExpressionException} represents an error in an XPath expression.
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -35,38 +35,38 @@
 public class XPathExpressionException extends XPathException {
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathExpressionException</code>
-     * with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathExpressionException}
+     * with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathExpressionException(String message) {
         super(message);
     }
 
     /**
-     * <p>Constructs a new <code>XPathExpressionException</code>
-     * with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathExpressionException}
+     * with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathExpressionException(Throwable cause) {
         super(cause);
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,7 +26,8 @@
 package javax.xml.xpath;
 
 /**
- * <code>XPathFactoryConfigurationException</code> represents a configuration error in a <code>XPathFactory</code> environment.</p>
+ * {@code XPathFactoryConfigurationException} represents
+ * a configuration error in a {@code XPathFactory} environment.
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -35,37 +36,38 @@
 public class XPathFactoryConfigurationException extends XPathException {
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathFactoryConfigurationException</code> with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathFactoryConfigurationException}
+     * with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathFactoryConfigurationException(String message) {
         super(message);
     }
 
     /**
-     * <p>Constructs a new <code>XPathFactoryConfigurationException</code>
-     * with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathFactoryConfigurationException}
+     * with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathFactoryConfigurationException(Throwable cause) {
         super(cause);
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFunctionException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFunctionException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml.xpath;
 
 /**
- * <code>XPathFunctionException</code> represents an error with an XPath function.</p>
+ * {@code XPathFunctionException} represents an error with an XPath function.
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -35,36 +35,36 @@
 public class XPathFunctionException extends XPathExpressionException {
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathFunctionException</code> with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathFunctionException} with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathFunctionException(String message) {
         super(message);
     }
 
     /**
-     * <p>Constructs a new <code>XPathFunctionException</code> with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathFunctionException} with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathFunctionException(Throwable cause) {
         super(cause);
--- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -282,7 +282,6 @@
 <h3>5. Using the XPath API</h3>
 
 Consider the following XML document:
-<p>
 <blockquote>
 <pre>
 &lt;widgets&gt;
@@ -366,7 +365,6 @@
 specification also provides functions that returns Integer type. To facilitate
 such operations, the XPath API allows Integer and Long to be used in 
 {@code evaluateExpression} method such as the following code: 
-<p>
 <blockquote>
 <pre>
 int count = xpath.evaluate("count(/widgets/widget)", document, Integer.class);
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSS2Properties.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1806 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSS2Properties</code> interface represents a convenience
- * mechanism for retrieving and setting properties within a
- * <code>CSSStyleDeclaration</code>. The attributes of this interface
- * correspond to all the properties specified in CSS2. Getting an attribute
- * of this interface is equivalent to calling the
- * <code>getPropertyValue</code> method of the
- * <code>CSSStyleDeclaration</code> interface. Setting an attribute of this
- * interface is equivalent to calling the <code>setProperty</code> method of
- * the <code>CSSStyleDeclaration</code> interface.
- * <p> A conformant implementation of the CSS module is not required to
- * implement the <code>CSS2Properties</code> interface. If an implementation
- * does implement this interface, the expectation is that language-specific
- * methods can be used to cast from an instance of the
- * <code>CSSStyleDeclaration</code> interface to the
- * <code>CSS2Properties</code> interface.
- * <p> If an implementation does implement this interface, it is expected to
- * understand the specific syntax of the shorthand properties, and apply
- * their semantics; when the <code>margin</code> property is set, for
- * example, the <code>marginTop</code>, <code>marginRight</code>,
- * <code>marginBottom</code> and <code>marginLeft</code> properties are
- * actually being set by the underlying implementation.
- * <p> When dealing with CSS "shorthand" properties, the shorthand properties
- * should be decomposed into their component longhand properties as
- * appropriate, and when querying for their value, the form returned should
- * be the shortest form exactly equivalent to the declarations made in the
- * ruleset. However, if there is no shorthand declaration that could be
- * added to the ruleset without changing in any way the rules already
- * declared in the ruleset (i.e., by adding longhand rules that were
- * previously not declared in the ruleset), then the empty string should be
- * returned for the shorthand property.
- * <p> For example, querying for the <code>font</code> property should not
- * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt
- * Arial, sans-serif" suffices. (The normals are initial values, and are
- * implied by use of the longhand property.)
- * <p> If the values for all the longhand properties that compose a particular
- * string are the initial values, then a string consisting of all the
- * initial values should be returned (e.g. a <code>border-width</code> value
- * of "medium" should be returned as such, not as "").
- * <p> For some shorthand properties that take missing values from other
- * sides, such as the <code>margin</code>, <code>padding</code>, and
- * <code>border-[width|style|color]</code> properties, the minimum number of
- * sides possible should be used; i.e., "0px 10px" will be returned instead
- * of "0px 10px 0px 10px".
- * <p> If the value of a shorthand property can not be decomposed into its
- * component longhand properties, as is the case for the <code>font</code>
- * property with a value of "menu", querying for the values of the component
- * longhand properties should return the empty string.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSS2Properties {
-    /**
-     *  See the azimuth property definition in CSS2.
-     */
-    public String getAzimuth();
-    /**
-     *  See the azimuth property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setAzimuth(String azimuth)
-                                             throws DOMException;
-
-    /**
-     *  See the background property definition in CSS2.
-     */
-    public String getBackground();
-    /**
-     *  See the background property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBackground(String background)
-                                             throws DOMException;
-
-    /**
-     *  See the background-attachment property definition in CSS2.
-     */
-    public String getBackgroundAttachment();
-    /**
-     *  See the background-attachment property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBackgroundAttachment(String backgroundAttachment)
-                                             throws DOMException;
-
-    /**
-     *  See the background-color property definition in CSS2.
-     */
-    public String getBackgroundColor();
-    /**
-     *  See the background-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBackgroundColor(String backgroundColor)
-                                             throws DOMException;
-
-    /**
-     *  See the background-image property definition in CSS2.
-     */
-    public String getBackgroundImage();
-    /**
-     *  See the background-image property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBackgroundImage(String backgroundImage)
-                                             throws DOMException;
-
-    /**
-     *  See the background-position property definition in CSS2.
-     */
-    public String getBackgroundPosition();
-    /**
-     *  See the background-position property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBackgroundPosition(String backgroundPosition)
-                                             throws DOMException;
-
-    /**
-     *  See the background-repeat property definition in CSS2.
-     */
-    public String getBackgroundRepeat();
-    /**
-     *  See the background-repeat property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBackgroundRepeat(String backgroundRepeat)
-                                             throws DOMException;
-
-    /**
-     *  See the border property definition in CSS2.
-     */
-    public String getBorder();
-    /**
-     *  See the border property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorder(String border)
-                                             throws DOMException;
-
-    /**
-     *  See the border-collapse property definition in CSS2.
-     */
-    public String getBorderCollapse();
-    /**
-     *  See the border-collapse property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderCollapse(String borderCollapse)
-                                             throws DOMException;
-
-    /**
-     *  See the border-color property definition in CSS2.
-     */
-    public String getBorderColor();
-    /**
-     *  See the border-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderColor(String borderColor)
-                                             throws DOMException;
-
-    /**
-     *  See the border-spacing property definition in CSS2.
-     */
-    public String getBorderSpacing();
-    /**
-     *  See the border-spacing property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderSpacing(String borderSpacing)
-                                             throws DOMException;
-
-    /**
-     *  See the border-style property definition in CSS2.
-     */
-    public String getBorderStyle();
-    /**
-     *  See the border-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderStyle(String borderStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the border-top property definition in CSS2.
-     */
-    public String getBorderTop();
-    /**
-     *  See the border-top property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderTop(String borderTop)
-                                             throws DOMException;
-
-    /**
-     *  See the border-right property definition in CSS2.
-     */
-    public String getBorderRight();
-    /**
-     *  See the border-right property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderRight(String borderRight)
-                                             throws DOMException;
-
-    /**
-     *  See the border-bottom property definition in CSS2.
-     */
-    public String getBorderBottom();
-    /**
-     *  See the border-bottom property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderBottom(String borderBottom)
-                                             throws DOMException;
-
-    /**
-     *  See the border-left property definition in CSS2.
-     */
-    public String getBorderLeft();
-    /**
-     *  See the border-left property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderLeft(String borderLeft)
-                                             throws DOMException;
-
-    /**
-     *  See the border-top-color property definition in CSS2.
-     */
-    public String getBorderTopColor();
-    /**
-     *  See the border-top-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderTopColor(String borderTopColor)
-                                             throws DOMException;
-
-    /**
-     *  See the border-right-color property definition in CSS2.
-     */
-    public String getBorderRightColor();
-    /**
-     *  See the border-right-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderRightColor(String borderRightColor)
-                                             throws DOMException;
-
-    /**
-     *  See the border-bottom-color property definition in CSS2.
-     */
-    public String getBorderBottomColor();
-    /**
-     *  See the border-bottom-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderBottomColor(String borderBottomColor)
-                                             throws DOMException;
-
-    /**
-     *  See the border-left-color property definition in CSS2.
-     */
-    public String getBorderLeftColor();
-    /**
-     *  See the border-left-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderLeftColor(String borderLeftColor)
-                                             throws DOMException;
-
-    /**
-     *  See the border-top-style property definition in CSS2.
-     */
-    public String getBorderTopStyle();
-    /**
-     *  See the border-top-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderTopStyle(String borderTopStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the border-right-style property definition in CSS2.
-     */
-    public String getBorderRightStyle();
-    /**
-     *  See the border-right-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderRightStyle(String borderRightStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the border-bottom-style property definition in CSS2.
-     */
-    public String getBorderBottomStyle();
-    /**
-     *  See the border-bottom-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderBottomStyle(String borderBottomStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the border-left-style property definition in CSS2.
-     */
-    public String getBorderLeftStyle();
-    /**
-     *  See the border-left-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderLeftStyle(String borderLeftStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the border-top-width property definition in CSS2.
-     */
-    public String getBorderTopWidth();
-    /**
-     *  See the border-top-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderTopWidth(String borderTopWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the border-right-width property definition in CSS2.
-     */
-    public String getBorderRightWidth();
-    /**
-     *  See the border-right-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderRightWidth(String borderRightWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the border-bottom-width property definition in CSS2.
-     */
-    public String getBorderBottomWidth();
-    /**
-     *  See the border-bottom-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderBottomWidth(String borderBottomWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the border-left-width property definition in CSS2.
-     */
-    public String getBorderLeftWidth();
-    /**
-     *  See the border-left-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderLeftWidth(String borderLeftWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the border-width property definition in CSS2.
-     */
-    public String getBorderWidth();
-    /**
-     *  See the border-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBorderWidth(String borderWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the bottom property definition in CSS2.
-     */
-    public String getBottom();
-    /**
-     *  See the bottom property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setBottom(String bottom)
-                                             throws DOMException;
-
-    /**
-     *  See the caption-side property definition in CSS2.
-     */
-    public String getCaptionSide();
-    /**
-     *  See the caption-side property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCaptionSide(String captionSide)
-                                             throws DOMException;
-
-    /**
-     *  See the clear property definition in CSS2.
-     */
-    public String getClear();
-    /**
-     *  See the clear property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setClear(String clear)
-                                             throws DOMException;
-
-    /**
-     *  See the clip property definition in CSS2.
-     */
-    public String getClip();
-    /**
-     *  See the clip property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setClip(String clip)
-                                             throws DOMException;
-
-    /**
-     *  See the color property definition in CSS2.
-     */
-    public String getColor();
-    /**
-     *  See the color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setColor(String color)
-                                             throws DOMException;
-
-    /**
-     *  See the content property definition in CSS2.
-     */
-    public String getContent();
-    /**
-     *  See the content property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setContent(String content)
-                                             throws DOMException;
-
-    /**
-     *  See the counter-increment property definition in CSS2.
-     */
-    public String getCounterIncrement();
-    /**
-     *  See the counter-increment property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCounterIncrement(String counterIncrement)
-                                             throws DOMException;
-
-    /**
-     *  See the counter-reset property definition in CSS2.
-     */
-    public String getCounterReset();
-    /**
-     *  See the counter-reset property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCounterReset(String counterReset)
-                                             throws DOMException;
-
-    /**
-     *  See the cue property definition in CSS2.
-     */
-    public String getCue();
-    /**
-     *  See the cue property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCue(String cue)
-                                             throws DOMException;
-
-    /**
-     *  See the cue-after property definition in CSS2.
-     */
-    public String getCueAfter();
-    /**
-     *  See the cue-after property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCueAfter(String cueAfter)
-                                             throws DOMException;
-
-    /**
-     *  See the cue-before property definition in CSS2.
-     */
-    public String getCueBefore();
-    /**
-     *  See the cue-before property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCueBefore(String cueBefore)
-                                             throws DOMException;
-
-    /**
-     *  See the cursor property definition in CSS2.
-     */
-    public String getCursor();
-    /**
-     *  See the cursor property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCursor(String cursor)
-                                             throws DOMException;
-
-    /**
-     *  See the direction property definition in CSS2.
-     */
-    public String getDirection();
-    /**
-     *  See the direction property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setDirection(String direction)
-                                             throws DOMException;
-
-    /**
-     *  See the display property definition in CSS2.
-     */
-    public String getDisplay();
-    /**
-     *  See the display property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setDisplay(String display)
-                                             throws DOMException;
-
-    /**
-     *  See the elevation property definition in CSS2.
-     */
-    public String getElevation();
-    /**
-     *  See the elevation property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setElevation(String elevation)
-                                             throws DOMException;
-
-    /**
-     *  See the empty-cells property definition in CSS2.
-     */
-    public String getEmptyCells();
-    /**
-     *  See the empty-cells property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setEmptyCells(String emptyCells)
-                                             throws DOMException;
-
-    /**
-     *  See the float property definition in CSS2.
-     */
-    public String getCssFloat();
-    /**
-     *  See the float property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setCssFloat(String cssFloat)
-                                             throws DOMException;
-
-    /**
-     *  See the font property definition in CSS2.
-     */
-    public String getFont();
-    /**
-     *  See the font property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFont(String font)
-                                             throws DOMException;
-
-    /**
-     *  See the font-family property definition in CSS2.
-     */
-    public String getFontFamily();
-    /**
-     *  See the font-family property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontFamily(String fontFamily)
-                                             throws DOMException;
-
-    /**
-     *  See the font-size property definition in CSS2.
-     */
-    public String getFontSize();
-    /**
-     *  See the font-size property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontSize(String fontSize)
-                                             throws DOMException;
-
-    /**
-     *  See the font-size-adjust property definition in CSS2.
-     */
-    public String getFontSizeAdjust();
-    /**
-     *  See the font-size-adjust property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontSizeAdjust(String fontSizeAdjust)
-                                             throws DOMException;
-
-    /**
-     *  See the font-stretch property definition in CSS2.
-     */
-    public String getFontStretch();
-    /**
-     *  See the font-stretch property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontStretch(String fontStretch)
-                                             throws DOMException;
-
-    /**
-     *  See the font-style property definition in CSS2.
-     */
-    public String getFontStyle();
-    /**
-     *  See the font-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontStyle(String fontStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the font-variant property definition in CSS2.
-     */
-    public String getFontVariant();
-    /**
-     *  See the font-variant property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontVariant(String fontVariant)
-                                             throws DOMException;
-
-    /**
-     *  See the font-weight property definition in CSS2.
-     */
-    public String getFontWeight();
-    /**
-     *  See the font-weight property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFontWeight(String fontWeight)
-                                             throws DOMException;
-
-    /**
-     *  See the height property definition in CSS2.
-     */
-    public String getHeight();
-    /**
-     *  See the height property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setHeight(String height)
-                                             throws DOMException;
-
-    /**
-     *  See the left property definition in CSS2.
-     */
-    public String getLeft();
-    /**
-     *  See the left property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setLeft(String left)
-                                             throws DOMException;
-
-    /**
-     *  See the letter-spacing property definition in CSS2.
-     */
-    public String getLetterSpacing();
-    /**
-     *  See the letter-spacing property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setLetterSpacing(String letterSpacing)
-                                             throws DOMException;
-
-    /**
-     *  See the line-height property definition in CSS2.
-     */
-    public String getLineHeight();
-    /**
-     *  See the line-height property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setLineHeight(String lineHeight)
-                                             throws DOMException;
-
-    /**
-     *  See the list-style property definition in CSS2.
-     */
-    public String getListStyle();
-    /**
-     *  See the list-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setListStyle(String listStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the list-style-image property definition in CSS2.
-     */
-    public String getListStyleImage();
-    /**
-     *  See the list-style-image property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setListStyleImage(String listStyleImage)
-                                             throws DOMException;
-
-    /**
-     *  See the list-style-position property definition in CSS2.
-     */
-    public String getListStylePosition();
-    /**
-     *  See the list-style-position property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setListStylePosition(String listStylePosition)
-                                             throws DOMException;
-
-    /**
-     *  See the list-style-type property definition in CSS2.
-     */
-    public String getListStyleType();
-    /**
-     *  See the list-style-type property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setListStyleType(String listStyleType)
-                                             throws DOMException;
-
-    /**
-     *  See the margin property definition in CSS2.
-     */
-    public String getMargin();
-    /**
-     *  See the margin property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMargin(String margin)
-                                             throws DOMException;
-
-    /**
-     *  See the margin-top property definition in CSS2.
-     */
-    public String getMarginTop();
-    /**
-     *  See the margin-top property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMarginTop(String marginTop)
-                                             throws DOMException;
-
-    /**
-     *  See the margin-right property definition in CSS2.
-     */
-    public String getMarginRight();
-    /**
-     *  See the margin-right property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMarginRight(String marginRight)
-                                             throws DOMException;
-
-    /**
-     *  See the margin-bottom property definition in CSS2.
-     */
-    public String getMarginBottom();
-    /**
-     *  See the margin-bottom property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMarginBottom(String marginBottom)
-                                             throws DOMException;
-
-    /**
-     *  See the margin-left property definition in CSS2.
-     */
-    public String getMarginLeft();
-    /**
-     *  See the margin-left property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMarginLeft(String marginLeft)
-                                             throws DOMException;
-
-    /**
-     *  See the marker-offset property definition in CSS2.
-     */
-    public String getMarkerOffset();
-    /**
-     *  See the marker-offset property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMarkerOffset(String markerOffset)
-                                             throws DOMException;
-
-    /**
-     *  See the marks property definition in CSS2.
-     */
-    public String getMarks();
-    /**
-     *  See the marks property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMarks(String marks)
-                                             throws DOMException;
-
-    /**
-     *  See the max-height property definition in CSS2.
-     */
-    public String getMaxHeight();
-    /**
-     *  See the max-height property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMaxHeight(String maxHeight)
-                                             throws DOMException;
-
-    /**
-     *  See the max-width property definition in CSS2.
-     */
-    public String getMaxWidth();
-    /**
-     *  See the max-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMaxWidth(String maxWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the min-height property definition in CSS2.
-     */
-    public String getMinHeight();
-    /**
-     *  See the min-height property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMinHeight(String minHeight)
-                                             throws DOMException;
-
-    /**
-     *  See the min-width property definition in CSS2.
-     */
-    public String getMinWidth();
-    /**
-     *  See the min-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setMinWidth(String minWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the orphans property definition in CSS2.
-     */
-    public String getOrphans();
-    /**
-     *  See the orphans property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setOrphans(String orphans)
-                                             throws DOMException;
-
-    /**
-     *  See the outline property definition in CSS2.
-     */
-    public String getOutline();
-    /**
-     *  See the outline property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setOutline(String outline)
-                                             throws DOMException;
-
-    /**
-     *  See the outline-color property definition in CSS2.
-     */
-    public String getOutlineColor();
-    /**
-     *  See the outline-color property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setOutlineColor(String outlineColor)
-                                             throws DOMException;
-
-    /**
-     *  See the outline-style property definition in CSS2.
-     */
-    public String getOutlineStyle();
-    /**
-     *  See the outline-style property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setOutlineStyle(String outlineStyle)
-                                             throws DOMException;
-
-    /**
-     *  See the outline-width property definition in CSS2.
-     */
-    public String getOutlineWidth();
-    /**
-     *  See the outline-width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setOutlineWidth(String outlineWidth)
-                                             throws DOMException;
-
-    /**
-     *  See the overflow property definition in CSS2.
-     */
-    public String getOverflow();
-    /**
-     *  See the overflow property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setOverflow(String overflow)
-                                             throws DOMException;
-
-    /**
-     *  See the padding property definition in CSS2.
-     */
-    public String getPadding();
-    /**
-     *  See the padding property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPadding(String padding)
-                                             throws DOMException;
-
-    /**
-     *  See the padding-top property definition in CSS2.
-     */
-    public String getPaddingTop();
-    /**
-     *  See the padding-top property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPaddingTop(String paddingTop)
-                                             throws DOMException;
-
-    /**
-     *  See the padding-right property definition in CSS2.
-     */
-    public String getPaddingRight();
-    /**
-     *  See the padding-right property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPaddingRight(String paddingRight)
-                                             throws DOMException;
-
-    /**
-     *  See the padding-bottom property definition in CSS2.
-     */
-    public String getPaddingBottom();
-    /**
-     *  See the padding-bottom property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPaddingBottom(String paddingBottom)
-                                             throws DOMException;
-
-    /**
-     *  See the padding-left property definition in CSS2.
-     */
-    public String getPaddingLeft();
-    /**
-     *  See the padding-left property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPaddingLeft(String paddingLeft)
-                                             throws DOMException;
-
-    /**
-     *  See the page property definition in CSS2.
-     */
-    public String getPage();
-    /**
-     *  See the page property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPage(String page)
-                                             throws DOMException;
-
-    /**
-     *  See the page-break-after property definition in CSS2.
-     */
-    public String getPageBreakAfter();
-    /**
-     *  See the page-break-after property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPageBreakAfter(String pageBreakAfter)
-                                             throws DOMException;
-
-    /**
-     *  See the page-break-before property definition in CSS2.
-     */
-    public String getPageBreakBefore();
-    /**
-     *  See the page-break-before property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPageBreakBefore(String pageBreakBefore)
-                                             throws DOMException;
-
-    /**
-     *  See the page-break-inside property definition in CSS2.
-     */
-    public String getPageBreakInside();
-    /**
-     *  See the page-break-inside property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPageBreakInside(String pageBreakInside)
-                                             throws DOMException;
-
-    /**
-     *  See the pause property definition in CSS2.
-     */
-    public String getPause();
-    /**
-     *  See the pause property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPause(String pause)
-                                             throws DOMException;
-
-    /**
-     *  See the pause-after property definition in CSS2.
-     */
-    public String getPauseAfter();
-    /**
-     *  See the pause-after property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPauseAfter(String pauseAfter)
-                                             throws DOMException;
-
-    /**
-     *  See the pause-before property definition in CSS2.
-     */
-    public String getPauseBefore();
-    /**
-     *  See the pause-before property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPauseBefore(String pauseBefore)
-                                             throws DOMException;
-
-    /**
-     *  See the pitch property definition in CSS2.
-     */
-    public String getPitch();
-    /**
-     *  See the pitch property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPitch(String pitch)
-                                             throws DOMException;
-
-    /**
-     *  See the pitch-range property definition in CSS2.
-     */
-    public String getPitchRange();
-    /**
-     *  See the pitch-range property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPitchRange(String pitchRange)
-                                             throws DOMException;
-
-    /**
-     *  See the play-during property definition in CSS2.
-     */
-    public String getPlayDuring();
-    /**
-     *  See the play-during property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPlayDuring(String playDuring)
-                                             throws DOMException;
-
-    /**
-     *  See the position property definition in CSS2.
-     */
-    public String getPosition();
-    /**
-     *  See the position property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setPosition(String position)
-                                             throws DOMException;
-
-    /**
-     *  See the quotes property definition in CSS2.
-     */
-    public String getQuotes();
-    /**
-     *  See the quotes property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setQuotes(String quotes)
-                                             throws DOMException;
-
-    /**
-     *  See the richness property definition in CSS2.
-     */
-    public String getRichness();
-    /**
-     *  See the richness property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setRichness(String richness)
-                                             throws DOMException;
-
-    /**
-     *  See the right property definition in CSS2.
-     */
-    public String getRight();
-    /**
-     *  See the right property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setRight(String right)
-                                             throws DOMException;
-
-    /**
-     *  See the size property definition in CSS2.
-     */
-    public String getSize();
-    /**
-     *  See the size property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setSize(String size)
-                                             throws DOMException;
-
-    /**
-     *  See the speak property definition in CSS2.
-     */
-    public String getSpeak();
-    /**
-     *  See the speak property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setSpeak(String speak)
-                                             throws DOMException;
-
-    /**
-     *  See the speak-header property definition in CSS2.
-     */
-    public String getSpeakHeader();
-    /**
-     *  See the speak-header property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setSpeakHeader(String speakHeader)
-                                             throws DOMException;
-
-    /**
-     *  See the speak-numeral property definition in CSS2.
-     */
-    public String getSpeakNumeral();
-    /**
-     *  See the speak-numeral property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setSpeakNumeral(String speakNumeral)
-                                             throws DOMException;
-
-    /**
-     *  See the speak-punctuation property definition in CSS2.
-     */
-    public String getSpeakPunctuation();
-    /**
-     *  See the speak-punctuation property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setSpeakPunctuation(String speakPunctuation)
-                                             throws DOMException;
-
-    /**
-     *  See the speech-rate property definition in CSS2.
-     */
-    public String getSpeechRate();
-    /**
-     *  See the speech-rate property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setSpeechRate(String speechRate)
-                                             throws DOMException;
-
-    /**
-     *  See the stress property definition in CSS2.
-     */
-    public String getStress();
-    /**
-     *  See the stress property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setStress(String stress)
-                                             throws DOMException;
-
-    /**
-     *  See the table-layout property definition in CSS2.
-     */
-    public String getTableLayout();
-    /**
-     *  See the table-layout property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTableLayout(String tableLayout)
-                                             throws DOMException;
-
-    /**
-     *  See the text-align property definition in CSS2.
-     */
-    public String getTextAlign();
-    /**
-     *  See the text-align property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTextAlign(String textAlign)
-                                             throws DOMException;
-
-    /**
-     *  See the text-decoration property definition in CSS2.
-     */
-    public String getTextDecoration();
-    /**
-     *  See the text-decoration property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTextDecoration(String textDecoration)
-                                             throws DOMException;
-
-    /**
-     *  See the text-indent property definition in CSS2.
-     */
-    public String getTextIndent();
-    /**
-     *  See the text-indent property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTextIndent(String textIndent)
-                                             throws DOMException;
-
-    /**
-     *  See the text-shadow property definition in CSS2.
-     */
-    public String getTextShadow();
-    /**
-     *  See the text-shadow property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTextShadow(String textShadow)
-                                             throws DOMException;
-
-    /**
-     *  See the text-transform property definition in CSS2.
-     */
-    public String getTextTransform();
-    /**
-     *  See the text-transform property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTextTransform(String textTransform)
-                                             throws DOMException;
-
-    /**
-     *  See the top property definition in CSS2.
-     */
-    public String getTop();
-    /**
-     *  See the top property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setTop(String top)
-                                             throws DOMException;
-
-    /**
-     *  See the unicode-bidi property definition in CSS2.
-     */
-    public String getUnicodeBidi();
-    /**
-     *  See the unicode-bidi property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setUnicodeBidi(String unicodeBidi)
-                                             throws DOMException;
-
-    /**
-     *  See the vertical-align property definition in CSS2.
-     */
-    public String getVerticalAlign();
-    /**
-     *  See the vertical-align property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setVerticalAlign(String verticalAlign)
-                                             throws DOMException;
-
-    /**
-     *  See the visibility property definition in CSS2.
-     */
-    public String getVisibility();
-    /**
-     *  See the visibility property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setVisibility(String visibility)
-                                             throws DOMException;
-
-    /**
-     *  See the voice-family property definition in CSS2.
-     */
-    public String getVoiceFamily();
-    /**
-     *  See the voice-family property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setVoiceFamily(String voiceFamily)
-                                             throws DOMException;
-
-    /**
-     *  See the volume property definition in CSS2.
-     */
-    public String getVolume();
-    /**
-     *  See the volume property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setVolume(String volume)
-                                             throws DOMException;
-
-    /**
-     *  See the white-space property definition in CSS2.
-     */
-    public String getWhiteSpace();
-    /**
-     *  See the white-space property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setWhiteSpace(String whiteSpace)
-                                             throws DOMException;
-
-    /**
-     *  See the widows property definition in CSS2.
-     */
-    public String getWidows();
-    /**
-     *  See the widows property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setWidows(String widows)
-                                             throws DOMException;
-
-    /**
-     *  See the width property definition in CSS2.
-     */
-    public String getWidth();
-    /**
-     *  See the width property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setWidth(String width)
-                                             throws DOMException;
-
-    /**
-     *  See the word-spacing property definition in CSS2.
-     */
-    public String getWordSpacing();
-    /**
-     *  See the word-spacing property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setWordSpacing(String wordSpacing)
-                                             throws DOMException;
-
-    /**
-     *  See the z-index property definition in CSS2.
-     */
-    public String getZIndex();
-    /**
-     *  See the z-index property definition in CSS2.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setZIndex(String zIndex)
-                                             throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSCharsetRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSCharsetRule</code> interface represents a @charset rule in a
- * CSS style sheet. The value of the <code>encoding</code> attribute does
- * not affect the encoding of text data in the DOM objects; this encoding is
- * always UTF-16. After a stylesheet is loaded, the value of the
- * <code>encoding</code> attribute is the value found in the
- * <code>@charset</code> rule. If there was no <code>@charset</code> in the
- * original document, then no <code>CSSCharsetRule</code> is created. The
- * value of the <code>encoding</code> attribute may also be used as a hint
- * for the encoding used on serialization of the style sheet.
- * <p> The value of the @charset rule (and therefore of the
- * <code>CSSCharsetRule</code>) may not correspond to the encoding the
- * document actually came in; character encoding information e.g. in an HTTP
- * header, has priority (see CSS document representation) but this is not
- * reflected in the <code>CSSCharsetRule</code>.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSCharsetRule extends CSSRule {
-    /**
-     *  The encoding information used in this <code>@charset</code> rule.
-     */
-    public String getEncoding();
-    /**
-     *  The encoding information used in this <code>@charset</code> rule.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified encoding value has a syntax error
-     *   and is unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is
-     *   readonly.
-     */
-    public void setEncoding(String encoding)
-                           throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSFontFaceRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  The <code>CSSFontFaceRule</code> interface represents a @font-face rule in
- * a CSS style sheet. The <code>@font-face</code> rule is used to hold a set
- * of font descriptions.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSFontFaceRule extends CSSRule {
-    /**
-     *  The declaration-block of this rule.
-     */
-    public CSSStyleDeclaration getStyle();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSImportRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.stylesheets.MediaList;
-
-/**
- *  The <code>CSSImportRule</code> interface represents a @import rule within
- * a CSS style sheet. The <code>@import</code> rule is used to import style
- * rules from other style sheets.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSImportRule extends CSSRule {
-    /**
-     *  The location of the style sheet to be imported. The attribute will not
-     * contain the <code>"url(...)"</code> specifier around the URI.
-     */
-    public String getHref();
-
-    /**
-     *  A list of media types for which this style sheet may be used.
-     */
-    public MediaList getMedia();
-
-    /**
-     * The style sheet referred to by this rule, if it has been loaded. The
-     * value of this attribute is <code>null</code> if the style sheet has
-     * not yet been loaded or if it will not be loaded (e.g. if the style
-     * sheet is for a media type not supported by the user agent).
-     */
-    public CSSStyleSheet getStyleSheet();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSMediaRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.stylesheets.MediaList;
-
-/**
- *  The <code>CSSMediaRule</code> interface represents a @media rule in a CSS
- * style sheet. A <code>@media</code> rule can be used to delimit style
- * rules for specific media types.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSMediaRule extends CSSRule {
-    /**
-     *  A list of media types for this rule.
-     */
-    public MediaList getMedia();
-
-    /**
-     *  A list of all CSS rules contained within the media block.
-     */
-    public CSSRuleList getCssRules();
-
-    /**
-     *  Used to insert a new rule into the media block.
-     * @param rule  The parsable text representing the rule. For rule sets
-     *   this contains both the selector and the style declaration. For
-     *   at-rules, this specifies both the at-identifier and the rule
-     *   content.
-     * @param index  The index within the media block's rule collection of
-     *   the rule before which to insert the specified rule. If the
-     *   specified index is equal to the length of the media blocks's rule
-     *   collection, the rule will be added to the end of the media block.
-     * @return  The index within the media block's rule collection of the
-     *   newly inserted rule.
-     * @exception DOMException
-     *   HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
-     *   specified index, e.g., if an <code>@import</code> rule is inserted
-     *   after a standard rule set or other at-rule.
-     *   <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid
-     *   insertion point.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
-     *   readonly.
-     *   <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and
-     *   is unparsable.
-     */
-    public int insertRule(String rule,
-                          int index)
-                          throws DOMException;
-
-    /**
-     *  Used to delete a rule from the media block.
-     * @param index  The index within the media block's rule collection of
-     *   the rule to remove.
-     * @exception DOMException
-     *   INDEX_SIZE_ERR: Raised if the specified index does not correspond to
-     *   a rule in the media rule list.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
-     *   readonly.
-     */
-    public void deleteRule(int index)
-                           throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSPageRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSPageRule</code> interface represents a @page rule within a
- * CSS style sheet. The <code>@page</code> rule is used to specify the
- * dimensions, orientation, margins, etc. of a page box for paged media.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSPageRule extends CSSRule {
-    /**
-     *  The parsable textual representation of the page selector for the rule.
-     */
-    public String getSelectorText();
-    /**
-     *  The parsable textual representation of the page selector for the rule.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
-     *   error and is unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
-     */
-    public void setSelectorText(String selectorText)
-                           throws DOMException;
-
-    /**
-     *  The declaration-block of this rule.
-     */
-    public CSSStyleDeclaration getStyle();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSPrimitiveValue.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,325 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSPrimitiveValue</code> interface represents a single CSS value
- * . This interface may be used to determine the value of a specific style
- * property currently set in a block or to set a specific style property
- * explicitly within the block. An instance of this interface might be
- * obtained from the <code>getPropertyCSSValue</code> method of the
- * <code>CSSStyleDeclaration</code> interface. A
- * <code>CSSPrimitiveValue</code> object only occurs in a context of a CSS
- * property.
- * <p> Conversions are allowed between absolute values (from millimeters to
- * centimeters, from degrees to radians, and so on) but not between relative
- * values. (For example, a pixel value cannot be converted to a centimeter
- * value.) Percentage values can't be converted since they are relative to
- * the parent value (or another property value). There is one exception for
- * color percentage values: since a color percentage value is relative to
- * the range 0-255, a color percentage value can be converted to a number;
- * (see also the <code>RGBColor</code> interface).
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSPrimitiveValue extends CSSValue {
-    // UnitTypes
-    /**
-     * The value is not a recognized CSS2 value. The value can only be
-     * obtained by using the <code>cssText</code> attribute.
-     */
-    public static final short CSS_UNKNOWN               = 0;
-    /**
-     * The value is a simple number. The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_NUMBER                = 1;
-    /**
-     * The value is a percentage. The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_PERCENTAGE            = 2;
-    /**
-     * The value is a length (ems). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_EMS                   = 3;
-    /**
-     * The value is a length (exs). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_EXS                   = 4;
-    /**
-     * The value is a length (px). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_PX                    = 5;
-    /**
-     * The value is a length (cm). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_CM                    = 6;
-    /**
-     * The value is a length (mm). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_MM                    = 7;
-    /**
-     * The value is a length (in). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_IN                    = 8;
-    /**
-     * The value is a length (pt). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_PT                    = 9;
-    /**
-     * The value is a length (pc). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_PC                    = 10;
-    /**
-     * The value is an angle (deg). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_DEG                   = 11;
-    /**
-     * The value is an angle (rad). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_RAD                   = 12;
-    /**
-     * The value is an angle (grad). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_GRAD                  = 13;
-    /**
-     * The value is a time (ms). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_MS                    = 14;
-    /**
-     * The value is a time (s). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_S                     = 15;
-    /**
-     * The value is a frequency (Hz). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_HZ                    = 16;
-    /**
-     * The value is a frequency (kHz). The value can be obtained by using the
-     * <code>getFloatValue</code> method.
-     */
-    public static final short CSS_KHZ                   = 17;
-    /**
-     * The value is a number with an unknown dimension. The value can be
-     * obtained by using the <code>getFloatValue</code> method.
-     */
-    public static final short CSS_DIMENSION             = 18;
-    /**
-     * The value is a STRING. The value can be obtained by using the
-     * <code>getStringValue</code> method.
-     */
-    public static final short CSS_STRING                = 19;
-    /**
-     * The value is a URI. The value can be obtained by using the
-     * <code>getStringValue</code> method.
-     */
-    public static final short CSS_URI                   = 20;
-    /**
-     * The value is an identifier. The value can be obtained by using the
-     * <code>getStringValue</code> method.
-     */
-    public static final short CSS_IDENT                 = 21;
-    /**
-     * The value is a attribute function. The value can be obtained by using
-     * the <code>getStringValue</code> method.
-     */
-    public static final short CSS_ATTR                  = 22;
-    /**
-     * The value is a counter or counters function. The value can be obtained
-     * by using the <code>getCounterValue</code> method.
-     */
-    public static final short CSS_COUNTER               = 23;
-    /**
-     * The value is a rect function. The value can be obtained by using the
-     * <code>getRectValue</code> method.
-     */
-    public static final short CSS_RECT                  = 24;
-    /**
-     * The value is a RGB color. The value can be obtained by using the
-     * <code>getRGBColorValue</code> method.
-     */
-    public static final short CSS_RGBCOLOR              = 25;
-
-    /**
-     * The type of the value as defined by the constants specified above.
-     */
-    public short getPrimitiveType();
-
-    /**
-     *  A method to set the float value with a specified unit. If the property
-     * attached with this value can not accept the specified unit or the
-     * float value, the value will be unchanged and a
-     * <code>DOMException</code> will be raised.
-     * @param unitType  A unit code as defined above. The unit code can only
-     *   be a float unit type (i.e. <code>CSS_NUMBER</code>,
-     *   <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
-     *   <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
-     *   <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
-     *   <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
-     *   <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
-     *   <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
-     *   <code>CSS_DIMENSION</code>).
-     * @param floatValue  The new float value.
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the attached property doesn't support
-     *   the float value or the unit type.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setFloatValue(short unitType,
-                              float floatValue)
-                              throws DOMException;
-
-    /**
-     *  This method is used to get a float value in a specified unit. If this
-     * CSS value doesn't contain a float value or can't be converted into
-     * the specified unit, a <code>DOMException</code> is raised.
-     * @param unitType  A unit code to get the float value. The unit code can
-     *   only be a float unit type (i.e. <code>CSS_NUMBER</code>,
-     *   <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
-     *   <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
-     *   <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
-     *   <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
-     *   <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
-     *   <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
-     *   <code>CSS_DIMENSION</code>).
-     * @return  The float value in the specified unit.
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float
-     *   value or if the float value can't be converted into the specified
-     *   unit.
-     */
-    public float getFloatValue(short unitType)
-                               throws DOMException;
-
-    /**
-     *  A method to set the string value with the specified unit. If the
-     * property attached to this value can't accept the specified unit or
-     * the string value, the value will be unchanged and a
-     * <code>DOMException</code> will be raised.
-     * @param stringType  A string code as defined above. The string code can
-     *   only be a string unit type (i.e. <code>CSS_STRING</code>,
-     *   <code>CSS_URI</code>, <code>CSS_IDENT</code>, and
-     *   <code>CSS_ATTR</code>).
-     * @param stringValue  The new string value.
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
-     *   value or if the string value can't be converted into the specified
-     *   unit.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
-     */
-    public void setStringValue(short stringType,
-                               String stringValue)
-                               throws DOMException;
-
-    /**
-     *  This method is used to get the string value. If the CSS value doesn't
-     * contain a string value, a <code>DOMException</code> is raised.  Some
-     * properties (like 'font-family' or 'voice-family') convert a
-     * whitespace separated list of idents to a string.
-     * @return  The string value in the current unit. The current
-     *   <code>primitiveType</code> can only be a string unit type (i.e.
-     *   <code>CSS_STRING</code>, <code>CSS_URI</code>,
-     *   <code>CSS_IDENT</code> and <code>CSS_ATTR</code>).
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
-     *   value.
-     */
-    public String getStringValue()
-                                 throws DOMException;
-
-    /**
-     *  This method is used to get the Counter value. If this CSS value
-     * doesn't contain a counter value, a <code>DOMException</code> is
-     * raised. Modification to the corresponding style property can be
-     * achieved using the <code>Counter</code> interface.
-     * @return The Counter value.
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
-     *   Counter value (e.g. this is not <code>CSS_COUNTER</code>).
-     */
-    public Counter getCounterValue()
-                                   throws DOMException;
-
-    /**
-     *  This method is used to get the Rect value. If this CSS value doesn't
-     * contain a rect value, a <code>DOMException</code> is raised.
-     * Modification to the corresponding style property can be achieved
-     * using the <code>Rect</code> interface.
-     * @return The Rect value.
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect
-     *   value. (e.g. this is not <code>CSS_RECT</code>).
-     */
-    public Rect getRectValue()
-                             throws DOMException;
-
-    /**
-     *  This method is used to get the RGB color. If this CSS value doesn't
-     * contain a RGB color value, a <code>DOMException</code> is raised.
-     * Modification to the corresponding style property can be achieved
-     * using the <code>RGBColor</code> interface.
-     * @return the RGB color value.
-     * @exception DOMException
-     *    INVALID_ACCESS_ERR: Raised if the attached property can't return a
-     *   RGB color value (e.g. this is not <code>CSS_RGBCOLOR</code>).
-     */
-    public RGBColor getRGBColorValue()
-                                     throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSRule</code> interface is the abstract base interface for any
- * type of CSS statement. This includes both rule sets and at-rules. An
- * implementation is expected to preserve all rules specified in a CSS style
- * sheet, even if the rule is not recognized by the parser. Unrecognized
- * rules are represented using the <code>CSSUnknownRule</code> interface.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSRule {
-    // RuleType
-    /**
-     * The rule is a <code>CSSUnknownRule</code>.
-     */
-    public static final short UNKNOWN_RULE              = 0;
-    /**
-     * The rule is a <code>CSSStyleRule</code>.
-     */
-    public static final short STYLE_RULE                = 1;
-    /**
-     * The rule is a <code>CSSCharsetRule</code>.
-     */
-    public static final short CHARSET_RULE              = 2;
-    /**
-     * The rule is a <code>CSSImportRule</code>.
-     */
-    public static final short IMPORT_RULE               = 3;
-    /**
-     * The rule is a <code>CSSMediaRule</code>.
-     */
-    public static final short MEDIA_RULE                = 4;
-    /**
-     * The rule is a <code>CSSFontFaceRule</code>.
-     */
-    public static final short FONT_FACE_RULE            = 5;
-    /**
-     * The rule is a <code>CSSPageRule</code>.
-     */
-    public static final short PAGE_RULE                 = 6;
-
-    /**
-     *  The type of the rule, as defined above. The expectation is that
-     * binding-specific casting methods can be used to cast down from an
-     * instance of the <code>CSSRule</code> interface to the specific
-     * derived interface implied by the <code>type</code>.
-     */
-    public short getType();
-
-    /**
-     *  The parsable textual representation of the rule. This reflects the
-     * current state of the rule and not its initial value.
-     */
-    public String getCssText();
-    /**
-     *  The parsable textual representation of the rule. This reflects the
-     * current state of the rule and not its initial value.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
-     *   error and is unparsable.
-     *   <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
-     *   value represents a different type of rule than the current one.
-     *   <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
-     *   this point in the style sheet.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
-     */
-    public void setCssText(String cssText)
-                        throws DOMException;
-
-    /**
-     *  The style sheet that contains this rule.
-     */
-    public CSSStyleSheet getParentStyleSheet();
-
-    /**
-     *  If this rule is contained inside another rule (e.g. a style rule
-     * inside an @media block), this is the containing rule. If this rule is
-     * not nested inside any other rules, this returns <code>null</code>.
-     */
-    public CSSRule getParentRule();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSRuleList.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  The <code>CSSRuleList</code> interface provides the abstraction of an
- * ordered collection of CSS rules.
- * <p> The items in the <code>CSSRuleList</code> are accessible via an
- * integral index, starting from 0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSRuleList {
-    /**
-     *  The number of <code>CSSRules</code> in the list. The range of valid
-     * child rule indices is <code>0</code> to <code>length-1</code>
-     * inclusive.
-     */
-    public int getLength();
-
-    /**
-     *  Used to retrieve a CSS rule by ordinal index. The order in this
-     * collection represents the order of the rules in the CSS style sheet.
-     * If index is greater than or equal to the number of rules in the list,
-     * this returns <code>null</code>.
-     * @param index Index into the collection
-     * @return The style rule at the <code>index</code> position in the
-     *   <code>CSSRuleList</code>, or <code>null</code> if that is not a
-     *   valid index.
-     */
-    public CSSRule item(int index);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSStyleDeclaration.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSStyleDeclaration</code> interface represents a single CSS
- * declaration block. This interface may be used to determine the style
- * properties currently set in a block or to set style properties explicitly
- * within the block.
- * <p> While an implementation may not recognize all CSS properties within a
- * CSS declaration block, it is expected to provide access to all specified
- * properties in the style sheet through the <code>CSSStyleDeclaration</code>
- *  interface. Furthermore, implementations that support a specific level of
- * CSS should correctly handle CSS shorthand properties for that level. For
- * a further discussion of shorthand properties, see the
- * <code>CSS2Properties</code> interface.
- * <p> This interface is also used to provide a read-only access to the
- * computed values of an element. See also the <code>ViewCSS</code>
- * interface.  The CSS Object Model doesn't provide an access to the
- * specified or actual values of the CSS cascade.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSStyleDeclaration {
-    /**
-     *  The parsable textual representation of the declaration block
-     * (excluding the surrounding curly braces). Setting this attribute will
-     * result in the parsing of the new value and resetting of all the
-     * properties in the declaration block including the removal or addition
-     * of properties.
-     */
-    public String getCssText();
-    /**
-     *  The parsable textual representation of the declaration block
-     * (excluding the surrounding curly braces). Setting this attribute will
-     * result in the parsing of the new value and resetting of all the
-     * properties in the declaration block including the removal or addition
-     * of properties.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
-     *   error and is unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
-     *   readonly or a property is readonly.
-     */
-    public void setCssText(String cssText)
-                       throws DOMException;
-
-    /**
-     *  Used to retrieve the value of a CSS property if it has been explicitly
-     * set within this declaration block.
-     * @param propertyName  The name of the CSS property. See the CSS
-     *   property index.
-     * @return  Returns the value of the property if it has been explicitly
-     *   set for this declaration block. Returns the empty string if the
-     *   property has not been set.
-     */
-    public String getPropertyValue(String propertyName);
-
-    /**
-     *  Used to retrieve the object representation of the value of a CSS
-     * property if it has been explicitly set within this declaration block.
-     * This method returns <code>null</code> if the property is a shorthand
-     * property. Shorthand property values can only be accessed and modified
-     * as strings, using the <code>getPropertyValue</code> and
-     * <code>setProperty</code> methods.
-     * @param propertyName  The name of the CSS property. See the CSS
-     *   property index.
-     * @return  Returns the value of the property if it has been explicitly
-     *   set for this declaration block. Returns <code>null</code> if the
-     *   property has not been set.
-     */
-    public CSSValue getPropertyCSSValue(String propertyName);
-
-    /**
-     *  Used to remove a CSS property if it has been explicitly set within
-     * this declaration block.
-     * @param propertyName  The name of the CSS property. See the CSS
-     *   property index.
-     * @return  Returns the value of the property if it has been explicitly
-     *   set for this declaration block. Returns the empty string if the
-     *   property has not been set or the property name does not correspond
-     *   to a known CSS property.
-     * @exception DOMException
-     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly
-     *   or the property is readonly.
-     */
-    public String removeProperty(String propertyName)
-                                 throws DOMException;
-
-    /**
-     *  Used to retrieve the priority of a CSS property (e.g. the
-     * <code>"important"</code> qualifier) if the priority has been
-     * explicitly set in this declaration block.
-     * @param propertyName  The name of the CSS property. See the CSS
-     *   property index.
-     * @return  A string representing the priority (e.g.
-     *   <code>"important"</code>) if the property has been explicitly set
-     *   in this declaration block and has a priority specified. The empty
-     *   string otherwise.
-     */
-    public String getPropertyPriority(String propertyName);
-
-    /**
-     *  Used to set a property value and priority within this declaration
-     * block. <code>setProperty</code> permits to modify a property or add a
-     * new one in the declaration block. Any call to this method may modify
-     * the order of properties in the <code>item</code> method.
-     * @param propertyName  The name of the CSS property. See the CSS
-     *   property index.
-     * @param value  The new value of the property.
-     * @param priority  The new priority of the property (e.g.
-     *   <code>"important"</code>) or the empty string if none.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified value has a syntax error and is
-     *   unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
-     *   readonly or the property is readonly.
-     */
-    public void setProperty(String propertyName,
-                            String value,
-                            String priority)
-                            throws DOMException;
-
-    /**
-     *  The number of properties that have been explicitly set in this
-     * declaration block. The range of valid indices is 0 to length-1
-     * inclusive.
-     */
-    public int getLength();
-
-    /**
-     *  Used to retrieve the properties that have been explicitly set in this
-     * declaration block. The order of the properties retrieved using this
-     * method does not have to be the order in which they were set. This
-     * method can be used to iterate over all properties in this declaration
-     * block.
-     * @param index  Index of the property name to retrieve.
-     * @return  The name of the property at this ordinal position. The empty
-     *   string if no property exists at this position.
-     */
-    public String item(int index);
-
-    /**
-     *  The CSS rule that contains this declaration block or <code>null</code>
-     * if this <code>CSSStyleDeclaration</code> is not attached to a
-     * <code>CSSRule</code>.
-     */
-    public CSSRule getParentRule();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSStyleRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSStyleRule</code> interface represents a single rule set in a
- * CSS style sheet.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSStyleRule extends CSSRule {
-    /**
-     *  The textual representation of the selector for the rule set. The
-     * implementation may have stripped out insignificant whitespace while
-     * parsing the selector.
-     */
-    public String getSelectorText();
-    /**
-     *  The textual representation of the selector for the rule set. The
-     * implementation may have stripped out insignificant whitespace while
-     * parsing the selector.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
-     *   error and is unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
-     */
-    public void setSelectorText(String selectorText)
-                        throws DOMException;
-
-    /**
-     *  The declaration-block of this rule set.
-     */
-    public CSSStyleDeclaration getStyle();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSStyleSheet.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.stylesheets.StyleSheet;
-
-/**
- *  The <code>CSSStyleSheet</code> interface is a concrete interface used to
- * represent a CSS style sheet i.e., a style sheet whose content type is
- * "text/css".
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSStyleSheet extends StyleSheet {
-    /**
-     *  If this style sheet comes from an <code>@import</code> rule, the
-     * <code>ownerRule</code> attribute will contain the
-     * <code>CSSImportRule</code>. In that case, the <code>ownerNode</code>
-     * attribute in the <code>StyleSheet</code> interface will be
-     * <code>null</code>. If the style sheet comes from an element or a
-     * processing instruction, the <code>ownerRule</code> attribute will be
-     * <code>null</code> and the <code>ownerNode</code> attribute will
-     * contain the <code>Node</code>.
-     */
-    public CSSRule getOwnerRule();
-
-    /**
-     *  The list of all CSS rules contained within the style sheet. This
-     * includes both rule sets and at-rules.
-     */
-    public CSSRuleList getCssRules();
-
-    /**
-     *  Used to insert a new rule into the style sheet. The new rule now
-     * becomes part of the cascade.
-     * @param rule  The parsable text representing the rule. For rule sets
-     *   this contains both the selector and the style declaration. For
-     *   at-rules, this specifies both the at-identifier and the rule
-     *   content.
-     * @param index  The index within the style sheet's rule list of the rule
-     *   before which to insert the specified rule. If the specified index
-     *   is equal to the length of the style sheet's rule collection, the
-     *   rule will be added to the end of the style sheet.
-     * @return  The index within the style sheet's rule collection of the
-     *   newly inserted rule.
-     * @exception DOMException
-     *   HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
-     *   specified index e.g. if an <code>@import</code> rule is inserted
-     *   after a standard rule set or other at-rule.
-     *   <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid
-     *   insertion point.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
-     *   readonly.
-     *   <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and
-     *   is unparsable.
-     */
-    public int insertRule(String rule,
-                          int index)
-                          throws DOMException;
-
-    /**
-     *  Used to delete a rule from the style sheet.
-     * @param index  The index within the style sheet's rule list of the rule
-     *   to remove.
-     * @exception DOMException
-     *   INDEX_SIZE_ERR: Raised if the specified index does not correspond to
-     *   a rule in the style sheet's rule list.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
-     *   readonly.
-     */
-    public void deleteRule(int index)
-                           throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSUnknownRule.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  The <code>CSSUnknownRule</code> interface represents an at-rule not
- * supported by this user agent.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSUnknownRule extends CSSRule {
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSValue.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>CSSValue</code> interface represents a simple or a complex
- * value. A <code>CSSValue</code> object only occurs in a context of a CSS
- * property.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSValue {
-    // UnitTypes
-    /**
-     * The value is inherited and the <code>cssText</code> contains "inherit".
-     */
-    public static final short CSS_INHERIT               = 0;
-    /**
-     * The value is a primitive value and an instance of the
-     * <code>CSSPrimitiveValue</code> interface can be obtained by using
-     * binding-specific casting methods on this instance of the
-     * <code>CSSValue</code> interface.
-     */
-    public static final short CSS_PRIMITIVE_VALUE       = 1;
-    /**
-     * The value is a <code>CSSValue</code> list and an instance of the
-     * <code>CSSValueList</code> interface can be obtained by using
-     * binding-specific casting methods on this instance of the
-     * <code>CSSValue</code> interface.
-     */
-    public static final short CSS_VALUE_LIST            = 2;
-    /**
-     * The value is a custom value.
-     */
-    public static final short CSS_CUSTOM                = 3;
-
-    /**
-     *  A string representation of the current value.
-     */
-    public String getCssText();
-    /**
-     *  A string representation of the current value.
-     * @exception DOMException
-     *    SYNTAX_ERR: Raised if the specified CSS string value has a syntax
-     *   error (according to the attached property) or is unparsable.
-     *   <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
-     *   value represents a different type of values than the values allowed
-     *   by the CSS property.
-     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly.
-     */
-    public void setCssText(String cssText)
-                       throws DOMException;
-
-    /**
-     *  A code defining the type of the value as defined above.
-     */
-    public short getCssValueType();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/CSSValueList.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- * The <code>CSSValueList</code> interface provides the abstraction of an
- * ordered collection of CSS values.
- * <p> Some properties allow an empty list into their syntax. In that case,
- * these properties take the <code>none</code> identifier. So, an empty list
- * means that the property has the value <code>none</code>.
- * <p> The items in the <code>CSSValueList</code> are accessible via an
- * integral index, starting from 0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface CSSValueList extends CSSValue {
-    /**
-     * The number of <code>CSSValues</code> in the list. The range of valid
-     * values of the indices is <code>0</code> to <code>length-1</code>
-     * inclusive.
-     */
-    public int getLength();
-
-    /**
-     * Used to retrieve a <code>CSSValue</code> by ordinal index. The order in
-     * this collection represents the order of the values in the CSS style
-     * property. If index is greater than or equal to the number of values
-     * in the list, this returns <code>null</code>.
-     * @param index Index into the collection.
-     * @return The <code>CSSValue</code> at the <code>index</code> position
-     *   in the <code>CSSValueList</code>, or <code>null</code> if that is
-     *   not a valid index.
-     */
-    public CSSValue item(int index);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/Counter.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  The <code>Counter</code> interface is used to represent any counter or
- * counters function value. This interface reflects the values in the
- * underlying style property.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface Counter {
-    /**
-     *  This attribute is used for the identifier of the counter.
-     */
-    public String getIdentifier();
-
-    /**
-     *  This attribute is used for the style of the list.
-     */
-    public String getListStyle();
-
-    /**
-     *  This attribute is used for the separator of the nested counters.
-     */
-    public String getSeparator();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/DOMImplementationCSS.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.DOMException;
-
-/**
- *  This interface allows the DOM user to create a <code>CSSStyleSheet</code>
- * outside the context of a document. There is no way to associate the new
- * <code>CSSStyleSheet</code> with a document in DOM Level 2.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM   Level 2
- */
-public interface DOMImplementationCSS extends DOMImplementation {
-    /**
-     * Creates a new <code>CSSStyleSheet</code>.
-     * @param title  The advisory title. See also the  section.
-     * @param media  The comma-separated list of media associated with the
-     *   new style sheet. See also the  section.
-     * @return A new CSS style sheet.
-     * @exception DOMException
-     *    SYNTAX_ERR: Raised if the specified media string value has a syntax
-     *   error and is unparsable.
-     */
-    public CSSStyleSheet createCSSStyleSheet(String title,
-                                             String media)
-                                             throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/DocumentCSS.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.stylesheets.DocumentStyle;
-
-/**
- * This interface represents a document with a CSS view.
- * <p> The <code>getOverrideStyle</code> method provides a mechanism through
- * which a DOM author could effect immediate change to the style of an
- * element without modifying the explicitly linked style sheets of a
- * document or the inline style of elements in the style sheets. This style
- * sheet comes after the author style sheet in the cascade algorithm and is
- * called override style sheet. The override style sheet takes precedence
- * over author style sheets. An "!important" declaration still takes
- * precedence over a normal declaration. Override, author, and user style
- * sheets all may contain "!important" declarations. User "!important" rules
- * take precedence over both override and author "!important" rules, and
- * override "!important" rules take precedence over author "!important"
- * rules.
- * <p> The expectation is that an instance of the <code>DocumentCSS</code>
- * interface can be obtained by using binding-specific casting methods on an
- * instance of the <code>Document</code> interface.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface DocumentCSS extends DocumentStyle {
-    /**
-     *  This method is used to retrieve the override style declaration for a
-     * specified element and a specified pseudo-element.
-     * @param elt  The element whose style is to be modified. This parameter
-     *   cannot be null.
-     * @param pseudoElt  The pseudo-element or <code>null</code> if none.
-     * @return  The override style declaration.
-     */
-    public CSSStyleDeclaration getOverrideStyle(Element elt,
-                                                String pseudoElt);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/ElementCSSInlineStyle.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  Inline style information attached to elements is exposed through the
- * <code>style</code> attribute. This represents the contents of the STYLE
- * attribute for HTML elements (or elements in other schemas or DTDs which
- * use the STYLE attribute in the same way). The expectation is that an
- * instance of the ElementCSSInlineStyle interface can be obtained by using
- * binding-specific casting methods on an instance of the Element interface
- * when the element supports inline CSS style informations.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface ElementCSSInlineStyle {
-    /**
-     *  The style attribute.
-     */
-    public CSSStyleDeclaration getStyle();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/RGBColor.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  The <code>RGBColor</code> interface is used to represent any RGB color
- * value. This interface reflects the values in the underlying style
- * property. Hence, modifications made to the <code>CSSPrimitiveValue</code>
- * objects modify the style property.
- * <p> A specified RGB color is not clipped (even if the number is outside the
- * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the
- * device.
- * <p> Even if a style sheet can only contain an integer for a color value,
- * the internal storage of this integer is a float, and this can be used as
- * a float in the specified or the computed style.
- * <p> A color percentage value can always be converted to a number and vice
- * versa.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface RGBColor {
-    /**
-     *  This attribute is used for the red value of the RGB color.
-     */
-    public CSSPrimitiveValue getRed();
-
-    /**
-     *  This attribute is used for the green value of the RGB color.
-     */
-    public CSSPrimitiveValue getGreen();
-
-    /**
-     *  This attribute is used for the blue value of the RGB color.
-     */
-    public CSSPrimitiveValue getBlue();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/Rect.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-/**
- *  The <code>Rect</code> interface is used to represent any rect value. This
- * interface reflects the values in the underlying style property. Hence,
- * modifications made to the <code>CSSPrimitiveValue</code> objects modify
- * the style property.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface Rect {
-    /**
-     *  This attribute is used for the top of the rect.
-     */
-    public CSSPrimitiveValue getTop();
-
-    /**
-     *  This attribute is used for the right of the rect.
-     */
-    public CSSPrimitiveValue getRight();
-
-    /**
-     *  This attribute is used for the bottom of the rect.
-     */
-    public CSSPrimitiveValue getBottom();
-
-    /**
-     *  This attribute is used for the left of the rect.
-     */
-    public CSSPrimitiveValue getLeft();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/css/ViewCSS.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.css;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.views.AbstractView;
-
-/**
- *  This interface represents a CSS view. The <code>getComputedStyle</code>
- * method provides a read only access to the computed values of an element.
- * <p> The expectation is that an instance of the <code>ViewCSS</code>
- * interface can be obtained by using binding-specific casting methods on an
- * instance of the <code>AbstractView</code> interface.
- * <p> Since a computed style is related to an <code>Element</code> node, if
- * this element is removed from the document, the associated
- * <code>CSSStyleDeclaration</code> and <code>CSSValue</code> related to
- * this declaration are no longer valid.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface ViewCSS extends AbstractView {
-    /**
-     *  This method is used to get the computed style as it is defined in [<a href='http://www.w3.org/TR/1998/REC-CSS2-19980512'>CSS2</a>].
-     * @param elt  The element whose style is to be computed. This parameter
-     *   cannot be null.
-     * @param pseudoElt  The pseudo-element or <code>null</code> if none.
-     * @return  The computed style. The <code>CSSStyleDeclaration</code> is
-     *   read-only and contains only absolute values.
-     */
-    public CSSStyleDeclaration getComputedStyle(Element elt,
-                                                String pseudoElt);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLAnchorElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  The anchor element. See the  A element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLAnchorElement extends HTMLElement {
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  The character encoding of the linked resource. See the  charset
-     * attribute definition in HTML 4.0.
-     */
-    public String getCharset();
-    public void setCharset(String charset);
-
-    /**
-     *  Comma-separated list of lengths, defining an active region geometry.
-     * See also <code>shape</code> for the shape of the region. See the
-     * coords attribute definition in HTML 4.0.
-     */
-    public String getCoords();
-    public void setCoords(String coords);
-
-    /**
-     *  The URI of the linked resource. See the  href attribute definition in
-     * HTML 4.0.
-     */
-    public String getHref();
-    public void setHref(String href);
-
-    /**
-     *  Language code of the linked resource. See the  hreflang attribute
-     * definition in HTML 4.0.
-     */
-    public String getHreflang();
-    public void setHreflang(String hreflang);
-
-    /**
-     *  Anchor name. See the  name attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Forward link type. See the  rel attribute definition in HTML 4.0.
-     */
-    public String getRel();
-    public void setRel(String rel);
-
-    /**
-     *  Reverse link type. See the  rev attribute definition in HTML 4.0.
-     */
-    public String getRev();
-    public void setRev(String rev);
-
-    /**
-     *  The shape of the active area. The coordinates are given by
-     * <code>coords</code> . See the  shape attribute definition in HTML 4.0.
-     */
-    public String getShape();
-    public void setShape(String shape);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  Frame to render the resource in. See the  target attribute definition
-     * in HTML 4.0.
-     */
-    public String getTarget();
-    public void setTarget(String target);
-
-    /**
-     *  Advisory content type. See the  type attribute definition in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-    /**
-     *  Removes keyboard focus from this element.
-     */
-    public void blur();
-
-    /**
-     *  Gives keyboard focus to this element.
-     */
-    public void focus();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLAppletElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  An embedded Java applet. See the  APPLET element definition in HTML 4.0.
- * This element is deprecated in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLAppletElement extends HTMLElement {
-    /**
-     *  Aligns this object (vertically or horizontally)  with respect to its
-     * surrounding text. See the  align attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Alternate text for user agents not rendering the normal content of
-     * this element. See the  alt attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getAlt();
-    public void setAlt(String alt);
-
-    /**
-     *  Comma-separated archive list. See the  archive attribute definition in
-     * HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getArchive();
-    public void setArchive(String archive);
-
-    /**
-     *  Applet class file.  See the  code attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getCode();
-    public void setCode(String code);
-
-    /**
-     *  Optional base URI for applet. See the  codebase attribute definition
-     * in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getCodeBase();
-    public void setCodeBase(String codeBase);
-
-    /**
-     *  Override height. See the  height attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getHeight();
-    public void setHeight(String height);
-
-    /**
-     *  Horizontal space to the left and right of this image, applet, or
-     * object. See the  hspace attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getHspace();
-    public void setHspace(String hspace);
-
-    /**
-     *  The name of the applet. See the  name attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Serialized applet file. See the  object attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getObject();
-    public void setObject(String object);
-
-    /**
-     *  Vertical space above and below this image, applet, or object. See the
-     * vspace attribute definition in HTML 4.0. This attribute is deprecated
-     * in HTML 4.0.
-     */
-    public String getVspace();
-    public void setVspace(String vspace);
-
-    /**
-     *  Override width. See the  width attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLAreaElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Client-side image map area definition. See the  AREA element definition in
- * HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLAreaElement extends HTMLElement {
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  Alternate text for user agents not rendering the normal content of
-     * this element. See the  alt attribute definition in HTML 4.0.
-     */
-    public String getAlt();
-    public void setAlt(String alt);
-
-    /**
-     *  Comma-separated list of lengths, defining an active region geometry.
-     * See also <code>shape</code> for the shape of the region. See the
-     * coords attribute definition in HTML 4.0.
-     */
-    public String getCoords();
-    public void setCoords(String coords);
-
-    /**
-     *  The URI of the linked resource. See the  href attribute definition in
-     * HTML 4.0.
-     */
-    public String getHref();
-    public void setHref(String href);
-
-    /**
-     *  Specifies that this area is inactive, i.e., has no associated action.
-     * See the  nohref attribute definition in HTML 4.0.
-     */
-    public boolean getNoHref();
-    public void setNoHref(boolean noHref);
-
-    /**
-     *  The shape of the active area. The coordinates are given by
-     * <code>coords</code> . See the  shape attribute definition in HTML 4.0.
-     */
-    public String getShape();
-    public void setShape(String shape);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  Frame to render the resource in. See the  target attribute definition
-     * in HTML 4.0.
-     */
-    public String getTarget();
-    public void setTarget(String target);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBRElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Force a line break. See the  BR element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLBRElement extends HTMLElement {
-    /**
-     *  Control flow of text around floats. See the  clear attribute definition
-     *  in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getClear();
-    public void setClear(String clear);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBaseElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Document base URI. See the  BASE element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLBaseElement extends HTMLElement {
-    /**
-     *  The base URI. See the  href attribute definition in HTML 4.0.
-     */
-    public String getHref();
-    public void setHref(String href);
-
-    /**
-     *  The default target frame. See the  target attribute definition in HTML
-     * 4.0.
-     */
-    public String getTarget();
-    public void setTarget(String target);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBaseFontElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Base font. See the  BASEFONT element definition in HTML 4.0. This element
- * is deprecated in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLBaseFontElement extends HTMLElement {
-    /**
-     *  Font color. See the  color attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getColor();
-    public void setColor(String color);
-
-    /**
-     *  Font face identifier. See the  face attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getFace();
-    public void setFace(String face);
-
-    /**
-     *  Font size. See the  size attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getSize();
-    public void setSize(String size);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLBodyElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  The HTML document body. This element is always present in the DOM API,
- * even if the tags are not present in the source document. See the  BODY
- * element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLBodyElement extends HTMLElement {
-    /**
-     *  Color of active links (after mouse-button down, but before
-     * mouse-button up). See the  alink attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getALink();
-    public void setALink(String aLink);
-
-    /**
-     *  URI of the background texture tile image. See the  background
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public String getBackground();
-    public void setBackground(String background);
-
-    /**
-     *  Document background color. See the  bgcolor attribute definition in
-     * HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getBgColor();
-    public void setBgColor(String bgColor);
-
-    /**
-     *  Color of links that are not active and unvisited. See the  link
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public String getLink();
-    public void setLink(String link);
-
-    /**
-     *  Document text color. See the  text attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getText();
-    public void setText(String text);
-
-    /**
-     *  Color of links that have been visited by the user. See the  vlink
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public String getVLink();
-    public void setVLink(String vLink);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLButtonElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Push button. See the  BUTTON element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLButtonElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  The control is unavailable in this context. See the  disabled
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  Form control or object name when submitted with a form. See the  name
-     * attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  The type of button. See the  type attribute definition in HTML 4.0.
-     */
-    public String getType();
-
-    /**
-     *  The current form control value. See the  value attribute definition in
-     * HTML 4.0.
-     */
-    public String getValue();
-    public void setValue(String value);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLCollection.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.Node;
-
-/**
- *  An <code>HTMLCollection</code> is a list of nodes. An individual node may
- * be accessed by either ordinal index or the node's<code>name</code> or
- * <code>id</code> attributes.  Note: Collections in the HTML DOM are assumed
- * to be  live meaning that they are automatically updated when the
- * underlying document is changed.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLCollection {
-    /**
-     *  This attribute specifies the length or  size of the list.
-     */
-    public int getLength();
-
-    /**
-     *  This method retrieves a node specified by ordinal index. Nodes are
-     * numbered in tree order (depth-first traversal order).
-     * @param index  The index of the node to be fetched. The index origin is
-     *   0.
-     * @return  The <code>Node</code> at the corresponding position upon
-     *   success. A value of <code>null</code> is returned if the index is
-     *   out of range.
-     */
-    public Node item(int index);
-
-    /**
-     *  This method retrieves a <code>Node</code> using a name. It first
-     * searches for a <code>Node</code> with a matching <code>id</code>
-     * attribute. If it doesn't find one, it then searches for a
-     * <code>Node</code> with a matching <code>name</code> attribute, but
-     * only on those elements that are allowed a name attribute.
-     * @param name  The name of the <code>Node</code> to be fetched.
-     * @return  The <code>Node</code> with a <code>name</code> or
-     *   <code>id</code> attribute whose value corresponds to the specified
-     *   string. Upon failure (e.g., no node with this name exists), returns
-     *   <code>null</code> .
-     */
-    public Node namedItem(String name);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDListElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Definition list. See the  DL element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLDListElement extends HTMLElement {
-    /**
-     *  Reduce spacing between list items. See the  compact attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getCompact();
-    public void setCompact(boolean compact);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDOMImplementation.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.DOMImplementation;
-
-/**
- *  The <code>HTMLDOMImplementation</code> interface extends the
- * <code>DOMImplementation</code> interface with a method for creating an
- * HTML document instance.
- * @since DOM Level 2
- */
-public interface HTMLDOMImplementation extends DOMImplementation {
-    /**
-     *  Creates an <code>HTMLDocument</code> object with the minimal tree made
-     * of the following elements: <code>HTML</code> , <code>HEAD</code> ,
-     * <code>TITLE</code> , and <code>BODY</code> .
-     * @param title  The title of the document to be set as the content of the
-     *   <code>TITLE</code> element, through a child <code>Text</code> node.
-     * @return  A new <code>HTMLDocument</code> object.
-     */
-    public HTMLDocument createHTMLDocument(String title);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDirectoryElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Directory list. See the  DIR element definition in HTML 4.0. This element
- * is deprecated in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLDirectoryElement extends HTMLElement {
-    /**
-     *  Reduce spacing between list items. See the  compact attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getCompact();
-    public void setCompact(boolean compact);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDivElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Generic block container. See the  DIV element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLDivElement extends HTMLElement {
-    /**
-     *  Horizontal text alignment. See the  align attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLDocument.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
-
-/**
- *  An <code>HTMLDocument</code> is the root of the HTML hierarchy and holds
- * the entire content. Besides providing access to the hierarchy, it also
- * provides some convenience methods for accessing certain sets of
- * information from the document.
- * <p> The following properties have been deprecated in favor of the
- * corresponding ones for the <code>BODY</code> element: alinkColor background
- *  bgColor fgColor linkColor vlinkColor In DOM Level 2, the method
- * <code>getElementById</code> is inherited from the <code>Document</code>
- * interface where it was moved.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLDocument extends Document {
-    /**
-     *  The title of a document as specified by the <code>TITLE</code> element
-     * in the head of the document.
-     */
-    public String getTitle();
-    public void setTitle(String title);
-
-    /**
-     *  Returns the URI  of the page that linked to this page. The value is an
-     * empty string if the user navigated to the page directly (not through a
-     * link, but, for example, via a bookmark).
-     */
-    public String getReferrer();
-
-    /**
-     *  The domain name of the server that served the document, or
-     * <code>null</code> if the server cannot be identified by a domain name.
-     */
-    public String getDomain();
-
-    /**
-     *  The complete URI  of the document.
-     */
-    public String getURL();
-
-    /**
-     *  The element that contains the content for the document. In documents
-     * with <code>BODY</code> contents, returns the <code>BODY</code>
-     * element. In frameset documents, this returns the outermost
-     * <code>FRAMESET</code> element.
-     */
-    public HTMLElement getBody();
-    public void setBody(HTMLElement body);
-
-    /**
-     *  A collection of all the <code>IMG</code> elements in a document. The
-     * behavior is limited to <code>IMG</code> elements for backwards
-     * compatibility.
-     */
-    public HTMLCollection getImages();
-
-    /**
-     *  A collection of all the <code>OBJECT</code> elements that include
-     * applets and <code>APPLET</code> ( deprecated ) elements in a document.
-     */
-    public HTMLCollection getApplets();
-
-    /**
-     *  A collection of all <code>AREA</code> elements and anchor (
-     * <code>A</code> ) elements in a document with a value for the
-     * <code>href</code> attribute.
-     */
-    public HTMLCollection getLinks();
-
-    /**
-     *  A collection of all the forms of a document.
-     */
-    public HTMLCollection getForms();
-
-    /**
-     *  A collection of all the anchor (<code>A</code> ) elements in a document
-     *  with a value for the <code>name</code> attribute. Note. For reasons
-     * of backwards compatibility, the returned set of anchors only contains
-     * those anchors created with the <code>name</code>  attribute, not those
-     * created with the <code>id</code> attribute.
-     */
-    public HTMLCollection getAnchors();
-
-    /**
-     *  The cookies associated with this document. If there are none, the
-     * value is an empty string. Otherwise, the value is a string: a
-     * semicolon-delimited list of "name, value" pairs for all the cookies
-     * associated with the page. For example,
-     * <code>name=value;expires=date</code> .
-     */
-    public String getCookie();
-    public void setCookie(String cookie);
-
-    /**
-     *  Note. This method and the ones following  allow a user to add to or
-     * replace the structure model of a document using strings of unparsed
-     * HTML. At the time of  writing alternate methods for providing similar
-     * functionality for  both HTML and XML documents were being considered.
-     * The following methods may be deprecated at some point in the future in
-     * favor of a more general-purpose mechanism.
-     * <br> Open a document stream for writing. If a document exists in the
-     * target, this method clears it.
-     */
-    public void open();
-
-    /**
-     *  Closes a document stream opened by <code>open()</code> and forces
-     * rendering.
-     */
-    public void close();
-
-    /**
-     *  Write a string of text to a document stream opened by
-     * <code>open()</code> . The text is parsed into the document's structure
-     * model.
-     * @param text  The string to be parsed into some structure in the
-     *   document structure model.
-     */
-    public void write(String text);
-
-    /**
-     *  Write a string of text followed by a newline character to a document
-     * stream opened by <code>open()</code> . The text is parsed into the
-     * document's structure model.
-     * @param text  The string to be parsed into some structure in the
-     *   document structure model.
-     */
-    public void writeln(String text);
-
-    /**
-     *  Returns the (possibly empty) collection of elements whose
-     * <code>name</code> value is given by <code>elementName</code> .
-     * @param elementName  The <code>name</code> attribute value for an
-     *   element.
-     * @return  The matching elements.
-     */
-    public NodeList getElementsByName(String elementName);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.Element;
-
-/**
- *  All HTML element interfaces derive from this class. Elements that only
- * expose the HTML core attributes are represented by the base
- * <code>HTMLElement</code> interface. These elements are as follows:  HEAD
- * special: SUB, SUP, SPAN, BDO font: TT, I, B, U, S, STRIKE, BIG, SMALL
- * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBR list:
- * DD, DT NOFRAMES, NOSCRIPT ADDRESS, CENTER The <code>style</code> attribute
- * of an HTML element is accessible through the
- * <code>ElementCSSInlineStyle</code> interface which is defined in the  .
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLElement extends Element {
-    /**
-     *  The element's identifier. See the  id attribute definition in HTML 4.0.
-     */
-    public String getId();
-    public void setId(String id);
-
-    /**
-     *  The element's advisory title. See the  title attribute definition in
-     * HTML 4.0.
-     */
-    public String getTitle();
-    public void setTitle(String title);
-
-    /**
-     *  Language code defined in RFC 1766. See the  lang attribute definition
-     * in HTML 4.0.
-     */
-    public String getLang();
-    public void setLang(String lang);
-
-    /**
-     *  Specifies the base direction of directionally neutral text and the
-     * directionality of tables. See the  dir attribute definition in HTML
-     * 4.0.
-     */
-    public String getDir();
-    public void setDir(String dir);
-
-    /**
-     *  The class attribute of the element. This attribute has been renamed
-     * due to conflicts with the "class" keyword exposed by many languages.
-     * See the  class attribute definition in HTML 4.0.
-     */
-    public String getClassName();
-    public void setClassName(String className);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFieldSetElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Organizes form controls into logical groups. See the   FIELDSET  element
- * definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLFieldSetElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFontElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Local change to font. See the  FONT element definition in HTML 4.0. This
- * element is deprecated in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLFontElement extends HTMLElement {
-    /**
-     *  Font color. See the  color attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getColor();
-    public void setColor(String color);
-
-    /**
-     *  Font face identifier. See the  face attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getFace();
-    public void setFace(String face);
-
-    /**
-     *  Font size. See the  size attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getSize();
-    public void setSize(String size);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFormElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  The <code>FORM</code> element encompasses behavior similar to a collection
- * and an element. It provides direct access to the contained input elements
- * as well as the attributes of the form element. See the  FORM element
- * definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLFormElement extends HTMLElement {
-    /**
-     *  Returns a collection of all control elements in the form.
-     */
-    public HTMLCollection getElements();
-
-    /**
-     *  The number of form controls in the form.
-     */
-    public int getLength();
-
-    /**
-     *  Names the form.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  List of character sets supported by the server. See the
-     * accept-charset attribute definition in HTML 4.0.
-     */
-    public String getAcceptCharset();
-    public void setAcceptCharset(String acceptCharset);
-
-    /**
-     *  Server-side form handler. See the  action attribute definition in HTML
-     * 4.0.
-     */
-    public String getAction();
-    public void setAction(String action);
-
-    /**
-     *  The content type of the submitted form,  generally
-     * "application/x-www-form-urlencoded".  See the  enctype attribute
-     * definition in HTML 4.0.
-     */
-    public String getEnctype();
-    public void setEnctype(String enctype);
-
-    /**
-     *  HTTP method used to submit form. See the  method attribute definition
-     * in HTML 4.0.
-     */
-    public String getMethod();
-    public void setMethod(String method);
-
-    /**
-     *  Frame to render the resource in. See the  target attribute definition
-     * in HTML 4.0.
-     */
-    public String getTarget();
-    public void setTarget(String target);
-
-    /**
-     *  Submits the form. It performs the same action as a  submit button.
-     */
-    public void submit();
-
-    /**
-     *  Restores a form element's default values. It performs  the same action
-     * as a reset button.
-     */
-    public void reset();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFrameElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.Document;
-
-/**
- *  Create a frame. See the  FRAME element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLFrameElement extends HTMLElement {
-    /**
-     *  Request frame borders. See the  frameborder attribute definition in
-     * HTML 4.0.
-     */
-    public String getFrameBorder();
-    public void setFrameBorder(String frameBorder);
-
-    /**
-     *  URI designating a long description of this image or frame. See the
-     * longdesc attribute definition in HTML 4.0.
-     */
-    public String getLongDesc();
-    public void setLongDesc(String longDesc);
-
-    /**
-     *  Frame margin height, in pixels. See the  marginheight attribute
-     * definition in HTML 4.0.
-     */
-    public String getMarginHeight();
-    public void setMarginHeight(String marginHeight);
-
-    /**
-     *  Frame margin width, in pixels. See the  marginwidth attribute
-     * definition in HTML 4.0.
-     */
-    public String getMarginWidth();
-    public void setMarginWidth(String marginWidth);
-
-    /**
-     *  The frame name (object of the <code>target</code> attribute). See the
-     * name attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  When true, forbid user from resizing frame. See the  noresize
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getNoResize();
-    public void setNoResize(boolean noResize);
-
-    /**
-     *  Specify whether or not the frame should have scrollbars. See the
-     * scrolling attribute definition in HTML 4.0.
-     */
-    public String getScrolling();
-    public void setScrolling(String scrolling);
-
-    /**
-     *  A URI designating the initial frame contents. See the  src attribute
-     * definition in HTML 4.0.
-     */
-    public String getSrc();
-    public void setSrc(String src);
-
-    /**
-     *  The document this frame contains, if there is any and it is available,
-     * or <code>null</code> otherwise.
-     * @since DOM Level 2
-     */
-    public Document getContentDocument();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLFrameSetElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Create a grid of frames. See the  FRAMESET element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLFrameSetElement extends HTMLElement {
-    /**
-     *  The number of columns of frames in the frameset. See the  cols
-     * attribute definition in HTML 4.0.
-     */
-    public String getCols();
-    public void setCols(String cols);
-
-    /**
-     *  The number of rows of frames in the frameset. See the  rows attribute
-     * definition in HTML 4.0.
-     */
-    public String getRows();
-    public void setRows(String rows);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHRElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Create a horizontal rule. See the  HR element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLHRElement extends HTMLElement {
-    /**
-     *  Align the rule on the page. See the  align attribute definition in
-     * HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Indicates to the user agent that there should be no shading in the
-     * rendering of this element. See the  noshade attribute definition in
-     * HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getNoShade();
-    public void setNoShade(boolean noShade);
-
-    /**
-     *  The height of the rule. See the  size attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getSize();
-    public void setSize(String size);
-
-    /**
-     *  The width of the rule. See the  width attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHeadElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Document head information. See the  HEAD element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLHeadElement extends HTMLElement {
-    /**
-     *  URI designating a metadata profile. See the  profile attribute
-     * definition in HTML 4.0.
-     */
-    public String getProfile();
-    public void setProfile(String profile);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHeadingElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  For the <code>H1</code> to <code>H6</code> elements. See the  H1 element
- * definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLHeadingElement extends HTMLElement {
-    /**
-     *  Horizontal text alignment. See the  align attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLHtmlElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Root of an HTML document. See the  HTML element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLHtmlElement extends HTMLElement {
-    /**
-     *  Version information about the document's DTD. See the  version
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public String getVersion();
-    public void setVersion(String version);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLIFrameElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.Document;
-
-/**
- *  Inline subwindows. See the  IFRAME element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLIFrameElement extends HTMLElement {
-    /**
-     *  Aligns this object (vertically or horizontally)  with respect to its
-     * surrounding text. See the  align attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Request frame borders. See the  frameborder attribute definition in
-     * HTML 4.0.
-     */
-    public String getFrameBorder();
-    public void setFrameBorder(String frameBorder);
-
-    /**
-     *  Frame height. See the  height attribute definition in HTML 4.0.
-     */
-    public String getHeight();
-    public void setHeight(String height);
-
-    /**
-     *  URI designating a long description of this image or frame. See the
-     * longdesc attribute definition in HTML 4.0.
-     */
-    public String getLongDesc();
-    public void setLongDesc(String longDesc);
-
-    /**
-     *  Frame margin height, in pixels. See the  marginheight attribute
-     * definition in HTML 4.0.
-     */
-    public String getMarginHeight();
-    public void setMarginHeight(String marginHeight);
-
-    /**
-     *  Frame margin width, in pixels. See the  marginwidth attribute
-     * definition in HTML 4.0.
-     */
-    public String getMarginWidth();
-    public void setMarginWidth(String marginWidth);
-
-    /**
-     *  The frame name (object of the <code>target</code> attribute). See the
-     * name attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Specify whether or not the frame should have scrollbars. See the
-     * scrolling attribute definition in HTML 4.0.
-     */
-    public String getScrolling();
-    public void setScrolling(String scrolling);
-
-    /**
-     *  A URI designating the initial frame contents. See the  src attribute
-     * definition in HTML 4.0.
-     */
-    public String getSrc();
-    public void setSrc(String src);
-
-    /**
-     *  Frame width. See the  width attribute definition in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-    /**
-     *  The document this frame contains, if there is any and it is available,
-     * or <code>null</code> otherwise.
-     * @since DOM Level 2
-     */
-    public Document getContentDocument();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLImageElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Embedded image. See the  IMG element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLImageElement extends HTMLElement {
-    /**
-     *  URI designating the source of this image, for low-resolution output.
-     */
-    public String getLowSrc();
-    public void setLowSrc(String lowSrc);
-
-    /**
-     *  The name of the element (for backwards compatibility).
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Aligns this object (vertically or horizontally)  with respect to its
-     * surrounding text. See the  align attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Alternate text for user agents not rendering the normal content of
-     * this element. See the  alt attribute definition in HTML 4.0.
-     */
-    public String getAlt();
-    public void setAlt(String alt);
-
-    /**
-     *  Width of border around image. See the  border attribute definition in
-     * HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getBorder();
-    public void setBorder(String border);
-
-    /**
-     *  Override height. See the  height attribute definition in HTML 4.0.
-     */
-    public String getHeight();
-    public void setHeight(String height);
-
-    /**
-     *  Horizontal space to the left and right of this image. See the  hspace
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public String getHspace();
-    public void setHspace(String hspace);
-
-    /**
-     *  Use server-side image map. See the  ismap attribute definition in HTML
-     * 4.0.
-     */
-    public boolean getIsMap();
-    public void setIsMap(boolean isMap);
-
-    /**
-     *  URI designating a long description of this image or frame. See the
-     * longdesc attribute definition in HTML 4.0.
-     */
-    public String getLongDesc();
-    public void setLongDesc(String longDesc);
-
-    /**
-     *  URI designating the source of this image. See the  src attribute
-     * definition in HTML 4.0.
-     */
-    public String getSrc();
-    public void setSrc(String src);
-
-    /**
-     *  Use client-side image map. See the  usemap attribute definition in
-     * HTML 4.0.
-     */
-    public String getUseMap();
-    public void setUseMap(String useMap);
-
-    /**
-     *  Vertical space above and below this image. See the  vspace attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getVspace();
-    public void setVspace(String vspace);
-
-    /**
-     *  Override width. See the  width attribute definition in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLInputElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Form control.  Note. Depending upon the environment in which the page is
- * being viewed, the value property may be read-only for the file upload
- * input type. For the "password" input type, the actual value returned may
- * be masked to prevent unauthorized use. See the  INPUT element definition
- * in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLInputElement extends HTMLElement {
-    /**
-     *  When the <code>type</code> attribute of the element has the value
-     * "Text", "File" or "Password", this represents the HTML value attribute
-     * of the element. The value of this attribute does not change if the
-     * contents of the corresponding form control, in an interactive user
-     * agent, changes. Changing this attribute, however, resets the contents
-     * of the form control. See the  value attribute definition in HTML 4.0.
-     */
-    public String getDefaultValue();
-    public void setDefaultValue(String defaultValue);
-
-    /**
-     *  When <code>type</code> has the value "Radio" or "Checkbox", this
-     * represents the HTML checked attribute of the element. The value of
-     * this attribute does not change if the state of the corresponding form
-     * control, in an interactive user agent, changes. Changes to this
-     * attribute, however, resets the state of the form control. See the
-     * checked attribute definition in HTML 4.0.
-     */
-    public boolean getDefaultChecked();
-    public void setDefaultChecked(boolean defaultChecked);
-
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  A comma-separated list of content types that a server processing this
-     * form will handle correctly. See the  accept attribute definition in
-     * HTML 4.0.
-     */
-    public String getAccept();
-    public void setAccept(String accept);
-
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  Aligns this object (vertically or horizontally)  with respect to its
-     * surrounding text. See the  align attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Alternate text for user agents not rendering the normal content of
-     * this element. See the  alt attribute definition in HTML 4.0.
-     */
-    public String getAlt();
-    public void setAlt(String alt);
-
-    /**
-     *  When the <code>type</code> attribute of the element has the value
-     * "Radio" or "Checkbox", this represents the current state of the form
-     * control, in an interactive user agent. Changes to this attribute
-     * change the state of the form control, but do not change the value of
-     * the HTML value attribute of the element.
-     */
-    public boolean getChecked();
-    public void setChecked(boolean checked);
-
-    /**
-     *  The control is unavailable in this context. See the  disabled
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  Maximum number of characters for text fields, when <code>type</code>
-     * has the value "Text" or "Password". See the  maxlength attribute
-     * definition in HTML 4.0.
-     */
-    public int getMaxLength();
-    public void setMaxLength(int maxLength);
-
-    /**
-     *  Form control or object name when submitted with a form. See the  name
-     * attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  This control is read-only. Relevant only when <code>type</code> has
-     * the value "Text" or "Password". See the  readonly attribute definition
-     * in HTML 4.0.
-     */
-    public boolean getReadOnly();
-    public void setReadOnly(boolean readOnly);
-
-    /**
-     *  Size information. The precise meaning is specific to each type of
-     * field.  See the  size attribute definition in HTML 4.0.
-     */
-    public String getSize();
-    public void setSize(String size);
-
-    /**
-     *  When the <code>type</code> attribute has the value "Image", this
-     * attribute specifies the location of the image to be used to decorate
-     * the graphical submit button. See the  src attribute definition in HTML
-     * 4.0.
-     */
-    public String getSrc();
-    public void setSrc(String src);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  The type of control created. See the  type attribute definition in
-     * HTML 4.0.
-     */
-    public String getType();
-
-    /**
-     *  Use client-side image map. See the  usemap attribute definition in
-     * HTML 4.0.
-     */
-    public String getUseMap();
-    public void setUseMap(String useMap);
-
-    /**
-     *  When the <code>type</code> attribute of the element has the value
-     * "Text", "File" or "Password", this represents the current contents of
-     * the corresponding form control, in an interactive user agent. Changing
-     * this attribute changes the contents of the form control, but does not
-     * change the value of the HTML value attribute of the element. When the
-     * <code>type</code> attribute of the element has the value "Button",
-     * "Hidden", "Submit", "Reset", "Image", "Checkbox" or "Radio", this
-     * represents the HTML value attribute of the element. See the  value
-     * attribute definition in HTML 4.0.
-     */
-    public String getValue();
-    public void setValue(String value);
-
-    /**
-     *  Removes keyboard focus from this element.
-     */
-    public void blur();
-
-    /**
-     *  Gives keyboard focus to this element.
-     */
-    public void focus();
-
-    /**
-     *  Select the contents of the text area. For <code>INPUT</code> elements
-     * whose <code>type</code> attribute has one of the following values:
-     * "Text", "File", or "Password".
-     */
-    public void select();
-
-    /**
-     *  Simulate a mouse-click. For <code>INPUT</code> elements whose
-     * <code>type</code> attribute has one of the following values: "Button",
-     * "Checkbox", "Radio", "Reset", or "Submit".
-     */
-    public void click();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLIsIndexElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  This element is used for single-line text input. See the  ISINDEX element
- * definition in HTML 4.0. This element is deprecated in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLIsIndexElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  The prompt message. See the  prompt attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getPrompt();
-    public void setPrompt(String prompt);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLIElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  List item. See the  LI element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLLIElement extends HTMLElement {
-    /**
-     *  List item bullet style. See the  type attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-    /**
-     *  Reset sequence number when used in <code>OL</code> . See the  value
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public int getValue();
-    public void setValue(int value);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLabelElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Form field label text. See the  LABEL element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLLabelElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  This attribute links this label with another form control by
-     * <code>id</code> attribute. See the  for attribute definition in HTML
-     * 4.0.
-     */
-    public String getHtmlFor();
-    public void setHtmlFor(String htmlFor);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLegendElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Provides a caption for a <code>FIELDSET</code> grouping.  See the  LEGEND
- * element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLLegendElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  Text alignment relative to <code>FIELDSET</code> . See the  align
-     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
-     * 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLLinkElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  The <code>LINK</code> element specifies a link to an external resource,
- * and defines this document's relationship to that resource (or vice versa).
- *  See the  LINK element definition in HTML 4.0  (see also the
- * <code>LinkStyle</code> interface in the  module).
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLLinkElement extends HTMLElement {
-    /**
-     *  Enables/disables the link. This is currently only used for style sheet
-     * links, and may be used to activate or deactivate style sheets.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  The character encoding of the resource being linked to. See the
-     * charset attribute definition in HTML 4.0.
-     */
-    public String getCharset();
-    public void setCharset(String charset);
-
-    /**
-     *  The URI of the linked resource. See the  href attribute definition in
-     * HTML 4.0.
-     */
-    public String getHref();
-    public void setHref(String href);
-
-    /**
-     *  Language code of the linked resource. See the  hreflang attribute
-     * definition in HTML 4.0.
-     */
-    public String getHreflang();
-    public void setHreflang(String hreflang);
-
-    /**
-     *  Designed for use with one or more target media. See the  media
-     * attribute definition in HTML 4.0.
-     */
-    public String getMedia();
-    public void setMedia(String media);
-
-    /**
-     *  Forward link type. See the  rel attribute definition in HTML 4.0.
-     */
-    public String getRel();
-    public void setRel(String rel);
-
-    /**
-     *  Reverse link type. See the  rev attribute definition in HTML 4.0.
-     */
-    public String getRev();
-    public void setRev(String rev);
-
-    /**
-     *  Frame to render the resource in. See the  target attribute definition
-     * in HTML 4.0.
-     */
-    public String getTarget();
-    public void setTarget(String target);
-
-    /**
-     *  Advisory content type. See the  type attribute definition in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLMapElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Client-side image map. See the  MAP element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLMapElement extends HTMLElement {
-    /**
-     *  The list of areas defined for the image map.
-     */
-    public HTMLCollection getAreas();
-
-    /**
-     *  Names the map (for use with <code>usemap</code> ). See the  name
-     * attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLMenuElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Menu list. See the  MENU element definition in HTML 4.0. This element is
- * deprecated in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLMenuElement extends HTMLElement {
-    /**
-     *  Reduce spacing between list items. See the  compact attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getCompact();
-    public void setCompact(boolean compact);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLMetaElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  This contains generic meta-information about the document. See the  META
- * element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLMetaElement extends HTMLElement {
-    /**
-     *  Associated information. See the  content attribute definition in HTML
-     * 4.0.
-     */
-    public String getContent();
-    public void setContent(String content);
-
-    /**
-     *  HTTP response header name. See the  http-equiv attribute definition in
-     * HTML 4.0.
-     */
-    public String getHttpEquiv();
-    public void setHttpEquiv(String httpEquiv);
-
-    /**
-     *  Meta information name. See the  name attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Select form of content. See the  scheme attribute definition in HTML
-     * 4.0.
-     */
-    public String getScheme();
-    public void setScheme(String scheme);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLModElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Notice of modification to part of a document. See the   INS  and  DEL
- * element definitions in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLModElement extends HTMLElement {
-    /**
-     *  A URI designating a document that describes the reason for the change.
-     * See the  cite attribute definition in HTML 4.0.
-     */
-    public String getCite();
-    public void setCite(String cite);
-
-    /**
-     *  The date and time of the change. See the  datetime attribute definition
-     *  in HTML 4.0.
-     */
-    public String getDateTime();
-    public void setDateTime(String dateTime);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLOListElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Ordered list. See the  OL element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLOListElement extends HTMLElement {
-    /**
-     *  Reduce spacing between list items. See the  compact attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getCompact();
-    public void setCompact(boolean compact);
-
-    /**
-     *  Starting sequence number. See the  start attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public int getStart();
-    public void setStart(int start);
-
-    /**
-     *  Numbering style. See the  type attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLObjectElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.Document;
-
-/**
- *  Generic embedded object.  Note. In principle, all properties on the object
- * element are read-write but in some environments some properties may be
- * read-only once the underlying object is instantiated. See the  OBJECT
- * element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLObjectElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  Applet class file. See the <code>code</code> attribute for
-     * HTMLAppletElement.
-     */
-    public String getCode();
-    public void setCode(String code);
-
-    /**
-     *  Aligns this object (vertically or horizontally)  with respect to its
-     * surrounding text. See the  align attribute definition in HTML 4.0.
-     * This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Space-separated list of archives. See the  archive attribute definition
-     *  in HTML 4.0.
-     */
-    public String getArchive();
-    public void setArchive(String archive);
-
-    /**
-     *  Width of border around the object. See the  border attribute definition
-     *  in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getBorder();
-    public void setBorder(String border);
-
-    /**
-     *  Base URI for <code>classid</code> , <code>data</code> , and
-     * <code>archive</code> attributes. See the  codebase attribute definition
-     *  in HTML 4.0.
-     */
-    public String getCodeBase();
-    public void setCodeBase(String codeBase);
-
-    /**
-     *  Content type for data downloaded via <code>classid</code> attribute.
-     * See the  codetype attribute definition in HTML 4.0.
-     */
-    public String getCodeType();
-    public void setCodeType(String codeType);
-
-    /**
-     *  A URI specifying the location of the object's data.  See the  data
-     * attribute definition in HTML 4.0.
-     */
-    public String getData();
-    public void setData(String data);
-
-    /**
-     *  Declare (for future reference), but do not instantiate, this object.
-     * See the  declare attribute definition in HTML 4.0.
-     */
-    public boolean getDeclare();
-    public void setDeclare(boolean declare);
-
-    /**
-     *  Override height. See the  height attribute definition in HTML 4.0.
-     */
-    public String getHeight();
-    public void setHeight(String height);
-
-    /**
-     *  Horizontal space to the left and right of this image, applet, or
-     * object. See the  hspace attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getHspace();
-    public void setHspace(String hspace);
-
-    /**
-     *  Form control or object name when submitted with a form. See the  name
-     * attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Message to render while loading the object. See the  standby attribute
-     * definition in HTML 4.0.
-     */
-    public String getStandby();
-    public void setStandby(String standby);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  Content type for data downloaded via <code>data</code> attribute. See
-     * the  type attribute definition in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-    /**
-     *  Use client-side image map. See the  usemap attribute definition in
-     * HTML 4.0.
-     */
-    public String getUseMap();
-    public void setUseMap(String useMap);
-
-    /**
-     *  Vertical space above and below this image, applet, or object. See the
-     * vspace attribute definition in HTML 4.0. This attribute is deprecated
-     * in HTML 4.0.
-     */
-    public String getVspace();
-    public void setVspace(String vspace);
-
-    /**
-     *  Override width. See the  width attribute definition in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-    /**
-     *  The document this object contains, if there is any and it is
-     * available, or <code>null</code> otherwise.
-     * @since DOM Level 2
-     */
-    public Document getContentDocument();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLOptGroupElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Group options together in logical subdivisions. See the  OPTGROUP element
- * definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLOptGroupElement extends HTMLElement {
-    /**
-     *  The control is unavailable in this context. See the  disabled
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  Assigns a label to this option group. See the  label attribute
-     * definition in HTML 4.0.
-     */
-    public String getLabel();
-    public void setLabel(String label);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLOptionElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  A selectable choice. See the  OPTION element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLOptionElement extends HTMLElement {
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  Represents the value of the HTML selected attribute. The value of this
-     * attribute does not change if the state of the corresponding form
-     * control, in an interactive user agent, changes. Changing
-     * <code>defaultSelected</code> , however, resets the state of the form
-     * control. See the  selected attribute definition in HTML 4.0.
-     */
-    public boolean getDefaultSelected();
-    public void setDefaultSelected(boolean defaultSelected);
-
-    /**
-     *  The text contained within the option element.
-     */
-    public String getText();
-
-    /**
-     *  The index of this <code>OPTION</code> in its parent <code>SELECT</code>
-     *  , starting from 0.
-     */
-    public int getIndex();
-
-    /**
-     *  The control is unavailable in this context. See the  disabled
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  Option label for use in hierarchical menus. See the  label attribute
-     * definition in HTML 4.0.
-     */
-    public String getLabel();
-    public void setLabel(String label);
-
-    /**
-     *  Represents the current state of the corresponding form control, in an
-     * interactive user agent. Changing this attribute changes the state of
-     * the form control, but does not change the value of the HTML selected
-     * attribute of the element.
-     */
-    public boolean getSelected();
-    public void setSelected(boolean selected);
-
-    /**
-     *  The current form control value. See the  value attribute definition in
-     * HTML 4.0.
-     */
-    public String getValue();
-    public void setValue(String value);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLParagraphElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Paragraphs. See the  P element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLParagraphElement extends HTMLElement {
-    /**
-     *  Horizontal text alignment. See the  align attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLParamElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Parameters fed to the <code>OBJECT</code> element. See the  PARAM element
- * definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLParamElement extends HTMLElement {
-    /**
-     *  The name of a run-time parameter. See the  name attribute definition
-     * in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Content type for the <code>value</code> attribute when
-     * <code>valuetype</code> has the value "ref". See the  type attribute
-     * definition in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-    /**
-     *  The value of a run-time parameter. See the  value attribute definition
-     * in HTML 4.0.
-     */
-    public String getValue();
-    public void setValue(String value);
-
-    /**
-     *  Information about the meaning of the <code>value</code> attribute
-     * value. See the  valuetype attribute definition in HTML 4.0.
-     */
-    public String getValueType();
-    public void setValueType(String valueType);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLPreElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Preformatted text. See the  PRE element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLPreElement extends HTMLElement {
-    /**
-     *  Fixed width for content. See the  width attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public int getWidth();
-    public void setWidth(int width);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLQuoteElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  For the <code>Q</code> and <code>BLOCKQUOTE</code> elements. See the  Q
- * element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLQuoteElement extends HTMLElement {
-    /**
-     *  A URI designating a source document or message. See the  cite
-     * attribute definition in HTML 4.0.
-     */
-    public String getCite();
-    public void setCite(String cite);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLScriptElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Script statements. See the  SCRIPT element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLScriptElement extends HTMLElement {
-    /**
-     *  The script content of the element.
-     */
-    public String getText();
-    public void setText(String text);
-
-    /**
-     *  Reserved for future use.
-     */
-    public String getHtmlFor();
-    public void setHtmlFor(String htmlFor);
-
-    /**
-     *  Reserved for future use.
-     */
-    public String getEvent();
-    public void setEvent(String event);
-
-    /**
-     *  The character encoding of the linked resource. See the  charset
-     * attribute definition in HTML 4.0.
-     */
-    public String getCharset();
-    public void setCharset(String charset);
-
-    /**
-     *  Indicates that the user agent can defer processing of the script.  See
-     * the  defer attribute definition in HTML 4.0.
-     */
-    public boolean getDefer();
-    public void setDefer(boolean defer);
-
-    /**
-     *  URI designating an external script. See the  src attribute definition
-     * in HTML 4.0.
-     */
-    public String getSrc();
-    public void setSrc(String src);
-
-    /**
-     *  The content type of the script language. See the  type attribute
-     * definition in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLSelectElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The select element allows the selection of an option. The contained
- * options can be directly accessed through the select element as a
- * collection. See the  SELECT element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLSelectElement extends HTMLElement {
-    /**
-     *  The type of this form control. This is the string "select-multiple"
-     * when the multiple attribute is <code>true</code> and the string
-     * "select-one" when <code>false</code> .
-     */
-    public String getType();
-
-    /**
-     *  The ordinal index of the selected option, starting from 0. The value
-     * -1 is returned if no element is selected. If multiple options are
-     * selected, the index of the first selected option is returned.
-     */
-    public int getSelectedIndex();
-    public void setSelectedIndex(int selectedIndex);
-
-    /**
-     *  The current form control value.
-     */
-    public String getValue();
-    public void setValue(String value);
-
-    /**
-     *  The number of options in this <code>SELECT</code> .
-     */
-    public int getLength();
-
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  The collection of <code>OPTION</code> elements contained by this
-     * element.
-     */
-    public HTMLCollection getOptions();
-
-    /**
-     *  The control is unavailable in this context. See the  disabled
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  If true, multiple <code>OPTION</code> elements may  be selected in
-     * this <code>SELECT</code> . See the  multiple attribute definition in
-     * HTML 4.0.
-     */
-    public boolean getMultiple();
-    public void setMultiple(boolean multiple);
-
-    /**
-     *  Form control or object name when submitted with a form. See the  name
-     * attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  Number of visible rows. See the  size attribute definition in HTML 4.0.
-     */
-    public int getSize();
-    public void setSize(int size);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  Add a new element to the collection of <code>OPTION</code> elements
-     * for this <code>SELECT</code> . This method is the equivalent of the
-     * <code>appendChild</code> method of the <code>Node</code> interface if
-     * the <code>before</code> parameter is <code>null</code> . It is
-     * equivalent to the <code>insertBefore</code> method on the parent of
-     * <code>before</code> in all other cases.
-     * @param element  The element to add.
-     * @param before  The element to insert before, or <code>null</code> for
-     *   the tail of the list.
-     * @exception DOMException
-     *    NOT_FOUND_ERR: Raised if <code>before</code> is not a descendant of
-     *   the <code>SELECT</code> element.
-     */
-    public void add(HTMLElement element,
-                    HTMLElement before)
-                    throws DOMException;
-
-    /**
-     *  Remove an element from the collection of <code>OPTION</code> elements
-     * for this <code>SELECT</code> . Does nothing if no element has the given
-     *  index.
-     * @param index  The index of the item to remove, starting from 0.
-     */
-    public void remove(int index);
-
-    /**
-     *  Removes keyboard focus from this element.
-     */
-    public void blur();
-
-    /**
-     *  Gives keyboard focus to this element.
-     */
-    public void focus();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLStyleElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Style information. See the  STYLE element definition in HTML 4.0, the
- * module and the <code>LinkStyle</code> interface in the  module.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLStyleElement extends HTMLElement {
-    /**
-     *  Enables/disables the style sheet.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  Designed for use with one or more target media. See the  media
-     * attribute definition in HTML 4.0.
-     */
-    public String getMedia();
-    public void setMedia(String media);
-
-    /**
-     *  The content type pf the style sheet language. See the  type attribute
-     * definition in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableCaptionElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Table caption See the  CAPTION element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTableCaptionElement extends HTMLElement {
-    /**
-     *  Caption alignment with respect to the table. See the  align attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableCellElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  The object used to represent the <code>TH</code> and <code>TD</code>
- * elements. See the  TD element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTableCellElement extends HTMLElement {
-    /**
-     *  The index of this cell in the row, starting from 0. This index is in
-     * document tree order and not display order.
-     */
-    public int getCellIndex();
-
-    /**
-     *  Abbreviation for header cells. See the  abbr attribute definition in
-     * HTML 4.0.
-     */
-    public String getAbbr();
-    public void setAbbr(String abbr);
-
-    /**
-     *  Horizontal alignment of data in cell. See the  align attribute
-     * definition in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Names group of related headers. See the  axis attribute definition in
-     * HTML 4.0.
-     */
-    public String getAxis();
-    public void setAxis(String axis);
-
-    /**
-     *  Cell background color. See the  bgcolor attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getBgColor();
-    public void setBgColor(String bgColor);
-
-    /**
-     *  Alignment character for cells in a column. See the  char attribute
-     * definition in HTML 4.0.
-     */
-    public String getCh();
-    public void setCh(String ch);
-
-    /**
-     *  Offset of alignment character. See the  charoff attribute definition
-     * in HTML 4.0.
-     */
-    public String getChOff();
-    public void setChOff(String chOff);
-
-    /**
-     *  Number of columns spanned by cell. See the  colspan attribute
-     * definition in HTML 4.0.
-     */
-    public int getColSpan();
-    public void setColSpan(int colSpan);
-
-    /**
-     *  List of <code>id</code> attribute values for header cells. See the
-     * headers attribute definition in HTML 4.0.
-     */
-    public String getHeaders();
-    public void setHeaders(String headers);
-
-    /**
-     *  Cell height. See the  height attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getHeight();
-    public void setHeight(String height);
-
-    /**
-     *  Suppress word wrapping. See the  nowrap attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getNoWrap();
-    public void setNoWrap(boolean noWrap);
-
-    /**
-     *  Number of rows spanned by cell. See the  rowspan attribute definition
-     * in HTML 4.0.
-     */
-    public int getRowSpan();
-    public void setRowSpan(int rowSpan);
-
-    /**
-     *  Scope covered by header cells. See the  scope attribute definition in
-     * HTML 4.0.
-     */
-    public String getScope();
-    public void setScope(String scope);
-
-    /**
-     *  Vertical alignment of data in cell. See the  valign attribute
-     * definition in HTML 4.0.
-     */
-    public String getVAlign();
-    public void setVAlign(String vAlign);
-
-    /**
-     *  Cell width. See the  width attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableColElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Regroups the <code>COL</code> and <code>COLGROUP</code> elements. See the
- * COL element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTableColElement extends HTMLElement {
-    /**
-     *  Horizontal alignment of cell data in column. See the  align attribute
-     * definition in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Alignment character for cells in a column. See the  char attribute
-     * definition in HTML 4.0.
-     */
-    public String getCh();
-    public void setCh(String ch);
-
-    /**
-     *  Offset of alignment character. See the  charoff attribute definition
-     * in HTML 4.0.
-     */
-    public String getChOff();
-    public void setChOff(String chOff);
-
-    /**
-     *  Indicates the number of columns in a group or affected by a grouping.
-     * See the  span attribute definition in HTML 4.0.
-     */
-    public int getSpan();
-    public void setSpan(int span);
-
-    /**
-     *  Vertical alignment of cell data in column. See the  valign attribute
-     * definition in HTML 4.0.
-     */
-    public String getVAlign();
-    public void setVAlign(String vAlign);
-
-    /**
-     *  Default column width. See the  width attribute definition in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The create* and delete* methods on the table allow authors to construct
- * and modify tables. HTML 4.0 specifies that only one of each of the
- * <code>CAPTION</code> , <code>THEAD</code> , and <code>TFOOT</code>
- * elements may exist in a table. Therefore, if one exists, and the
- * createTHead() or createTFoot() method is called, the method returns the
- * existing THead or TFoot element. See the  TABLE element definition in HTML
- * 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTableElement extends HTMLElement {
-    /**
-     *  Returns the table's <code>CAPTION</code> , or void if none exists.
-     */
-    public HTMLTableCaptionElement getCaption();
-    public void setCaption(HTMLTableCaptionElement caption);
-
-    /**
-     *  Returns the table's <code>THEAD</code> , or <code>null</code> if none
-     * exists.
-     */
-    public HTMLTableSectionElement getTHead();
-    public void setTHead(HTMLTableSectionElement tHead);
-
-    /**
-     *  Returns the table's <code>TFOOT</code> , or <code>null</code> if none
-     * exists.
-     */
-    public HTMLTableSectionElement getTFoot();
-    public void setTFoot(HTMLTableSectionElement tFoot);
-
-    /**
-     *  Returns a collection of all the rows in the table, including all in
-     * <code>THEAD</code> , <code>TFOOT</code> , all <code>TBODY</code>
-     * elements.
-     */
-    public HTMLCollection getRows();
-
-    /**
-     *  Returns a collection of the defined table bodies.
-     */
-    public HTMLCollection getTBodies();
-
-    /**
-     *  Specifies the table's position with respect to the rest of the
-     * document. See the  align attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Cell background color. See the  bgcolor attribute definition in HTML
-     * 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getBgColor();
-    public void setBgColor(String bgColor);
-
-    /**
-     *  The width of the border around the table. See the  border attribute
-     * definition in HTML 4.0.
-     */
-    public String getBorder();
-    public void setBorder(String border);
-
-    /**
-     *  Specifies the horizontal and vertical space between cell content and
-     * cell borders. See the  cellpadding attribute definition in HTML 4.0.
-     */
-    public String getCellPadding();
-    public void setCellPadding(String cellPadding);
-
-    /**
-     *  Specifies the horizontal and vertical separation between cells. See
-     * the  cellspacing attribute definition in HTML 4.0.
-     */
-    public String getCellSpacing();
-    public void setCellSpacing(String cellSpacing);
-
-    /**
-     *  Specifies which external table borders to render. See the  frame
-     * attribute definition in HTML 4.0.
-     */
-    public String getFrame();
-    public void setFrame(String frame);
-
-    /**
-     *  Specifies which internal table borders to render. See the  rules
-     * attribute definition in HTML 4.0.
-     */
-    public String getRules();
-    public void setRules(String rules);
-
-    /**
-     *  Description about the purpose or structure of a table. See the
-     * summary attribute definition in HTML 4.0.
-     */
-    public String getSummary();
-    public void setSummary(String summary);
-
-    /**
-     *  Specifies the desired table width. See the  width attribute definition
-     * in HTML 4.0.
-     */
-    public String getWidth();
-    public void setWidth(String width);
-
-    /**
-     *  Create a table header row or return an existing one.
-     * @return  A new table header element (<code>THEAD</code> ).
-     */
-    public HTMLElement createTHead();
-
-    /**
-     *  Delete the header from the table, if one exists.
-     */
-    public void deleteTHead();
-
-    /**
-     *  Create a table footer row or return an existing one.
-     * @return  A footer element (<code>TFOOT</code> ).
-     */
-    public HTMLElement createTFoot();
-
-    /**
-     *  Delete the footer from the table, if one exists.
-     */
-    public void deleteTFoot();
-
-    /**
-     *  Create a new table caption object or return an existing one.
-     * @return  A <code>CAPTION</code> element.
-     */
-    public HTMLElement createCaption();
-
-    /**
-     *  Delete the table caption, if one exists.
-     */
-    public void deleteCaption();
-
-    /**
-     *  Insert a new empty row in the table. The new row is inserted
-     * immediately before and in the same section as the current
-     * <code>index</code> th row in the table. If <code>index</code> is equal
-     * to the number of rows, the new row is appended. In addition, when the
-     * table is empty the row is inserted into a <code>TBODY</code> which is
-     * created and inserted into the table. Note. A table row cannot be empty
-     * according to HTML 4.0 Recommendation.
-     * @param index  The row number where to insert a new row. This index
-     *   starts from 0 and is relative to all the rows contained inside the
-     *   table, regardless of section parentage.
-     * @return  The newly created row.
-     * @exception DOMException
-     *    INDEX_SIZE_ERR: Raised if the specified index is greater than the
-     *   number of rows or if the index is negative.
-     */
-    public HTMLElement insertRow(int index)
-                                 throws DOMException;
-
-    /**
-     *  Delete a table row.
-     * @param index  The index of the row to be deleted. This index starts
-     *   from 0 and is relative to all the rows contained inside the table,
-     *   regardless of section parentage.
-     * @exception DOMException
-     *    INDEX_SIZE_ERR: Raised if the specified index is greater than or
-     *   equal to the number of rows or if the index is negative.
-     */
-    public void deleteRow(int index)
-                          throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableRowElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  A row in a table. See the  TR element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTableRowElement extends HTMLElement {
-    /**
-     *  The index of this row, relative to the entire table, starting from 0.
-     * This is in document tree order and not display order. The
-     * <code>rowIndex</code> does not take into account sections (
-     * <code>THEAD</code> , <code>TFOOT</code> , or <code>TBODY</code> )
-     * within the table.
-     */
-    public int getRowIndex();
-
-    /**
-     *  The index of this row, relative to the current section (
-     * <code>THEAD</code> , <code>TFOOT</code> , or <code>TBODY</code> ),
-     * starting from 0.
-     */
-    public int getSectionRowIndex();
-
-    /**
-     *  The collection of cells in this row.
-     */
-    public HTMLCollection getCells();
-
-    /**
-     *  Horizontal alignment of data within cells of this row. See the  align
-     * attribute definition in HTML 4.0.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Background color for rows. See the  bgcolor attribute definition in
-     * HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public String getBgColor();
-    public void setBgColor(String bgColor);
-
-    /**
-     *  Alignment character for cells in a column. See the  char attribute
-     * definition in HTML 4.0.
-     */
-    public String getCh();
-    public void setCh(String ch);
-
-    /**
-     *  Offset of alignment character. See the  charoff attribute definition
-     * in HTML 4.0.
-     */
-    public String getChOff();
-    public void setChOff(String chOff);
-
-    /**
-     *  Vertical alignment of data within cells of this row. See the  valign
-     * attribute definition in HTML 4.0.
-     */
-    public String getVAlign();
-    public void setVAlign(String vAlign);
-
-    /**
-     *  Insert an empty <code>TD</code> cell into this row. If
-     * <code>index</code> is equal to the number of cells, the new cell is
-     * appended
-     * @param index  The place to insert the cell, starting from 0.
-     * @return  The newly created cell.
-     * @exception DOMException
-     *    INDEX_SIZE_ERR: Raised if the specified <code>index</code> is
-     *   greater than the number of cells or if the index is negative.
-     */
-    public HTMLElement insertCell(int index)
-                                  throws DOMException;
-
-    /**
-     *  Delete a cell from the current row.
-     * @param index  The index of the cell to delete, starting from 0.
-     * @exception DOMException
-     *    INDEX_SIZE_ERR: Raised if the specified <code>index</code> is
-     *   greater than or equal to the number of cells or if the index is
-     *   negative.
-     */
-    public void deleteCell(int index)
-                           throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTableSectionElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>THEAD</code> , <code>TFOOT</code> , and <code>TBODY</code>
- * elements.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTableSectionElement extends HTMLElement {
-    /**
-     *  Horizontal alignment of data in cells. See the <code>align</code>
-     * attribute for HTMLTheadElement for details.
-     */
-    public String getAlign();
-    public void setAlign(String align);
-
-    /**
-     *  Alignment character for cells in a column. See the  char attribute
-     * definition in HTML 4.0.
-     */
-    public String getCh();
-    public void setCh(String ch);
-
-    /**
-     *  Offset of alignment character. See the  charoff attribute definition
-     * in HTML 4.0.
-     */
-    public String getChOff();
-    public void setChOff(String chOff);
-
-    /**
-     *  Vertical alignment of data in cells. See the <code>valign</code>
-     * attribute for HTMLTheadElement for details.
-     */
-    public String getVAlign();
-    public void setVAlign(String vAlign);
-
-    /**
-     *  The collection of rows in this table section.
-     */
-    public HTMLCollection getRows();
-
-    /**
-     *  Insert a row into this section. The new row is inserted immediately
-     * before the current <code>index</code> th row in this section. If
-     * <code>index</code> is equal to the number of rows in this section, the
-     * new row is appended.
-     * @param index  The row number where to insert a new row. This index
-     *   starts from 0 and is relative only to the rows contained inside this
-     *   section, not all the rows in the table.
-     * @return  The newly created row.
-     * @exception DOMException
-     *    INDEX_SIZE_ERR: Raised if the specified index is greater than the
-     *   number of rows of if the index is neagative.
-     */
-    public HTMLElement insertRow(int index)
-                                 throws DOMException;
-
-    /**
-     *  Delete a row from this section.
-     * @param index  The index of the row to be deleted. This index starts
-     *   from 0 and is relative only to the rows contained inside this
-     *   section, not all the rows in the table.
-     * @exception DOMException
-     *    INDEX_SIZE_ERR: Raised if the specified index is greater than or
-     *   equal to the number of rows or if the index is negative.
-     */
-    public void deleteRow(int index)
-                          throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTextAreaElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Multi-line text field. See the  TEXTAREA element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTextAreaElement extends HTMLElement {
-    /**
-     *  Represents the contents of the element. The value of this attribute
-     * does not change if the contents of the corresponding form control, in
-     * an interactive user agent, changes. Changing this attribute, however,
-     * resets the contents of the form control.
-     */
-    public String getDefaultValue();
-    public void setDefaultValue(String defaultValue);
-
-    /**
-     *  Returns the <code>FORM</code> element containing this control. Returns
-     * <code>null</code> if this control is not within the context of a form.
-     */
-    public HTMLFormElement getForm();
-
-    /**
-     *  A single character access key to give access to the form control. See
-     * the  accesskey attribute definition in HTML 4.0.
-     */
-    public String getAccessKey();
-    public void setAccessKey(String accessKey);
-
-    /**
-     *  Width of control (in characters). See the  cols attribute definition
-     * in HTML 4.0.
-     */
-    public int getCols();
-    public void setCols(int cols);
-
-    /**
-     *  The control is unavailable in this context. See the  disabled
-     * attribute definition in HTML 4.0.
-     */
-    public boolean getDisabled();
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  Form control or object name when submitted with a form. See the  name
-     * attribute definition in HTML 4.0.
-     */
-    public String getName();
-    public void setName(String name);
-
-    /**
-     *  This control is read-only. See the  readonly attribute definition in
-     * HTML 4.0.
-     */
-    public boolean getReadOnly();
-    public void setReadOnly(boolean readOnly);
-
-    /**
-     *  Number of text rows. See the  rows attribute definition in HTML 4.0.
-     */
-    public int getRows();
-    public void setRows(int rows);
-
-    /**
-     *  Index that represents the element's position in the tabbing order. See
-     * the  tabindex attribute definition in HTML 4.0.
-     */
-    public int getTabIndex();
-    public void setTabIndex(int tabIndex);
-
-    /**
-     *  The type of this form control. This the string "textarea".
-     */
-    public String getType();
-
-    /**
-     *  Represents the current contents of the corresponding form control, in
-     * an interactive user agent. Changing this attribute changes the
-     * contents of the form control, but does not change the contents of the
-     * element. If the entirety of the data can not fit into a single
-     * <code>DOMString</code> , the implementation may truncate the data.
-     */
-    public String getValue();
-    public void setValue(String value);
-
-    /**
-     *  Removes keyboard focus from this element.
-     */
-    public void blur();
-
-    /**
-     *  Gives keyboard focus to this element.
-     */
-    public void focus();
-
-    /**
-     *  Select the contents of the <code>TEXTAREA</code> .
-     */
-    public void select();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLTitleElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  The document title. See the  TITLE element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLTitleElement extends HTMLElement {
-    /**
-     *  The specified title as a string.
-     */
-    public String getText();
-    public void setText(String text);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/html/HTMLUListElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
- * details.
- */
-
-package org.w3c.dom.html;
-
-/**
- *  Unordered list. See the  UL element definition in HTML 4.0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
- */
-public interface HTMLUListElement extends HTMLElement {
-    /**
-     *  Reduce spacing between list items. See the  compact attribute
-     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
-     */
-    public boolean getCompact();
-    public void setCompact(boolean compact);
-
-    /**
-     *  Bullet style. See the  type attribute definition in HTML 4.0. This
-     * attribute is deprecated in HTML 4.0.
-     */
-    public String getType();
-    public void setType(String type);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/ranges/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/org/w3c/dom/ranges/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -21,11 +21,11 @@
       W3C IPR SOFTWARE NOTICE
     </h1>
     <h3>
-      Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
-      Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
-      Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
-      National de Recherche en Informatique et en Automatique</loc>, <loc
-      href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
+      Copyright &copy; 2000 <a href="http://www.w3.org/">World Wide Web
+      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+      National de Recherche en Informatique et en Automatique</a>, <a
+      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
       Reserved.
     </h3>
     <p>
@@ -66,25 +66,25 @@
     </p>
     <ol>
       <li>
-	The full text of this NOTICE in a location viewable to users of the
-	redistributed or derivative work.
+        The full text of this NOTICE in a location viewable to users of the
+        redistributed or derivative work.
       </li>
       <li>
-	Any pre-existing intellectual property disclaimers, notices, or terms
-	and conditions. If none exist, a short notice of the following form
-	(hypertext is preferred, text is permitted) should be used within the
-	body of any redistributed or derivative code: "Copyright &copy;
-	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
-	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
-	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
-	National de Recherche en Informatique et en Automatique</a>, <a
-	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
-	Reserved. http://www.w3.org/Consortium/Legal/"
+        Any pre-existing intellectual property disclaimers, notices, or terms
+        and conditions. If none exist, a short notice of the following form
+        (hypertext is preferred, text is permitted) should be used within the
+        body of any redistributed or derivative code: "Copyright &copy;
+        [$date-of-software] <a href="http://www.w3.org/">World Wide Web
+        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+        National de Recherche en Informatique et en Automatique</a>, <a
+        href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
+        Reserved. http://www.w3.org/Consortium/Legal/"
       </li>
       <li>
-	Notice of any changes or modifications to the W3C files, including the
-	date changes were made. (We recommend you provide URIs to the location
-	from which the code is derived.)
+        Notice of any changes or modifications to the W3C files, including the
+        date changes were made. (We recommend you provide URIs to the location
+        from which the code is derived.)
       </li>
     </ol>
     <p>
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/DocumentStyle.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.stylesheets;
-
-/**
- *  The <code>DocumentStyle</code> interface provides a mechanism by which the
- * style sheets embedded in a document can be retrieved. The expectation is
- * that an instance of the <code>DocumentStyle</code> interface can be
- * obtained by using binding-specific casting methods on an instance of the
- * <code>Document</code> interface.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface DocumentStyle {
-    /**
-     *  A list containing all the style sheets explicitly linked into or
-     * embedded in a document. For HTML documents, this includes external
-     * style sheets, included via the HTML  LINK element, and inline  STYLE
-     * elements. In XML, this includes external style sheets, included via
-     * style sheet processing instructions (see [XML StyleSheet]).
-     */
-    public StyleSheetList getStyleSheets();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/LinkStyle.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.stylesheets;
-
-/**
- *  The <code>LinkStyle</code> interface provides a mechanism by which a style
- * sheet can be retrieved from the node responsible for linking it into a
- * document. An instance of the <code>LinkStyle</code> interface can be
- * obtained using binding-specific casting methods on an instance of a
- * linking node (<code>HTMLLinkElement</code>, <code>HTMLStyleElement</code>
- * or <code>ProcessingInstruction</code> in DOM Level 2).
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface LinkStyle {
-    /**
-     *  The style sheet.
-     */
-    public StyleSheet getSheet();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/MediaList.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.stylesheets;
-
-import org.w3c.dom.DOMException;
-
-/**
- *  The <code>MediaList</code> interface provides the abstraction of an
- * ordered collection of media, without defining or constraining how this
- * collection is implemented. An empty list is the same as a list that
- * contains the medium <code>"all"</code>.
- * <p> The items in the <code>MediaList</code> are accessible via an integral
- * index, starting from 0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface MediaList {
-    /**
-     *  The parsable textual representation of the media list. This is a
-     * comma-separated list of media.
-     */
-    public String getMediaText();
-    /**
-     *  The parsable textual representation of the media list. This is a
-     * comma-separated list of media.
-     * @exception DOMException
-     *   SYNTAX_ERR: Raised if the specified string value has a syntax error
-     *   and is unparsable.
-     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is
-     *   readonly.
-     */
-    public void setMediaText(String mediaText)
-                             throws DOMException;
-
-    /**
-     *  The number of media in the list. The range of valid media is
-     * <code>0</code> to <code>length-1</code> inclusive.
-     */
-    public int getLength();
-
-    /**
-     *  Returns the <code>index</code>th in the list. If <code>index</code> is
-     * greater than or equal to the number of media in the list, this
-     * returns <code>null</code>.
-     * @param index  Index into the collection.
-     * @return  The medium at the <code>index</code>th position in the
-     *   <code>MediaList</code>, or <code>null</code> if that is not a valid
-     *   index.
-     */
-    public String item(int index);
-
-    /**
-     *  Deletes the medium indicated by <code>oldMedium</code> from the list.
-     * @param oldMedium The medium to delete in the media list.
-     * @exception DOMException
-     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
-     *   <br> NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not in the
-     *   list.
-     */
-    public void deleteMedium(String oldMedium)
-                             throws DOMException;
-
-    /**
-     *  Adds the medium <code>newMedium</code> to the end of the list. If the
-     * <code>newMedium</code> is already used, it is first removed.
-     * @param newMedium The new medium to add.
-     * @exception DOMException
-     *    INVALID_CHARACTER_ERR: If the medium contains characters that are
-     *   invalid in the underlying style language.
-     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
-     */
-    public void appendMedium(String newMedium)
-                             throws DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/StyleSheet.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.stylesheets;
-
-import org.w3c.dom.Node;
-
-/**
- *  The <code>StyleSheet</code> interface is the abstract base interface for
- * any type of style sheet. It represents a single style sheet associated
- * with a structured document. In HTML, the StyleSheet interface represents
- * either an external style sheet, included via the HTML  LINK element, or
- * an inline  STYLE element. In XML, this interface represents an external
- * style sheet, included via a style sheet processing instruction.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface StyleSheet {
-    /**
-     *  This specifies the style sheet language for this style sheet. The
-     * style sheet language is specified as a content type (e.g.
-     * "text/css"). The content type is often specified in the
-     * <code>ownerNode</code>. Also see the type attribute definition for
-     * the <code>LINK</code> element in HTML 4.0, and the type
-     * pseudo-attribute for the XML style sheet processing instruction.
-     */
-    public String getType();
-
-    /**
-     *  <code>false</code> if the style sheet is applied to the document.
-     * <code>true</code> if it is not. Modifying this attribute may cause a
-     * new resolution of style for the document. A stylesheet only applies
-     * if both an appropriate medium definition is present and the disabled
-     * attribute is false. So, if the media doesn't apply to the current
-     * user agent, the <code>disabled</code> attribute is ignored.
-     */
-    public boolean getDisabled();
-    /**
-     *  <code>false</code> if the style sheet is applied to the document.
-     * <code>true</code> if it is not. Modifying this attribute may cause a
-     * new resolution of style for the document. A stylesheet only applies
-     * if both an appropriate medium definition is present and the disabled
-     * attribute is false. So, if the media doesn't apply to the current
-     * user agent, the <code>disabled</code> attribute is ignored.
-     */
-    public void setDisabled(boolean disabled);
-
-    /**
-     *  The node that associates this style sheet with the document. For HTML,
-     * this may be the corresponding <code>LINK</code> or <code>STYLE</code>
-     * element. For XML, it may be the linking processing instruction. For
-     * style sheets that are included by other style sheets, the value of
-     * this attribute is <code>null</code>.
-     */
-    public Node getOwnerNode();
-
-    /**
-     *  For style sheet languages that support the concept of style sheet
-     * inclusion, this attribute represents the including style sheet, if
-     * one exists. If the style sheet is a top-level style sheet, or the
-     * style sheet language does not support inclusion, the value of this
-     * attribute is <code>null</code>.
-     */
-    public StyleSheet getParentStyleSheet();
-
-    /**
-     *  If the style sheet is a linked style sheet, the value of its attribute
-     * is its location. For inline style sheets, the value of this attribute
-     * is <code>null</code>. See the href attribute definition for the
-     * <code>LINK</code> element in HTML 4.0, and the href pseudo-attribute
-     * for the XML style sheet processing instruction.
-     */
-    public String getHref();
-
-    /**
-     *  The advisory title. The title is often specified in the
-     * <code>ownerNode</code>. See the title attribute definition for the
-     * <code>LINK</code> element in HTML 4.0, and the title pseudo-attribute
-     * for the XML style sheet processing instruction.
-     */
-    public String getTitle();
-
-    /**
-     *  The intended destination media for style information. The media is
-     * often specified in the <code>ownerNode</code>. If no media has been
-     * specified, the <code>MediaList</code> will be empty. See the media
-     * attribute definition for the <code>LINK</code> element in HTML 4.0,
-     * and the media pseudo-attribute for the XML style sheet processing
-     * instruction . Modifying the media list may cause a change to the
-     * attribute <code>disabled</code>.
-     */
-    public MediaList getMedia();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/stylesheets/StyleSheetList.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.stylesheets;
-
-/**
- * The <code>StyleSheetList</code> interface provides the abstraction of an
- * ordered collection of style sheets.
- * <p> The items in the <code>StyleSheetList</code> are accessible via an
- * integral index, starting from 0.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
- * @since DOM Level 2
- */
-public interface StyleSheetList {
-    /**
-     *  The number of <code>StyleSheets</code> in the list. The range of valid
-     * child stylesheet indices is <code>0</code> to <code>length-1</code>
-     * inclusive.
-     */
-    public int getLength();
-
-    /**
-     *  Used to retrieve a style sheet by ordinal index. If index is greater
-     * than or equal to the number of style sheets in the list, this returns
-     * <code>null</code>.
-     * @param index Index into the collection
-     * @return The style sheet at the <code>index</code> position in the
-     *   <code>StyleSheetList</code>, or <code>null</code> if that is not a
-     *   valid index.
-     */
-    public StyleSheet item(int index);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathEvaluator.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.xpath;
-
-
-import org.w3c.dom.Node;
-import org.w3c.dom.DOMException;
-
-/**
- *  The evaluation of XPath expressions is provided by
- * <code>XPathEvaluator</code>. In a DOM implementation which supports the
- * XPath 3.0 feature, as described above, the <code>XPathEvaluator</code>
- * interface will be implemented on the same object which implements the
- * <code>Document</code> interface permitting it to be obtained by the usual
- * binding-specific method such as casting or by using the DOM Level 3
- * getInterface method. In this case the implementation obtained from the
- * Document supports the XPath DOM module and is compatible with the XPath
- * 1.0 specification.
- * <p>Evaluation of expressions with specialized extension functions or
- * variables may not work in all implementations and is, therefore, not
- * portable. <code>XPathEvaluator</code> implementations may be available
- * from other sources that could provide specific support for specialized
- * extension functions or variables as would be defined by other
- * specifications.
- * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- */
-public interface XPathEvaluator {
-    /**
-     * Creates a parsed XPath expression with resolved namespaces. This is
-     * useful when an expression will be reused in an application since it
-     * makes it possible to compile the expression string into a more
-     * efficient internal form and preresolve all namespace prefixes which
-     * occur within the expression.
-     * @param expression The XPath expression string to be parsed.
-     * @param resolver The <code>resolver</code> permits translation of
-     *   prefixes within the XPath expression into appropriate namespace URIs
-     *   . If this is specified as <code>null</code>, any namespace prefix
-     *   within the expression will result in <code>DOMException</code>
-     *   being thrown with the code <code>NAMESPACE_ERR</code>.
-     * @return The compiled form of the XPath expression.
-     * @exception XPathException
-     *   INVALID_EXPRESSION_ERR: Raised if the expression is not legal
-     *   according to the rules of the <code>XPathEvaluator</code>i
-     * @exception DOMException
-     *   NAMESPACE_ERR: Raised if the expression contains namespace prefixes
-     *   which cannot be resolved by the specified
-     *   <code>XPathNSResolver</code>.
-     */
-    public XPathExpression createExpression(String expression,
-                                            XPathNSResolver resolver)
-                                            throws XPathException, DOMException;
-
-    /**
-     * Adapts any DOM node to resolve namespaces so that an XPath expression
-     * can be easily evaluated relative to the context of the node where it
-     * appeared within the document. This adapter works like the DOM Level 3
-     * method <code>lookupNamespaceURI</code> on nodes in resolving the
-     * namespaceURI from a given prefix using the current information
-     * available in the node's hierarchy at the time lookupNamespaceURI is
-     * called. also correctly resolving the implicit xml prefix.
-     * @param nodeResolver The node to be used as a context for namespace
-     *   resolution.
-     * @return <code>XPathNSResolver</code> which resolves namespaces with
-     *   respect to the definitions in scope for a specified node.
-     */
-    public XPathNSResolver createNSResolver(Node nodeResolver);
-
-    /**
-     * Evaluates an XPath expression string and returns a result of the
-     * specified type if possible.
-     * @param expression The XPath expression string to be parsed and
-     *   evaluated.
-     * @param contextNode The <code>context</code> is context node for the
-     *   evaluation of this XPath expression. If the XPathEvaluator was
-     *   obtained by casting the <code>Document</code> then this must be
-     *   owned by the same document and must be a <code>Document</code>,
-     *   <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
-     *   <code>CDATASection</code>, <code>Comment</code>,
-     *   <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
-     *   node. If the context node is a <code>Text</code> or a
-     *   <code>CDATASection</code>, then the context is interpreted as the
-     *   whole logical text node as seen by XPath, unless the node is empty
-     *   in which case it may not serve as the XPath context.
-     * @param resolver The <code>resolver</code> permits translation of
-     *   prefixes within the XPath expression into appropriate namespace URIs
-     *   . If this is specified as <code>null</code>, any namespace prefix
-     *   within the expression will result in <code>DOMException</code>
-     *   being thrown with the code <code>NAMESPACE_ERR</code>.
-     * @param type If a specific <code>type</code> is specified, then the
-     *   result will be returned as the corresponding type.For XPath 1.0
-     *   results, this must be one of the codes of the
-     *   <code>XPathResult</code> interface.
-     * @param result The <code>result</code> specifies a specific result
-     *   object which may be reused and returned by this method. If this is
-     *   specified as <code>null</code>or the implementation does not reuse
-     *   the specified result, a new result object will be constructed and
-     *   returned.For XPath 1.0 results, this object will be of type
-     *   <code>XPathResult</code>.
-     * @return The result of the evaluation of the XPath expression.For XPath
-     *   1.0 results, this object will be of type <code>XPathResult</code>.
-     * @exception XPathException
-     *   INVALID_EXPRESSION_ERR: Raised if the expression is not legal
-     *   according to the rules of the <code>XPathEvaluator</code>i
-     *   <br>TYPE_ERR: Raised if the result cannot be converted to return the
-     *   specified type.
-     * @exception DOMException
-     *   NAMESPACE_ERR: Raised if the expression contains namespace prefixes
-     *   which cannot be resolved by the specified
-     *   <code>XPathNSResolver</code>.
-     *   <br>WRONG_DOCUMENT_ERR: The Node is from a document that is not
-     *   supported by this <code>XPathEvaluator</code>.
-     *   <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
-     *   context node or the request type is not permitted by this
-     *   <code>XPathEvaluator</code>.
-     */
-    public Object evaluate(String expression,
-                           Node contextNode,
-                           XPathNSResolver resolver,
-                           short type,
-                           Object result)
-                           throws XPathException, DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathException.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.xpath;
-
-/**
- * A new exception has been created for exceptions specific to these XPath
- * interfaces.
- * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- */
-public class XPathException extends RuntimeException {
-    public XPathException(short code, String message) {
-       super(message);
-       this.code = code;
-    }
-    public short   code;
-    // XPathExceptionCode
-    /**
-     * If the expression has a syntax error or otherwise is not a legal
-     * expression according to the rules of the specific
-     * <code>XPathEvaluator</code> or contains specialized extension
-     * functions or variables not supported by this implementation.
-     */
-    public static final short INVALID_EXPRESSION_ERR    = 1;
-    /**
-     * If the expression cannot be converted to return the specified type.
-     */
-    public static final short TYPE_ERR                  = 2;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathExpression.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.xpath;
-
-
-import org.w3c.dom.Node;
-import org.w3c.dom.DOMException;
-
-/**
- * The <code>XPathExpression</code> interface represents a parsed and resolved
- * XPath expression.
- * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- */
-public interface XPathExpression {
-    /**
-     * Evaluates this XPath expression and returns a result.
-     * @param contextNode The <code>context</code> is context node for the
-     *   evaluation of this XPath expression.If the XPathEvaluator was
-     *   obtained by casting the <code>Document</code> then this must be
-     *   owned by the same document and must be a <code>Document</code>,
-     *   <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
-     *   <code>CDATASection</code>, <code>Comment</code>,
-     *   <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
-     *   node.If the context node is a <code>Text</code> or a
-     *   <code>CDATASection</code>, then the context is interpreted as the
-     *   whole logical text node as seen by XPath, unless the node is empty
-     *   in which case it may not serve as the XPath context.
-     * @param type If a specific <code>type</code> is specified, then the
-     *   result will be coerced to return the specified type relying on
-     *   XPath conversions and fail if the desired coercion is not possible.
-     *   This must be one of the type codes of <code>XPathResult</code>.
-     * @param result The <code>result</code> specifies a specific result
-     *   object which may be reused and returned by this method. If this is
-     *   specified as <code>null</code>or the implementation does not reuse
-     *   the specified result, a new result object will be constructed and
-     *   returned.For XPath 1.0 results, this object will be of type
-     *   <code>XPathResult</code>.
-     * @return The result of the evaluation of the XPath expression.For XPath
-     *   1.0 results, this object will be of type <code>XPathResult</code>.
-     * @exception XPathException
-     *   TYPE_ERR: Raised if the result cannot be converted to return the
-     *   specified type.
-     * @exception DOMException
-     *   WRONG_DOCUMENT_ERR: The Node is from a document that is not supported
-     *   by the XPathEvaluator that created this <code>XPathExpression</code>
-     *   .
-     *   <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
-     *   context node or the request type is not permitted by this
-     *   <code>XPathExpression</code>.
-     */
-    public Object evaluate(Node contextNode,
-                           short type,
-                           Object result)
-                           throws XPathException, DOMException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathNSResolver.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.xpath;
-
-
-/**
- * The <code>XPathNSResolver</code> interface permit <code>prefix</code>
- * strings in the expression to be properly bound to
- * <code>namespaceURI</code> strings. <code>XPathEvaluator</code> can
- * construct an implementation of <code>XPathNSResolver</code> from a node,
- * or the interface may be implemented by any application.
- * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- */
-public interface XPathNSResolver {
-    /**
-     * Look up the namespace URI associated to the given namespace prefix. The
-     * XPath evaluator must never call this with a <code>null</code> or
-     * empty argument, because the result of doing this is undefined.
-     * @param prefix The prefix to look for.
-     * @return Returns the associated namespace URI or <code>null</code> if
-     *   none is found.
-     */
-    public String lookupNamespaceURI(String prefix);
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathNamespace.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.xpath;
-
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * The <code>XPathNamespace</code> interface is returned by
- * <code>XPathResult</code> interfaces to represent the XPath namespace node
- * type that DOM lacks. There is no public constructor for this node type.
- * Attempts to place it into a hierarchy or a NamedNodeMap result in a
- * <code>DOMException</code> with the code <code>HIERARCHY_REQUEST_ERR</code>
- * . This node is read only, so methods or setting of attributes that would
- * mutate the node result in a DOMException with the code
- * <code>NO_MODIFICATION_ALLOWED_ERR</code>.
- * <p>The core specification describes attributes of the <code>Node</code>
- * interface that are different for different node node types but does not
- * describe <code>XPATH_NAMESPACE_NODE</code>, so here is a description of
- * those attributes for this node type. All attributes of <code>Node</code>
- * not described in this section have a <code>null</code> or
- * <code>false</code> value.
- * <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the
- * <code>ownerElement</code> even if the element is later adopted.
- * <p><code>prefix</code> is the prefix of the namespace represented by the
- * node.
- * <p><code>nodeName</code> is the same as <code>prefix</code>.
- * <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>.
- * <p><code>namespaceURI</code> is the namespace URI of the namespace
- * represented by the node.
- * <p><code>adoptNode</code>, <code>cloneNode</code>, and
- * <code>importNode</code> fail on this node type by raising a
- * <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>.In
- * future versions of the XPath specification, the definition of a namespace
- * node may be changed incomatibly, in which case incompatible changes to
- * field values may be required to implement versions beyond XPath 1.0.
- * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- */
-public interface XPathNamespace extends Node {
-    // XPathNodeType
-    /**
-     * The node is a <code>Namespace</code>.
-     */
-    public static final short XPATH_NAMESPACE_NODE      = 13;
-
-    /**
-     * The <code>Element</code> on which the namespace was in scope when it
-     * was requested. This does not change on a returned namespace node even
-     * if the document changes such that the namespace goes out of scope on
-     * that element and this node is no longer found there by XPath.
-     */
-    public Element getOwnerElement();
-
-}
--- a/jaxp/src/java.xml/share/classes/org/w3c/dom/xpath/XPathResult.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,241 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file and, per its terms, should not be removed:
- *
- * Copyright (c) 2002 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.xpath;
-
-
-import org.w3c.dom.Node;
-import org.w3c.dom.DOMException;
-
-/**
- * The <code>XPathResult</code> interface represents the result of the
- * evaluation of an XPath 1.0 expression within the context of a particular
- * node. Since evaluation of an XPath expression can result in various
- * result types, this object makes it possible to discover and manipulate
- * the type and value of the result.
- * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
- */
-public interface XPathResult {
-    // XPathResultType
-    /**
-     * This code does not represent a specific type. An evaluation of an XPath
-     * expression will never produce this type. If this type is requested,
-     * then the evaluation returns whatever type naturally results from
-     * evaluation of the expression.
-     * <br>If the natural result is a node set when <code>ANY_TYPE</code> was
-     * requested, then <code>UNORDERED_NODE_ITERATOR_TYPE</code> is always
-     * the resulting type. Any other representation of a node set must be
-     * explicitly requested.
-     */
-    public static final short ANY_TYPE                  = 0;
-    /**
-     * The result is a number as defined by . Document modification does not
-     * invalidate the number, but may mean that reevaluation would not yield
-     * the same number.
-     */
-    public static final short NUMBER_TYPE               = 1;
-    /**
-     * The result is a string as defined by . Document modification does not
-     * invalidate the string, but may mean that the string no longer
-     * corresponds to the current document.
-     */
-    public static final short STRING_TYPE               = 2;
-    /**
-     * The result is a boolean as defined by . Document modification does not
-     * invalidate the boolean, but may mean that reevaluation would not
-     * yield the same boolean.
-     */
-    public static final short BOOLEAN_TYPE              = 3;
-    /**
-     * The result is a node set as defined by  that will be accessed
-     * iteratively, which may not produce nodes in a particular order.
-     * Document modification invalidates the iteration.
-     * <br>This is the default type returned if the result is a node set and
-     * <code>ANY_TYPE</code> is requested.
-     */
-    public static final short UNORDERED_NODE_ITERATOR_TYPE = 4;
-    /**
-     * The result is a node set as defined by  that will be accessed
-     * iteratively, which will produce document-ordered nodes. Document
-     * modification invalidates the iteration.
-     */
-    public static final short ORDERED_NODE_ITERATOR_TYPE = 5;
-    /**
-     * The result is a node set as defined by  that will be accessed as a
-     * snapshot list of nodes that may not be in a particular order.
-     * Document modification does not invalidate the snapshot but may mean
-     * that reevaluation would not yield the same snapshot and nodes in the
-     * snapshot may have been altered, moved, or removed from the document.
-     */
-    public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
-    /**
-     * The result is a node set as defined by  that will be accessed as a
-     * snapshot list of nodes that will be in original document order.
-     * Document modification does not invalidate the snapshot but may mean
-     * that reevaluation would not yield the same snapshot and nodes in the
-     * snapshot may have been altered, moved, or removed from the document.
-     */
-    public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7;
-    /**
-     * The result is a node set as defined by  and will be accessed as a
-     * single node, which may be <code>null</code>if the node set is empty.
-     * Document modification does not invalidate the node, but may mean that
-     * the result node no longer corresponds to the current document. This
-     * is a convenience that permits optimization since the implementation
-     * can stop once any node in the in the resulting set has been found.
-     * <br>If there are more than one node in the actual result, the single
-     * node returned might not be the first in document order.
-     */
-    public static final short ANY_UNORDERED_NODE_TYPE   = 8;
-    /**
-     * The result is a node set as defined by  and will be accessed as a
-     * single node, which may be <code>null</code> if the node set is empty.
-     * Document modification does not invalidate the node, but may mean that
-     * the result node no longer corresponds to the current document. This
-     * is a convenience that permits optimization since the implementation
-     * can stop once the first node in document order of the resulting set
-     * has been found.
-     * <br>If there are more than one node in the actual result, the single
-     * node returned will be the first in document order.
-     */
-    public static final short FIRST_ORDERED_NODE_TYPE   = 9;
-
-    /**
-     * A code representing the type of this result, as defined by the type
-     * constants.
-     */
-    public short getResultType();
-
-    /**
-     * The value of this number result. If the native double type of the DOM
-     * binding does not directly support the exact IEEE 754 result of the
-     * XPath expression, then it is up to the definition of the binding
-     * binding to specify how the XPath number is converted to the native
-     * binding number.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>NUMBER_TYPE</code>.
-     */
-    public double getNumberValue()
-                             throws XPathException;
-
-    /**
-     * The value of this string result.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>STRING_TYPE</code>.
-     */
-    public String getStringValue()
-                             throws XPathException;
-
-    /**
-     * The value of this boolean result.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>BOOLEAN_TYPE</code>.
-     */
-    public boolean getBooleanValue()
-                             throws XPathException;
-
-    /**
-     * The value of this single node result, which may be <code>null</code>.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>ANY_UNORDERED_NODE_TYPE</code> or
-     *   <code>FIRST_ORDERED_NODE_TYPE</code>.
-     */
-    public Node getSingleNodeValue()
-                             throws XPathException;
-
-    /**
-     * Signifies that the iterator has become invalid. True if
-     * <code>resultType</code> is <code>UNORDERED_NODE_ITERATOR_TYPE</code>
-     * or <code>ORDERED_NODE_ITERATOR_TYPE</code> and the document has been
-     * modified since this result was returned.
-     */
-    public boolean getInvalidIteratorState();
-
-    /**
-     * The number of nodes in the result snapshot. Valid values for
-     * snapshotItem indices are <code>0</code> to
-     * <code>snapshotLength-1</code> inclusive.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
-     *   <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
-     */
-    public int getSnapshotLength()
-                             throws XPathException;
-
-    /**
-     * Iterates and returns the next node from the node set or
-     * <code>null</code>if there are no more nodes.
-     * @return Returns the next node.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>UNORDERED_NODE_ITERATOR_TYPE</code> or
-     *   <code>ORDERED_NODE_ITERATOR_TYPE</code>.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: The document has been mutated since the result was
-     *   returned.
-     */
-    public Node iterateNext()
-                            throws XPathException, DOMException;
-
-    /**
-     * Returns the <code>index</code>th item in the snapshot collection. If
-     * <code>index</code> is greater than or equal to the number of nodes in
-     * the list, this method returns <code>null</code>. Unlike the iterator
-     * result, the snapshot does not become invalid, but may not correspond
-     * to the current document if it is mutated.
-     * @param index Index into the snapshot collection.
-     * @return The node at the <code>index</code>th position in the
-     *   <code>NodeList</code>, or <code>null</code> if that is not a valid
-     *   index.
-     * @exception XPathException
-     *   TYPE_ERR: raised if <code>resultType</code> is not
-     *   <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
-     *   <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
-     */
-    public Node snapshotItem(int index)
-                             throws XPathException;
-
-}
--- a/jaxp/src/java.xml/share/classes/org/xml/sax/AttributeList.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/org/xml/sax/AttributeList.java	Mon Apr 27 09:17:39 2015 -0700
@@ -42,7 +42,7 @@
  *
  * <p>This is the original SAX1 interface for reporting an element's
  * attributes.  Unlike the new {@link org.xml.sax.Attributes Attributes}
- * interface, it does not support Namespace-related information.</p>
+ * interface, it does not support Namespace-related information.
  *
  * <p>When an attribute list is supplied as part of a
  * {@link org.xml.sax.DocumentHandler#startElement startElement}
@@ -51,16 +51,16 @@
  * to the parser, the attribute list is invalid.  To save a
  * persistent copy of the attribute list, use the SAX1
  * {@link org.xml.sax.helpers.AttributeListImpl AttributeListImpl}
- * helper class.</p>
+ * helper class.
  *
  * <p>An attribute list includes only attributes that have been
- * specified or defaulted: #IMPLIED attributes will not be included.</p>
+ * specified or defaulted: #IMPLIED attributes will not be included.
  *
  * <p>There are two ways for the SAX application to obtain information
  * from the AttributeList.  First, it can iterate through the entire
- * list:</p>
+ * list:
  *
- * <pre>
+ * <pre>{@code
  * public void startElement (String name, AttributeList atts) {
  *   for (int i = 0; i < atts.getLength(); i++) {
  *     String name = atts.getName(i);
@@ -69,13 +69,13 @@
  *     [...]
  *   }
  * }
- * </pre>
+ * }</pre>
  *
  * <p>(Note that the result of getLength() will be zero if there
  * are no attributes.)
  *
  * <p>As an alternative, the application can request the value or
- * type of specific attributes:</p>
+ * type of specific attributes:
  *
  * <pre>
  * public void startElement (String name, AttributeList atts) {
@@ -107,7 +107,7 @@
      * <p>The SAX parser may provide attributes in any
      * arbitrary order, regardless of the order in which they were
      * declared or specified.  The number of attributes may be
-     * zero.</p>
+     * zero.
      *
      * @return The number of attributes in the list.
      */
@@ -120,10 +120,10 @@
      * <p>The names must be unique: the SAX parser shall not include the
      * same attribute twice.  Attributes without values (those declared
      * #IMPLIED without a value specified in the start tag) will be
-     * omitted from the list.</p>
+     * omitted from the list.
      *
      * <p>If the attribute name has a namespace prefix, the prefix
-     * will still be attached.</p>
+     * will still be attached.
      *
      * @param i The index of the attribute in the list (starting at 0).
      * @return The name of the indexed attribute, or null
@@ -138,15 +138,15 @@
      *
      * <p>The attribute type is one of the strings "CDATA", "ID",
      * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
-     * or "NOTATION" (always in upper case).</p>
+     * or "NOTATION" (always in upper case).
      *
      * <p>If the parser has not read a declaration for the attribute,
      * or if the parser does not report attribute types, then it must
      * return the value "CDATA" as stated in the XML 1.0 Recommentation
-     * (clause 3.3.3, "Attribute-Value Normalization").</p>
+     * (clause 3.3.3, "Attribute-Value Normalization").
      *
      * <p>For an enumerated attribute that is not a notation, the
-     * parser will report the type as "NMTOKEN".</p>
+     * parser will report the type as "NMTOKEN".
      *
      * @param i The index of the attribute in the list (starting at 0).
      * @return The attribute type as a string, or
@@ -162,7 +162,7 @@
      *
      * <p>If the attribute value is a list of tokens (IDREFS,
      * ENTITIES, or NMTOKENS), the tokens will be concatenated
-     * into a single string separated by whitespace.</p>
+     * into a single string separated by whitespace.
      *
      * @param i The index of the attribute in the list (starting at 0).
      * @return The attribute value as a string, or
@@ -183,10 +183,10 @@
      * Return the type of an attribute in the list (by name).
      *
      * <p>The return value is the same as the return value for
-     * getType(int).</p>
+     * getType(int).
      *
      * <p>If the attribute name has a namespace prefix in the document,
-     * the application must include the prefix here.</p>
+     * the application must include the prefix here.
      *
      * @param name The name of the attribute.
      * @return The attribute type as a string, or null if no
@@ -200,10 +200,10 @@
      * Return the value of an attribute in the list (by name).
      *
      * <p>The return value is the same as the return value for
-     * getValue(int).</p>
+     * getValue(int).
      *
      * <p>If the attribute name has a namespace prefix in the document,
-     * the application must include the prefix here.</p>
+     * the application must include the prefix here.
      *
      * @param name the name of the attribute to return
      * @return The attribute value as a string, or null if
--- a/jaxp/src/java.xml/share/classes/org/xml/sax/ext/EntityResolver2.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/org/xml/sax/ext/EntityResolver2.java	Mon Apr 27 09:17:39 2015 -0700
@@ -61,7 +61,6 @@
  * recognized).  If that flag is unrecognized, or its value is false,
  * or the resolver does not implement this interface, then only the
  * {@link EntityResolver} method will be used.
- * </p>
  *
  * <p>That supports three categories of application that modify entity
  * resolution.  <em>Old Style</em> applications won't know about this interface;
@@ -76,7 +75,6 @@
  * They will insist that feature flag have a value of "true", and the
  * EntityResolver2 implementation they provide  might throw an exception
  * if the original SAX 1.0 style entity resolution method is invoked.
- * </p>
  *
  * @see org.xml.sax.XMLReader#setEntityResolver
  *
@@ -95,7 +93,7 @@
      * through the {@link LexicalHandler#startDTD startDTD()} method as if
      * the document text had originally included the external subset;
      * this callback is made before any internal subset data or errors
-     * are reported.</p>
+     * are reported.
      *
      * <p>This method can also be used with documents that have no DOCTYPE
      * declaration.  When the root element is encountered,
@@ -104,7 +102,7 @@
      * element is declared to be the root element, giving the effect of
      * splicing a DOCTYPE declaration at the end the prolog of a document
      * that could not otherwise be valid.  The sequence of parser callbacks
-     * in that case logically resembles this:</p>
+     * in that case logically resembles this:
      *
      * <pre>
      * ... comments and PIs from the prolog (as usual)
@@ -122,7 +120,7 @@
      * {@link #resolveEntity resolveEntity()} to gain benefits such as use
      * of local caches of DTD entities.  Also, this method will never be
      * used by a (non-validating) processor that is not including external
-     * parameter entities. </p>
+     * parameter entities.
      *
      * <p>Uses for this method include facilitating data validation when
      * interoperating with XML processors that would always require
@@ -131,12 +129,11 @@
      * Non-validation motives include forcing documents to include DTDs so
      * that attributes are handled consistently.
      * For example, an XPath processor needs to know which attibutes have
-     * type "ID" before it can process a widely used type of reference.</p>
+     * type "ID" before it can process a widely used type of reference.
      *
      * <p><strong>Warning:</strong> Returning an external subset modifies
      * the input document.  By providing definitions for general entities,
      * it can make a malformed document appear to be well formed.
-     * </p>
      *
      * @param name Identifies the document root element.  This name comes
      *  from a DOCTYPE declaration (where available) or from the actual
@@ -166,8 +163,8 @@
      * This method provides more flexibility than the {@link EntityResolver}
      * interface, supporting implementations of more complex catalogue
      * schemes such as the one defined by the <a href=
-        "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html"
-        >OASIS XML Catalogs</a> specification.</p>
+     *   "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html"
+     *   >OASIS XML Catalogs</a> specification.
      *
      * <p>Parsers configured to use this resolver method will call it
      * to determine the input source to use for any external entity
@@ -176,13 +173,13 @@
      * by {@link #getExternalSubset getExternalSubset()}.
      * When a (non-validating) processor is configured not to include
      * a class of entities (parameter or general) through use of feature
-     * flags, this method is not invoked for such entities.  </p>
+     * flags, this method is not invoked for such entities.
      *
      * <p>Note that the entity naming scheme used here is the same one
      * used in the {@link LexicalHandler}, or in the {@link
-        org.xml.sax.ContentHandler#skippedEntity
-        ContentHandler.skippedEntity()}
-     * method. </p>
+     *   org.xml.sax.ContentHandler#skippedEntity
+     *   ContentHandler.skippedEntity()}
+     * method.
      *
      * @param name Identifies the external entity being resolved.
      *  Either "[dtd]" for the external subset, or a name starting
@@ -196,7 +193,7 @@
      *  are interpreted.  This is always an absolute URI, unless it is
      *  null (likely because the XMLReader was given an InputSource without
      *  one).  This URI is defined by the XML specification to be the one
-     *  associated with the "&lt;" starting the relevant declaration.
+     *  associated with the "{@literal <}" starting the relevant declaration.
      * @param systemId The system identifier of the external entity
      *  being referenced; either a relative or absolute URI.
      *  This is never null when invoked by a SAX2 parser; only declared
--- a/jaxp/src/java.xml/share/classes/org/xml/sax/helpers/XMLReaderFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxp/src/java.xml/share/classes/org/xml/sax/helpers/XMLReaderFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -49,7 +49,7 @@
  * </blockquote>
  *
  * <p>This class contains static methods for creating an XML reader
- * from an explicit class name, or based on runtime defaults:</p>
+ * from an explicit class name, or based on runtime defaults:
  *
  * <pre>
  * try {
@@ -64,8 +64,8 @@
  * <em>createXMLReader</em> to handle cases where the external
  * configuration mechanisms aren't set up.  That method should do its
  * best to return a parser when one is in the class path, even when
- * nothing bound its class name to <code>org.xml.sax.driver</code> so
- * those configuration mechanisms would see it.</p>
+ * nothing bound its class name to {@code org.xml.sax.driver} so
+ * those configuration mechanisms would see it.
  *
  * @since 1.4, SAX 2.0
  * @author David Megginson, David Brownell
@@ -76,7 +76,7 @@
     /**
      * Private constructor.
      *
-     * <p>This constructor prevents the class from being instantiated.</p>
+     * <p>This constructor prevents the class from being instantiated.
      */
     private XMLReaderFactory ()
     {
@@ -91,9 +91,10 @@
      * Attempt to create an XMLReader from system defaults.
      * In environments which can support it, the name of the XMLReader
      * class is determined by trying each these options in order, and
-     * using the first one which succeeds:</p> <ul>
+     * using the first one which succeeds:
+     * <ul>
      *
-     * <li>If the system property <code>org.xml.sax.driver</code>
+     * <li>If the system property {@code org.xml.sax.driver}
      * has a value, that is used as an XMLReader class name. </li>
      *
      * <li>The JAR "Services API" is used to look for a class name
@@ -107,14 +108,13 @@
      * <li>Finally, if {@link ParserFactory#makeParser()} can
      * return a system default SAX1 parser, that parser is wrapped in
      * a {@link ParserAdapter}.  (This is a migration aid for SAX1
-     * environments, where the <code>org.xml.sax.parser</code> system
+     * environments, where the {@code org.xml.sax.parser} system
      * property will often be usable.) </li>
-     *
      * </ul>
      *
      * <p> In environments such as small embedded systems, which can not
      * support that flexibility, other mechanisms to determine the default
-     * may be used. </p>
+     * may be used.
      *
      * <p>Note that many Java environments allow system properties to be
      * initialized on a command line.  This means that <em>in most cases</em>
@@ -122,7 +122,6 @@
      * method will succeed, except when security policies intervene.
      * This will also maximize application portability to older SAX
      * environments, with less robust implementations of this method.
-     * </p>
      *
      * @return A new XMLReader.
      * @exception org.xml.sax.SAXException If no default XMLReader class
@@ -204,11 +203,11 @@
      * Attempt to create an XML reader from a class name.
      *
      * <p>Given a class name, this method attempts to load
-     * and instantiate the class as an XML reader.</p>
+     * and instantiate the class as an XML reader.
      *
      * <p>Note that this method will not be usable in environments where
      * the caller (perhaps an applet) is not permitted to load classes
-     * dynamically.</p>
+     * dynamically.
      *
      * @return A new XML reader.
      * @exception org.xml.sax.SAXException If the class cannot be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSS2Properties.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,1806 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSS2Properties</code> interface represents a convenience
+ * mechanism for retrieving and setting properties within a
+ * <code>CSSStyleDeclaration</code>. The attributes of this interface
+ * correspond to all the properties specified in CSS2. Getting an attribute
+ * of this interface is equivalent to calling the
+ * <code>getPropertyValue</code> method of the
+ * <code>CSSStyleDeclaration</code> interface. Setting an attribute of this
+ * interface is equivalent to calling the <code>setProperty</code> method of
+ * the <code>CSSStyleDeclaration</code> interface.
+ * <p> A conformant implementation of the CSS module is not required to
+ * implement the <code>CSS2Properties</code> interface. If an implementation
+ * does implement this interface, the expectation is that language-specific
+ * methods can be used to cast from an instance of the
+ * <code>CSSStyleDeclaration</code> interface to the
+ * <code>CSS2Properties</code> interface.
+ * <p> If an implementation does implement this interface, it is expected to
+ * understand the specific syntax of the shorthand properties, and apply
+ * their semantics; when the <code>margin</code> property is set, for
+ * example, the <code>marginTop</code>, <code>marginRight</code>,
+ * <code>marginBottom</code> and <code>marginLeft</code> properties are
+ * actually being set by the underlying implementation.
+ * <p> When dealing with CSS "shorthand" properties, the shorthand properties
+ * should be decomposed into their component longhand properties as
+ * appropriate, and when querying for their value, the form returned should
+ * be the shortest form exactly equivalent to the declarations made in the
+ * ruleset. However, if there is no shorthand declaration that could be
+ * added to the ruleset without changing in any way the rules already
+ * declared in the ruleset (i.e., by adding longhand rules that were
+ * previously not declared in the ruleset), then the empty string should be
+ * returned for the shorthand property.
+ * <p> For example, querying for the <code>font</code> property should not
+ * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt
+ * Arial, sans-serif" suffices. (The normals are initial values, and are
+ * implied by use of the longhand property.)
+ * <p> If the values for all the longhand properties that compose a particular
+ * string are the initial values, then a string consisting of all the
+ * initial values should be returned (e.g. a <code>border-width</code> value
+ * of "medium" should be returned as such, not as "").
+ * <p> For some shorthand properties that take missing values from other
+ * sides, such as the <code>margin</code>, <code>padding</code>, and
+ * <code>border-[width|style|color]</code> properties, the minimum number of
+ * sides possible should be used; i.e., "0px 10px" will be returned instead
+ * of "0px 10px 0px 10px".
+ * <p> If the value of a shorthand property can not be decomposed into its
+ * component longhand properties, as is the case for the <code>font</code>
+ * property with a value of "menu", querying for the values of the component
+ * longhand properties should return the empty string.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSS2Properties {
+    /**
+     *  See the azimuth property definition in CSS2.
+     */
+    public String getAzimuth();
+    /**
+     *  See the azimuth property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setAzimuth(String azimuth)
+                                             throws DOMException;
+
+    /**
+     *  See the background property definition in CSS2.
+     */
+    public String getBackground();
+    /**
+     *  See the background property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBackground(String background)
+                                             throws DOMException;
+
+    /**
+     *  See the background-attachment property definition in CSS2.
+     */
+    public String getBackgroundAttachment();
+    /**
+     *  See the background-attachment property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBackgroundAttachment(String backgroundAttachment)
+                                             throws DOMException;
+
+    /**
+     *  See the background-color property definition in CSS2.
+     */
+    public String getBackgroundColor();
+    /**
+     *  See the background-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBackgroundColor(String backgroundColor)
+                                             throws DOMException;
+
+    /**
+     *  See the background-image property definition in CSS2.
+     */
+    public String getBackgroundImage();
+    /**
+     *  See the background-image property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBackgroundImage(String backgroundImage)
+                                             throws DOMException;
+
+    /**
+     *  See the background-position property definition in CSS2.
+     */
+    public String getBackgroundPosition();
+    /**
+     *  See the background-position property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBackgroundPosition(String backgroundPosition)
+                                             throws DOMException;
+
+    /**
+     *  See the background-repeat property definition in CSS2.
+     */
+    public String getBackgroundRepeat();
+    /**
+     *  See the background-repeat property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBackgroundRepeat(String backgroundRepeat)
+                                             throws DOMException;
+
+    /**
+     *  See the border property definition in CSS2.
+     */
+    public String getBorder();
+    /**
+     *  See the border property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorder(String border)
+                                             throws DOMException;
+
+    /**
+     *  See the border-collapse property definition in CSS2.
+     */
+    public String getBorderCollapse();
+    /**
+     *  See the border-collapse property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderCollapse(String borderCollapse)
+                                             throws DOMException;
+
+    /**
+     *  See the border-color property definition in CSS2.
+     */
+    public String getBorderColor();
+    /**
+     *  See the border-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderColor(String borderColor)
+                                             throws DOMException;
+
+    /**
+     *  See the border-spacing property definition in CSS2.
+     */
+    public String getBorderSpacing();
+    /**
+     *  See the border-spacing property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderSpacing(String borderSpacing)
+                                             throws DOMException;
+
+    /**
+     *  See the border-style property definition in CSS2.
+     */
+    public String getBorderStyle();
+    /**
+     *  See the border-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderStyle(String borderStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the border-top property definition in CSS2.
+     */
+    public String getBorderTop();
+    /**
+     *  See the border-top property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderTop(String borderTop)
+                                             throws DOMException;
+
+    /**
+     *  See the border-right property definition in CSS2.
+     */
+    public String getBorderRight();
+    /**
+     *  See the border-right property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderRight(String borderRight)
+                                             throws DOMException;
+
+    /**
+     *  See the border-bottom property definition in CSS2.
+     */
+    public String getBorderBottom();
+    /**
+     *  See the border-bottom property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderBottom(String borderBottom)
+                                             throws DOMException;
+
+    /**
+     *  See the border-left property definition in CSS2.
+     */
+    public String getBorderLeft();
+    /**
+     *  See the border-left property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderLeft(String borderLeft)
+                                             throws DOMException;
+
+    /**
+     *  See the border-top-color property definition in CSS2.
+     */
+    public String getBorderTopColor();
+    /**
+     *  See the border-top-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderTopColor(String borderTopColor)
+                                             throws DOMException;
+
+    /**
+     *  See the border-right-color property definition in CSS2.
+     */
+    public String getBorderRightColor();
+    /**
+     *  See the border-right-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderRightColor(String borderRightColor)
+                                             throws DOMException;
+
+    /**
+     *  See the border-bottom-color property definition in CSS2.
+     */
+    public String getBorderBottomColor();
+    /**
+     *  See the border-bottom-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderBottomColor(String borderBottomColor)
+                                             throws DOMException;
+
+    /**
+     *  See the border-left-color property definition in CSS2.
+     */
+    public String getBorderLeftColor();
+    /**
+     *  See the border-left-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderLeftColor(String borderLeftColor)
+                                             throws DOMException;
+
+    /**
+     *  See the border-top-style property definition in CSS2.
+     */
+    public String getBorderTopStyle();
+    /**
+     *  See the border-top-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderTopStyle(String borderTopStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the border-right-style property definition in CSS2.
+     */
+    public String getBorderRightStyle();
+    /**
+     *  See the border-right-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderRightStyle(String borderRightStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the border-bottom-style property definition in CSS2.
+     */
+    public String getBorderBottomStyle();
+    /**
+     *  See the border-bottom-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderBottomStyle(String borderBottomStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the border-left-style property definition in CSS2.
+     */
+    public String getBorderLeftStyle();
+    /**
+     *  See the border-left-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderLeftStyle(String borderLeftStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the border-top-width property definition in CSS2.
+     */
+    public String getBorderTopWidth();
+    /**
+     *  See the border-top-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderTopWidth(String borderTopWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the border-right-width property definition in CSS2.
+     */
+    public String getBorderRightWidth();
+    /**
+     *  See the border-right-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderRightWidth(String borderRightWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the border-bottom-width property definition in CSS2.
+     */
+    public String getBorderBottomWidth();
+    /**
+     *  See the border-bottom-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderBottomWidth(String borderBottomWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the border-left-width property definition in CSS2.
+     */
+    public String getBorderLeftWidth();
+    /**
+     *  See the border-left-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderLeftWidth(String borderLeftWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the border-width property definition in CSS2.
+     */
+    public String getBorderWidth();
+    /**
+     *  See the border-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBorderWidth(String borderWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the bottom property definition in CSS2.
+     */
+    public String getBottom();
+    /**
+     *  See the bottom property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setBottom(String bottom)
+                                             throws DOMException;
+
+    /**
+     *  See the caption-side property definition in CSS2.
+     */
+    public String getCaptionSide();
+    /**
+     *  See the caption-side property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCaptionSide(String captionSide)
+                                             throws DOMException;
+
+    /**
+     *  See the clear property definition in CSS2.
+     */
+    public String getClear();
+    /**
+     *  See the clear property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setClear(String clear)
+                                             throws DOMException;
+
+    /**
+     *  See the clip property definition in CSS2.
+     */
+    public String getClip();
+    /**
+     *  See the clip property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setClip(String clip)
+                                             throws DOMException;
+
+    /**
+     *  See the color property definition in CSS2.
+     */
+    public String getColor();
+    /**
+     *  See the color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setColor(String color)
+                                             throws DOMException;
+
+    /**
+     *  See the content property definition in CSS2.
+     */
+    public String getContent();
+    /**
+     *  See the content property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setContent(String content)
+                                             throws DOMException;
+
+    /**
+     *  See the counter-increment property definition in CSS2.
+     */
+    public String getCounterIncrement();
+    /**
+     *  See the counter-increment property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCounterIncrement(String counterIncrement)
+                                             throws DOMException;
+
+    /**
+     *  See the counter-reset property definition in CSS2.
+     */
+    public String getCounterReset();
+    /**
+     *  See the counter-reset property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCounterReset(String counterReset)
+                                             throws DOMException;
+
+    /**
+     *  See the cue property definition in CSS2.
+     */
+    public String getCue();
+    /**
+     *  See the cue property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCue(String cue)
+                                             throws DOMException;
+
+    /**
+     *  See the cue-after property definition in CSS2.
+     */
+    public String getCueAfter();
+    /**
+     *  See the cue-after property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCueAfter(String cueAfter)
+                                             throws DOMException;
+
+    /**
+     *  See the cue-before property definition in CSS2.
+     */
+    public String getCueBefore();
+    /**
+     *  See the cue-before property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCueBefore(String cueBefore)
+                                             throws DOMException;
+
+    /**
+     *  See the cursor property definition in CSS2.
+     */
+    public String getCursor();
+    /**
+     *  See the cursor property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCursor(String cursor)
+                                             throws DOMException;
+
+    /**
+     *  See the direction property definition in CSS2.
+     */
+    public String getDirection();
+    /**
+     *  See the direction property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setDirection(String direction)
+                                             throws DOMException;
+
+    /**
+     *  See the display property definition in CSS2.
+     */
+    public String getDisplay();
+    /**
+     *  See the display property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setDisplay(String display)
+                                             throws DOMException;
+
+    /**
+     *  See the elevation property definition in CSS2.
+     */
+    public String getElevation();
+    /**
+     *  See the elevation property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setElevation(String elevation)
+                                             throws DOMException;
+
+    /**
+     *  See the empty-cells property definition in CSS2.
+     */
+    public String getEmptyCells();
+    /**
+     *  See the empty-cells property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setEmptyCells(String emptyCells)
+                                             throws DOMException;
+
+    /**
+     *  See the float property definition in CSS2.
+     */
+    public String getCssFloat();
+    /**
+     *  See the float property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setCssFloat(String cssFloat)
+                                             throws DOMException;
+
+    /**
+     *  See the font property definition in CSS2.
+     */
+    public String getFont();
+    /**
+     *  See the font property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFont(String font)
+                                             throws DOMException;
+
+    /**
+     *  See the font-family property definition in CSS2.
+     */
+    public String getFontFamily();
+    /**
+     *  See the font-family property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontFamily(String fontFamily)
+                                             throws DOMException;
+
+    /**
+     *  See the font-size property definition in CSS2.
+     */
+    public String getFontSize();
+    /**
+     *  See the font-size property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontSize(String fontSize)
+                                             throws DOMException;
+
+    /**
+     *  See the font-size-adjust property definition in CSS2.
+     */
+    public String getFontSizeAdjust();
+    /**
+     *  See the font-size-adjust property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontSizeAdjust(String fontSizeAdjust)
+                                             throws DOMException;
+
+    /**
+     *  See the font-stretch property definition in CSS2.
+     */
+    public String getFontStretch();
+    /**
+     *  See the font-stretch property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontStretch(String fontStretch)
+                                             throws DOMException;
+
+    /**
+     *  See the font-style property definition in CSS2.
+     */
+    public String getFontStyle();
+    /**
+     *  See the font-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontStyle(String fontStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the font-variant property definition in CSS2.
+     */
+    public String getFontVariant();
+    /**
+     *  See the font-variant property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontVariant(String fontVariant)
+                                             throws DOMException;
+
+    /**
+     *  See the font-weight property definition in CSS2.
+     */
+    public String getFontWeight();
+    /**
+     *  See the font-weight property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFontWeight(String fontWeight)
+                                             throws DOMException;
+
+    /**
+     *  See the height property definition in CSS2.
+     */
+    public String getHeight();
+    /**
+     *  See the height property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setHeight(String height)
+                                             throws DOMException;
+
+    /**
+     *  See the left property definition in CSS2.
+     */
+    public String getLeft();
+    /**
+     *  See the left property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setLeft(String left)
+                                             throws DOMException;
+
+    /**
+     *  See the letter-spacing property definition in CSS2.
+     */
+    public String getLetterSpacing();
+    /**
+     *  See the letter-spacing property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setLetterSpacing(String letterSpacing)
+                                             throws DOMException;
+
+    /**
+     *  See the line-height property definition in CSS2.
+     */
+    public String getLineHeight();
+    /**
+     *  See the line-height property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setLineHeight(String lineHeight)
+                                             throws DOMException;
+
+    /**
+     *  See the list-style property definition in CSS2.
+     */
+    public String getListStyle();
+    /**
+     *  See the list-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setListStyle(String listStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the list-style-image property definition in CSS2.
+     */
+    public String getListStyleImage();
+    /**
+     *  See the list-style-image property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setListStyleImage(String listStyleImage)
+                                             throws DOMException;
+
+    /**
+     *  See the list-style-position property definition in CSS2.
+     */
+    public String getListStylePosition();
+    /**
+     *  See the list-style-position property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setListStylePosition(String listStylePosition)
+                                             throws DOMException;
+
+    /**
+     *  See the list-style-type property definition in CSS2.
+     */
+    public String getListStyleType();
+    /**
+     *  See the list-style-type property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setListStyleType(String listStyleType)
+                                             throws DOMException;
+
+    /**
+     *  See the margin property definition in CSS2.
+     */
+    public String getMargin();
+    /**
+     *  See the margin property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMargin(String margin)
+                                             throws DOMException;
+
+    /**
+     *  See the margin-top property definition in CSS2.
+     */
+    public String getMarginTop();
+    /**
+     *  See the margin-top property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMarginTop(String marginTop)
+                                             throws DOMException;
+
+    /**
+     *  See the margin-right property definition in CSS2.
+     */
+    public String getMarginRight();
+    /**
+     *  See the margin-right property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMarginRight(String marginRight)
+                                             throws DOMException;
+
+    /**
+     *  See the margin-bottom property definition in CSS2.
+     */
+    public String getMarginBottom();
+    /**
+     *  See the margin-bottom property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMarginBottom(String marginBottom)
+                                             throws DOMException;
+
+    /**
+     *  See the margin-left property definition in CSS2.
+     */
+    public String getMarginLeft();
+    /**
+     *  See the margin-left property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMarginLeft(String marginLeft)
+                                             throws DOMException;
+
+    /**
+     *  See the marker-offset property definition in CSS2.
+     */
+    public String getMarkerOffset();
+    /**
+     *  See the marker-offset property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMarkerOffset(String markerOffset)
+                                             throws DOMException;
+
+    /**
+     *  See the marks property definition in CSS2.
+     */
+    public String getMarks();
+    /**
+     *  See the marks property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMarks(String marks)
+                                             throws DOMException;
+
+    /**
+     *  See the max-height property definition in CSS2.
+     */
+    public String getMaxHeight();
+    /**
+     *  See the max-height property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMaxHeight(String maxHeight)
+                                             throws DOMException;
+
+    /**
+     *  See the max-width property definition in CSS2.
+     */
+    public String getMaxWidth();
+    /**
+     *  See the max-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMaxWidth(String maxWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the min-height property definition in CSS2.
+     */
+    public String getMinHeight();
+    /**
+     *  See the min-height property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMinHeight(String minHeight)
+                                             throws DOMException;
+
+    /**
+     *  See the min-width property definition in CSS2.
+     */
+    public String getMinWidth();
+    /**
+     *  See the min-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setMinWidth(String minWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the orphans property definition in CSS2.
+     */
+    public String getOrphans();
+    /**
+     *  See the orphans property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setOrphans(String orphans)
+                                             throws DOMException;
+
+    /**
+     *  See the outline property definition in CSS2.
+     */
+    public String getOutline();
+    /**
+     *  See the outline property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setOutline(String outline)
+                                             throws DOMException;
+
+    /**
+     *  See the outline-color property definition in CSS2.
+     */
+    public String getOutlineColor();
+    /**
+     *  See the outline-color property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setOutlineColor(String outlineColor)
+                                             throws DOMException;
+
+    /**
+     *  See the outline-style property definition in CSS2.
+     */
+    public String getOutlineStyle();
+    /**
+     *  See the outline-style property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setOutlineStyle(String outlineStyle)
+                                             throws DOMException;
+
+    /**
+     *  See the outline-width property definition in CSS2.
+     */
+    public String getOutlineWidth();
+    /**
+     *  See the outline-width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setOutlineWidth(String outlineWidth)
+                                             throws DOMException;
+
+    /**
+     *  See the overflow property definition in CSS2.
+     */
+    public String getOverflow();
+    /**
+     *  See the overflow property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setOverflow(String overflow)
+                                             throws DOMException;
+
+    /**
+     *  See the padding property definition in CSS2.
+     */
+    public String getPadding();
+    /**
+     *  See the padding property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPadding(String padding)
+                                             throws DOMException;
+
+    /**
+     *  See the padding-top property definition in CSS2.
+     */
+    public String getPaddingTop();
+    /**
+     *  See the padding-top property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPaddingTop(String paddingTop)
+                                             throws DOMException;
+
+    /**
+     *  See the padding-right property definition in CSS2.
+     */
+    public String getPaddingRight();
+    /**
+     *  See the padding-right property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPaddingRight(String paddingRight)
+                                             throws DOMException;
+
+    /**
+     *  See the padding-bottom property definition in CSS2.
+     */
+    public String getPaddingBottom();
+    /**
+     *  See the padding-bottom property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPaddingBottom(String paddingBottom)
+                                             throws DOMException;
+
+    /**
+     *  See the padding-left property definition in CSS2.
+     */
+    public String getPaddingLeft();
+    /**
+     *  See the padding-left property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPaddingLeft(String paddingLeft)
+                                             throws DOMException;
+
+    /**
+     *  See the page property definition in CSS2.
+     */
+    public String getPage();
+    /**
+     *  See the page property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPage(String page)
+                                             throws DOMException;
+
+    /**
+     *  See the page-break-after property definition in CSS2.
+     */
+    public String getPageBreakAfter();
+    /**
+     *  See the page-break-after property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPageBreakAfter(String pageBreakAfter)
+                                             throws DOMException;
+
+    /**
+     *  See the page-break-before property definition in CSS2.
+     */
+    public String getPageBreakBefore();
+    /**
+     *  See the page-break-before property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPageBreakBefore(String pageBreakBefore)
+                                             throws DOMException;
+
+    /**
+     *  See the page-break-inside property definition in CSS2.
+     */
+    public String getPageBreakInside();
+    /**
+     *  See the page-break-inside property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPageBreakInside(String pageBreakInside)
+                                             throws DOMException;
+
+    /**
+     *  See the pause property definition in CSS2.
+     */
+    public String getPause();
+    /**
+     *  See the pause property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPause(String pause)
+                                             throws DOMException;
+
+    /**
+     *  See the pause-after property definition in CSS2.
+     */
+    public String getPauseAfter();
+    /**
+     *  See the pause-after property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPauseAfter(String pauseAfter)
+                                             throws DOMException;
+
+    /**
+     *  See the pause-before property definition in CSS2.
+     */
+    public String getPauseBefore();
+    /**
+     *  See the pause-before property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPauseBefore(String pauseBefore)
+                                             throws DOMException;
+
+    /**
+     *  See the pitch property definition in CSS2.
+     */
+    public String getPitch();
+    /**
+     *  See the pitch property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPitch(String pitch)
+                                             throws DOMException;
+
+    /**
+     *  See the pitch-range property definition in CSS2.
+     */
+    public String getPitchRange();
+    /**
+     *  See the pitch-range property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPitchRange(String pitchRange)
+                                             throws DOMException;
+
+    /**
+     *  See the play-during property definition in CSS2.
+     */
+    public String getPlayDuring();
+    /**
+     *  See the play-during property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPlayDuring(String playDuring)
+                                             throws DOMException;
+
+    /**
+     *  See the position property definition in CSS2.
+     */
+    public String getPosition();
+    /**
+     *  See the position property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setPosition(String position)
+                                             throws DOMException;
+
+    /**
+     *  See the quotes property definition in CSS2.
+     */
+    public String getQuotes();
+    /**
+     *  See the quotes property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setQuotes(String quotes)
+                                             throws DOMException;
+
+    /**
+     *  See the richness property definition in CSS2.
+     */
+    public String getRichness();
+    /**
+     *  See the richness property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setRichness(String richness)
+                                             throws DOMException;
+
+    /**
+     *  See the right property definition in CSS2.
+     */
+    public String getRight();
+    /**
+     *  See the right property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setRight(String right)
+                                             throws DOMException;
+
+    /**
+     *  See the size property definition in CSS2.
+     */
+    public String getSize();
+    /**
+     *  See the size property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setSize(String size)
+                                             throws DOMException;
+
+    /**
+     *  See the speak property definition in CSS2.
+     */
+    public String getSpeak();
+    /**
+     *  See the speak property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setSpeak(String speak)
+                                             throws DOMException;
+
+    /**
+     *  See the speak-header property definition in CSS2.
+     */
+    public String getSpeakHeader();
+    /**
+     *  See the speak-header property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setSpeakHeader(String speakHeader)
+                                             throws DOMException;
+
+    /**
+     *  See the speak-numeral property definition in CSS2.
+     */
+    public String getSpeakNumeral();
+    /**
+     *  See the speak-numeral property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setSpeakNumeral(String speakNumeral)
+                                             throws DOMException;
+
+    /**
+     *  See the speak-punctuation property definition in CSS2.
+     */
+    public String getSpeakPunctuation();
+    /**
+     *  See the speak-punctuation property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setSpeakPunctuation(String speakPunctuation)
+                                             throws DOMException;
+
+    /**
+     *  See the speech-rate property definition in CSS2.
+     */
+    public String getSpeechRate();
+    /**
+     *  See the speech-rate property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setSpeechRate(String speechRate)
+                                             throws DOMException;
+
+    /**
+     *  See the stress property definition in CSS2.
+     */
+    public String getStress();
+    /**
+     *  See the stress property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setStress(String stress)
+                                             throws DOMException;
+
+    /**
+     *  See the table-layout property definition in CSS2.
+     */
+    public String getTableLayout();
+    /**
+     *  See the table-layout property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTableLayout(String tableLayout)
+                                             throws DOMException;
+
+    /**
+     *  See the text-align property definition in CSS2.
+     */
+    public String getTextAlign();
+    /**
+     *  See the text-align property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTextAlign(String textAlign)
+                                             throws DOMException;
+
+    /**
+     *  See the text-decoration property definition in CSS2.
+     */
+    public String getTextDecoration();
+    /**
+     *  See the text-decoration property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTextDecoration(String textDecoration)
+                                             throws DOMException;
+
+    /**
+     *  See the text-indent property definition in CSS2.
+     */
+    public String getTextIndent();
+    /**
+     *  See the text-indent property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTextIndent(String textIndent)
+                                             throws DOMException;
+
+    /**
+     *  See the text-shadow property definition in CSS2.
+     */
+    public String getTextShadow();
+    /**
+     *  See the text-shadow property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTextShadow(String textShadow)
+                                             throws DOMException;
+
+    /**
+     *  See the text-transform property definition in CSS2.
+     */
+    public String getTextTransform();
+    /**
+     *  See the text-transform property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTextTransform(String textTransform)
+                                             throws DOMException;
+
+    /**
+     *  See the top property definition in CSS2.
+     */
+    public String getTop();
+    /**
+     *  See the top property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setTop(String top)
+                                             throws DOMException;
+
+    /**
+     *  See the unicode-bidi property definition in CSS2.
+     */
+    public String getUnicodeBidi();
+    /**
+     *  See the unicode-bidi property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setUnicodeBidi(String unicodeBidi)
+                                             throws DOMException;
+
+    /**
+     *  See the vertical-align property definition in CSS2.
+     */
+    public String getVerticalAlign();
+    /**
+     *  See the vertical-align property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setVerticalAlign(String verticalAlign)
+                                             throws DOMException;
+
+    /**
+     *  See the visibility property definition in CSS2.
+     */
+    public String getVisibility();
+    /**
+     *  See the visibility property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setVisibility(String visibility)
+                                             throws DOMException;
+
+    /**
+     *  See the voice-family property definition in CSS2.
+     */
+    public String getVoiceFamily();
+    /**
+     *  See the voice-family property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setVoiceFamily(String voiceFamily)
+                                             throws DOMException;
+
+    /**
+     *  See the volume property definition in CSS2.
+     */
+    public String getVolume();
+    /**
+     *  See the volume property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setVolume(String volume)
+                                             throws DOMException;
+
+    /**
+     *  See the white-space property definition in CSS2.
+     */
+    public String getWhiteSpace();
+    /**
+     *  See the white-space property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setWhiteSpace(String whiteSpace)
+                                             throws DOMException;
+
+    /**
+     *  See the widows property definition in CSS2.
+     */
+    public String getWidows();
+    /**
+     *  See the widows property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setWidows(String widows)
+                                             throws DOMException;
+
+    /**
+     *  See the width property definition in CSS2.
+     */
+    public String getWidth();
+    /**
+     *  See the width property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setWidth(String width)
+                                             throws DOMException;
+
+    /**
+     *  See the word-spacing property definition in CSS2.
+     */
+    public String getWordSpacing();
+    /**
+     *  See the word-spacing property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setWordSpacing(String wordSpacing)
+                                             throws DOMException;
+
+    /**
+     *  See the z-index property definition in CSS2.
+     */
+    public String getZIndex();
+    /**
+     *  See the z-index property definition in CSS2.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the new value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setZIndex(String zIndex)
+                                             throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSCharsetRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,80 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSCharsetRule</code> interface represents a @charset rule in a
+ * CSS style sheet. The value of the <code>encoding</code> attribute does
+ * not affect the encoding of text data in the DOM objects; this encoding is
+ * always UTF-16. After a stylesheet is loaded, the value of the
+ * <code>encoding</code> attribute is the value found in the
+ * <code>@charset</code> rule. If there was no <code>@charset</code> in the
+ * original document, then no <code>CSSCharsetRule</code> is created. The
+ * value of the <code>encoding</code> attribute may also be used as a hint
+ * for the encoding used on serialization of the style sheet.
+ * <p> The value of the @charset rule (and therefore of the
+ * <code>CSSCharsetRule</code>) may not correspond to the encoding the
+ * document actually came in; character encoding information e.g. in an HTTP
+ * header, has priority (see CSS document representation) but this is not
+ * reflected in the <code>CSSCharsetRule</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSCharsetRule extends CSSRule {
+    /**
+     *  The encoding information used in this <code>@charset</code> rule.
+     */
+    public String getEncoding();
+    /**
+     *  The encoding information used in this <code>@charset</code> rule.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified encoding value has a syntax error
+     *   and is unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is
+     *   readonly.
+     */
+    public void setEncoding(String encoding)
+                           throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSFontFaceRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  The <code>CSSFontFaceRule</code> interface represents a @font-face rule in
+ * a CSS style sheet. The <code>@font-face</code> rule is used to hold a set
+ * of font descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSFontFaceRule extends CSSRule {
+    /**
+     *  The declaration-block of this rule.
+     */
+    public CSSStyleDeclaration getStyle();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSImportRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.stylesheets.MediaList;
+
+/**
+ *  The <code>CSSImportRule</code> interface represents a @import rule within
+ * a CSS style sheet. The <code>@import</code> rule is used to import style
+ * rules from other style sheets.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSImportRule extends CSSRule {
+    /**
+     *  The location of the style sheet to be imported. The attribute will not
+     * contain the <code>"url(...)"</code> specifier around the URI.
+     */
+    public String getHref();
+
+    /**
+     *  A list of media types for which this style sheet may be used.
+     */
+    public MediaList getMedia();
+
+    /**
+     * The style sheet referred to by this rule, if it has been loaded. The
+     * value of this attribute is <code>null</code> if the style sheet has
+     * not yet been loaded or if it will not be loaded (e.g. if the style
+     * sheet is for a media type not supported by the user agent).
+     */
+    public CSSStyleSheet getStyleSheet();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSMediaRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,105 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.stylesheets.MediaList;
+
+/**
+ *  The <code>CSSMediaRule</code> interface represents a @media rule in a CSS
+ * style sheet. A <code>@media</code> rule can be used to delimit style
+ * rules for specific media types.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSMediaRule extends CSSRule {
+    /**
+     *  A list of media types for this rule.
+     */
+    public MediaList getMedia();
+
+    /**
+     *  A list of all CSS rules contained within the media block.
+     */
+    public CSSRuleList getCssRules();
+
+    /**
+     *  Used to insert a new rule into the media block.
+     * @param rule  The parsable text representing the rule. For rule sets
+     *   this contains both the selector and the style declaration. For
+     *   at-rules, this specifies both the at-identifier and the rule
+     *   content.
+     * @param index  The index within the media block's rule collection of
+     *   the rule before which to insert the specified rule. If the
+     *   specified index is equal to the length of the media blocks's rule
+     *   collection, the rule will be added to the end of the media block.
+     * @return  The index within the media block's rule collection of the
+     *   newly inserted rule.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
+     *   specified index, e.g., if an <code>@import</code> rule is inserted
+     *   after a standard rule set or other at-rule.
+     *   <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid
+     *   insertion point.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
+     *   readonly.
+     *   <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and
+     *   is unparsable.
+     */
+    public int insertRule(String rule,
+                          int index)
+                          throws DOMException;
+
+    /**
+     *  Used to delete a rule from the media block.
+     * @param index  The index within the media block's rule collection of
+     *   the rule to remove.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified index does not correspond to
+     *   a rule in the media rule list.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
+     *   readonly.
+     */
+    public void deleteRule(int index)
+                           throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSPageRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSPageRule</code> interface represents a @page rule within a
+ * CSS style sheet. The <code>@page</code> rule is used to specify the
+ * dimensions, orientation, margins, etc. of a page box for paged media.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSPageRule extends CSSRule {
+    /**
+     *  The parsable textual representation of the page selector for the rule.
+     */
+    public String getSelectorText();
+    /**
+     *  The parsable textual representation of the page selector for the rule.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+     *   error and is unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
+     */
+    public void setSelectorText(String selectorText)
+                           throws DOMException;
+
+    /**
+     *  The declaration-block of this rule.
+     */
+    public CSSStyleDeclaration getStyle();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSPrimitiveValue.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,325 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSPrimitiveValue</code> interface represents a single CSS value
+ * . This interface may be used to determine the value of a specific style
+ * property currently set in a block or to set a specific style property
+ * explicitly within the block. An instance of this interface might be
+ * obtained from the <code>getPropertyCSSValue</code> method of the
+ * <code>CSSStyleDeclaration</code> interface. A
+ * <code>CSSPrimitiveValue</code> object only occurs in a context of a CSS
+ * property.
+ * <p> Conversions are allowed between absolute values (from millimeters to
+ * centimeters, from degrees to radians, and so on) but not between relative
+ * values. (For example, a pixel value cannot be converted to a centimeter
+ * value.) Percentage values can't be converted since they are relative to
+ * the parent value (or another property value). There is one exception for
+ * color percentage values: since a color percentage value is relative to
+ * the range 0-255, a color percentage value can be converted to a number;
+ * (see also the <code>RGBColor</code> interface).
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSPrimitiveValue extends CSSValue {
+    // UnitTypes
+    /**
+     * The value is not a recognized CSS2 value. The value can only be
+     * obtained by using the <code>cssText</code> attribute.
+     */
+    public static final short CSS_UNKNOWN               = 0;
+    /**
+     * The value is a simple number. The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_NUMBER                = 1;
+    /**
+     * The value is a percentage. The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_PERCENTAGE            = 2;
+    /**
+     * The value is a length (ems). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_EMS                   = 3;
+    /**
+     * The value is a length (exs). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_EXS                   = 4;
+    /**
+     * The value is a length (px). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_PX                    = 5;
+    /**
+     * The value is a length (cm). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_CM                    = 6;
+    /**
+     * The value is a length (mm). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_MM                    = 7;
+    /**
+     * The value is a length (in). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_IN                    = 8;
+    /**
+     * The value is a length (pt). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_PT                    = 9;
+    /**
+     * The value is a length (pc). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_PC                    = 10;
+    /**
+     * The value is an angle (deg). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_DEG                   = 11;
+    /**
+     * The value is an angle (rad). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_RAD                   = 12;
+    /**
+     * The value is an angle (grad). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_GRAD                  = 13;
+    /**
+     * The value is a time (ms). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_MS                    = 14;
+    /**
+     * The value is a time (s). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_S                     = 15;
+    /**
+     * The value is a frequency (Hz). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_HZ                    = 16;
+    /**
+     * The value is a frequency (kHz). The value can be obtained by using the
+     * <code>getFloatValue</code> method.
+     */
+    public static final short CSS_KHZ                   = 17;
+    /**
+     * The value is a number with an unknown dimension. The value can be
+     * obtained by using the <code>getFloatValue</code> method.
+     */
+    public static final short CSS_DIMENSION             = 18;
+    /**
+     * The value is a STRING. The value can be obtained by using the
+     * <code>getStringValue</code> method.
+     */
+    public static final short CSS_STRING                = 19;
+    /**
+     * The value is a URI. The value can be obtained by using the
+     * <code>getStringValue</code> method.
+     */
+    public static final short CSS_URI                   = 20;
+    /**
+     * The value is an identifier. The value can be obtained by using the
+     * <code>getStringValue</code> method.
+     */
+    public static final short CSS_IDENT                 = 21;
+    /**
+     * The value is a attribute function. The value can be obtained by using
+     * the <code>getStringValue</code> method.
+     */
+    public static final short CSS_ATTR                  = 22;
+    /**
+     * The value is a counter or counters function. The value can be obtained
+     * by using the <code>getCounterValue</code> method.
+     */
+    public static final short CSS_COUNTER               = 23;
+    /**
+     * The value is a rect function. The value can be obtained by using the
+     * <code>getRectValue</code> method.
+     */
+    public static final short CSS_RECT                  = 24;
+    /**
+     * The value is a RGB color. The value can be obtained by using the
+     * <code>getRGBColorValue</code> method.
+     */
+    public static final short CSS_RGBCOLOR              = 25;
+
+    /**
+     * The type of the value as defined by the constants specified above.
+     */
+    public short getPrimitiveType();
+
+    /**
+     *  A method to set the float value with a specified unit. If the property
+     * attached with this value can not accept the specified unit or the
+     * float value, the value will be unchanged and a
+     * <code>DOMException</code> will be raised.
+     * @param unitType  A unit code as defined above. The unit code can only
+     *   be a float unit type (i.e. <code>CSS_NUMBER</code>,
+     *   <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
+     *   <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
+     *   <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
+     *   <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
+     *   <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
+     *   <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
+     *   <code>CSS_DIMENSION</code>).
+     * @param floatValue  The new float value.
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the attached property doesn't support
+     *   the float value or the unit type.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setFloatValue(short unitType,
+                              float floatValue)
+                              throws DOMException;
+
+    /**
+     *  This method is used to get a float value in a specified unit. If this
+     * CSS value doesn't contain a float value or can't be converted into
+     * the specified unit, a <code>DOMException</code> is raised.
+     * @param unitType  A unit code to get the float value. The unit code can
+     *   only be a float unit type (i.e. <code>CSS_NUMBER</code>,
+     *   <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
+     *   <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
+     *   <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
+     *   <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
+     *   <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
+     *   <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
+     *   <code>CSS_DIMENSION</code>).
+     * @return  The float value in the specified unit.
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float
+     *   value or if the float value can't be converted into the specified
+     *   unit.
+     */
+    public float getFloatValue(short unitType)
+                               throws DOMException;
+
+    /**
+     *  A method to set the string value with the specified unit. If the
+     * property attached to this value can't accept the specified unit or
+     * the string value, the value will be unchanged and a
+     * <code>DOMException</code> will be raised.
+     * @param stringType  A string code as defined above. The string code can
+     *   only be a string unit type (i.e. <code>CSS_STRING</code>,
+     *   <code>CSS_URI</code>, <code>CSS_IDENT</code>, and
+     *   <code>CSS_ATTR</code>).
+     * @param stringValue  The new string value.
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
+     *   value or if the string value can't be converted into the specified
+     *   unit.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+     */
+    public void setStringValue(short stringType,
+                               String stringValue)
+                               throws DOMException;
+
+    /**
+     *  This method is used to get the string value. If the CSS value doesn't
+     * contain a string value, a <code>DOMException</code> is raised.  Some
+     * properties (like 'font-family' or 'voice-family') convert a
+     * whitespace separated list of idents to a string.
+     * @return  The string value in the current unit. The current
+     *   <code>primitiveType</code> can only be a string unit type (i.e.
+     *   <code>CSS_STRING</code>, <code>CSS_URI</code>,
+     *   <code>CSS_IDENT</code> and <code>CSS_ATTR</code>).
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
+     *   value.
+     */
+    public String getStringValue()
+                                 throws DOMException;
+
+    /**
+     *  This method is used to get the Counter value. If this CSS value
+     * doesn't contain a counter value, a <code>DOMException</code> is
+     * raised. Modification to the corresponding style property can be
+     * achieved using the <code>Counter</code> interface.
+     * @return The Counter value.
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
+     *   Counter value (e.g. this is not <code>CSS_COUNTER</code>).
+     */
+    public Counter getCounterValue()
+                                   throws DOMException;
+
+    /**
+     *  This method is used to get the Rect value. If this CSS value doesn't
+     * contain a rect value, a <code>DOMException</code> is raised.
+     * Modification to the corresponding style property can be achieved
+     * using the <code>Rect</code> interface.
+     * @return The Rect value.
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect
+     *   value. (e.g. this is not <code>CSS_RECT</code>).
+     */
+    public Rect getRectValue()
+                             throws DOMException;
+
+    /**
+     *  This method is used to get the RGB color. If this CSS value doesn't
+     * contain a RGB color value, a <code>DOMException</code> is raised.
+     * Modification to the corresponding style property can be achieved
+     * using the <code>RGBColor</code> interface.
+     * @return the RGB color value.
+     * @exception DOMException
+     *    INVALID_ACCESS_ERR: Raised if the attached property can't return a
+     *   RGB color value (e.g. this is not <code>CSS_RGBCOLOR</code>).
+     */
+    public RGBColor getRGBColorValue()
+                                     throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,126 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSRule</code> interface is the abstract base interface for any
+ * type of CSS statement. This includes both rule sets and at-rules. An
+ * implementation is expected to preserve all rules specified in a CSS style
+ * sheet, even if the rule is not recognized by the parser. Unrecognized
+ * rules are represented using the <code>CSSUnknownRule</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSRule {
+    // RuleType
+    /**
+     * The rule is a <code>CSSUnknownRule</code>.
+     */
+    public static final short UNKNOWN_RULE              = 0;
+    /**
+     * The rule is a <code>CSSStyleRule</code>.
+     */
+    public static final short STYLE_RULE                = 1;
+    /**
+     * The rule is a <code>CSSCharsetRule</code>.
+     */
+    public static final short CHARSET_RULE              = 2;
+    /**
+     * The rule is a <code>CSSImportRule</code>.
+     */
+    public static final short IMPORT_RULE               = 3;
+    /**
+     * The rule is a <code>CSSMediaRule</code>.
+     */
+    public static final short MEDIA_RULE                = 4;
+    /**
+     * The rule is a <code>CSSFontFaceRule</code>.
+     */
+    public static final short FONT_FACE_RULE            = 5;
+    /**
+     * The rule is a <code>CSSPageRule</code>.
+     */
+    public static final short PAGE_RULE                 = 6;
+
+    /**
+     *  The type of the rule, as defined above. The expectation is that
+     * binding-specific casting methods can be used to cast down from an
+     * instance of the <code>CSSRule</code> interface to the specific
+     * derived interface implied by the <code>type</code>.
+     */
+    public short getType();
+
+    /**
+     *  The parsable textual representation of the rule. This reflects the
+     * current state of the rule and not its initial value.
+     */
+    public String getCssText();
+    /**
+     *  The parsable textual representation of the rule. This reflects the
+     * current state of the rule and not its initial value.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+     *   error and is unparsable.
+     *   <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
+     *   value represents a different type of rule than the current one.
+     *   <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
+     *   this point in the style sheet.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
+     */
+    public void setCssText(String cssText)
+                        throws DOMException;
+
+    /**
+     *  The style sheet that contains this rule.
+     */
+    public CSSStyleSheet getParentStyleSheet();
+
+    /**
+     *  If this rule is contained inside another rule (e.g. a style rule
+     * inside an @media block), this is the containing rule. If this rule is
+     * not nested inside any other rules, this returns <code>null</code>.
+     */
+    public CSSRule getParentRule();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSRuleList.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,72 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  The <code>CSSRuleList</code> interface provides the abstraction of an
+ * ordered collection of CSS rules.
+ * <p> The items in the <code>CSSRuleList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSRuleList {
+    /**
+     *  The number of <code>CSSRules</code> in the list. The range of valid
+     * child rule indices is <code>0</code> to <code>length-1</code>
+     * inclusive.
+     */
+    public int getLength();
+
+    /**
+     *  Used to retrieve a CSS rule by ordinal index. The order in this
+     * collection represents the order of the rules in the CSS style sheet.
+     * If index is greater than or equal to the number of rules in the list,
+     * this returns <code>null</code>.
+     * @param index Index into the collection
+     * @return The style rule at the <code>index</code> position in the
+     *   <code>CSSRuleList</code>, or <code>null</code> if that is not a
+     *   valid index.
+     */
+    public CSSRule item(int index);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSStyleDeclaration.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,191 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSStyleDeclaration</code> interface represents a single CSS
+ * declaration block. This interface may be used to determine the style
+ * properties currently set in a block or to set style properties explicitly
+ * within the block.
+ * <p> While an implementation may not recognize all CSS properties within a
+ * CSS declaration block, it is expected to provide access to all specified
+ * properties in the style sheet through the <code>CSSStyleDeclaration</code>
+ *  interface. Furthermore, implementations that support a specific level of
+ * CSS should correctly handle CSS shorthand properties for that level. For
+ * a further discussion of shorthand properties, see the
+ * <code>CSS2Properties</code> interface.
+ * <p> This interface is also used to provide a read-only access to the
+ * computed values of an element. See also the <code>ViewCSS</code>
+ * interface.  The CSS Object Model doesn't provide an access to the
+ * specified or actual values of the CSS cascade.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSStyleDeclaration {
+    /**
+     *  The parsable textual representation of the declaration block
+     * (excluding the surrounding curly braces). Setting this attribute will
+     * result in the parsing of the new value and resetting of all the
+     * properties in the declaration block including the removal or addition
+     * of properties.
+     */
+    public String getCssText();
+    /**
+     *  The parsable textual representation of the declaration block
+     * (excluding the surrounding curly braces). Setting this attribute will
+     * result in the parsing of the new value and resetting of all the
+     * properties in the declaration block including the removal or addition
+     * of properties.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+     *   error and is unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
+     *   readonly or a property is readonly.
+     */
+    public void setCssText(String cssText)
+                       throws DOMException;
+
+    /**
+     *  Used to retrieve the value of a CSS property if it has been explicitly
+     * set within this declaration block.
+     * @param propertyName  The name of the CSS property. See the CSS
+     *   property index.
+     * @return  Returns the value of the property if it has been explicitly
+     *   set for this declaration block. Returns the empty string if the
+     *   property has not been set.
+     */
+    public String getPropertyValue(String propertyName);
+
+    /**
+     *  Used to retrieve the object representation of the value of a CSS
+     * property if it has been explicitly set within this declaration block.
+     * This method returns <code>null</code> if the property is a shorthand
+     * property. Shorthand property values can only be accessed and modified
+     * as strings, using the <code>getPropertyValue</code> and
+     * <code>setProperty</code> methods.
+     * @param propertyName  The name of the CSS property. See the CSS
+     *   property index.
+     * @return  Returns the value of the property if it has been explicitly
+     *   set for this declaration block. Returns <code>null</code> if the
+     *   property has not been set.
+     */
+    public CSSValue getPropertyCSSValue(String propertyName);
+
+    /**
+     *  Used to remove a CSS property if it has been explicitly set within
+     * this declaration block.
+     * @param propertyName  The name of the CSS property. See the CSS
+     *   property index.
+     * @return  Returns the value of the property if it has been explicitly
+     *   set for this declaration block. Returns the empty string if the
+     *   property has not been set or the property name does not correspond
+     *   to a known CSS property.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly
+     *   or the property is readonly.
+     */
+    public String removeProperty(String propertyName)
+                                 throws DOMException;
+
+    /**
+     *  Used to retrieve the priority of a CSS property (e.g. the
+     * <code>"important"</code> qualifier) if the priority has been
+     * explicitly set in this declaration block.
+     * @param propertyName  The name of the CSS property. See the CSS
+     *   property index.
+     * @return  A string representing the priority (e.g.
+     *   <code>"important"</code>) if the property has been explicitly set
+     *   in this declaration block and has a priority specified. The empty
+     *   string otherwise.
+     */
+    public String getPropertyPriority(String propertyName);
+
+    /**
+     *  Used to set a property value and priority within this declaration
+     * block. <code>setProperty</code> permits to modify a property or add a
+     * new one in the declaration block. Any call to this method may modify
+     * the order of properties in the <code>item</code> method.
+     * @param propertyName  The name of the CSS property. See the CSS
+     *   property index.
+     * @param value  The new value of the property.
+     * @param priority  The new priority of the property (e.g.
+     *   <code>"important"</code>) or the empty string if none.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified value has a syntax error and is
+     *   unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
+     *   readonly or the property is readonly.
+     */
+    public void setProperty(String propertyName,
+                            String value,
+                            String priority)
+                            throws DOMException;
+
+    /**
+     *  The number of properties that have been explicitly set in this
+     * declaration block. The range of valid indices is 0 to length-1
+     * inclusive.
+     */
+    public int getLength();
+
+    /**
+     *  Used to retrieve the properties that have been explicitly set in this
+     * declaration block. The order of the properties retrieved using this
+     * method does not have to be the order in which they were set. This
+     * method can be used to iterate over all properties in this declaration
+     * block.
+     * @param index  Index of the property name to retrieve.
+     * @return  The name of the property at this ordinal position. The empty
+     *   string if no property exists at this position.
+     */
+    public String item(int index);
+
+    /**
+     *  The CSS rule that contains this declaration block or <code>null</code>
+     * if this <code>CSSStyleDeclaration</code> is not attached to a
+     * <code>CSSRule</code>.
+     */
+    public CSSRule getParentRule();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSStyleRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSStyleRule</code> interface represents a single rule set in a
+ * CSS style sheet.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSStyleRule extends CSSRule {
+    /**
+     *  The textual representation of the selector for the rule set. The
+     * implementation may have stripped out insignificant whitespace while
+     * parsing the selector.
+     */
+    public String getSelectorText();
+    /**
+     *  The textual representation of the selector for the rule set. The
+     * implementation may have stripped out insignificant whitespace while
+     * parsing the selector.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+     *   error and is unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
+     */
+    public void setSelectorText(String selectorText)
+                        throws DOMException;
+
+    /**
+     *  The declaration-block of this rule set.
+     */
+    public CSSStyleDeclaration getStyle();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSStyleSheet.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.stylesheets.StyleSheet;
+
+/**
+ *  The <code>CSSStyleSheet</code> interface is a concrete interface used to
+ * represent a CSS style sheet i.e., a style sheet whose content type is
+ * "text/css".
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSStyleSheet extends StyleSheet {
+    /**
+     *  If this style sheet comes from an <code>@import</code> rule, the
+     * <code>ownerRule</code> attribute will contain the
+     * <code>CSSImportRule</code>. In that case, the <code>ownerNode</code>
+     * attribute in the <code>StyleSheet</code> interface will be
+     * <code>null</code>. If the style sheet comes from an element or a
+     * processing instruction, the <code>ownerRule</code> attribute will be
+     * <code>null</code> and the <code>ownerNode</code> attribute will
+     * contain the <code>Node</code>.
+     */
+    public CSSRule getOwnerRule();
+
+    /**
+     *  The list of all CSS rules contained within the style sheet. This
+     * includes both rule sets and at-rules.
+     */
+    public CSSRuleList getCssRules();
+
+    /**
+     *  Used to insert a new rule into the style sheet. The new rule now
+     * becomes part of the cascade.
+     * @param rule  The parsable text representing the rule. For rule sets
+     *   this contains both the selector and the style declaration. For
+     *   at-rules, this specifies both the at-identifier and the rule
+     *   content.
+     * @param index  The index within the style sheet's rule list of the rule
+     *   before which to insert the specified rule. If the specified index
+     *   is equal to the length of the style sheet's rule collection, the
+     *   rule will be added to the end of the style sheet.
+     * @return  The index within the style sheet's rule collection of the
+     *   newly inserted rule.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
+     *   specified index e.g. if an <code>@import</code> rule is inserted
+     *   after a standard rule set or other at-rule.
+     *   <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid
+     *   insertion point.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
+     *   readonly.
+     *   <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and
+     *   is unparsable.
+     */
+    public int insertRule(String rule,
+                          int index)
+                          throws DOMException;
+
+    /**
+     *  Used to delete a rule from the style sheet.
+     * @param index  The index within the style sheet's rule list of the rule
+     *   to remove.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified index does not correspond to
+     *   a rule in the style sheet's rule list.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
+     *   readonly.
+     */
+    public void deleteRule(int index)
+                           throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSUnknownRule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  The <code>CSSUnknownRule</code> interface represents an at-rule not
+ * supported by this user agent.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSUnknownRule extends CSSRule {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSValue.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>CSSValue</code> interface represents a simple or a complex
+ * value. A <code>CSSValue</code> object only occurs in a context of a CSS
+ * property.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSValue {
+    // UnitTypes
+    /**
+     * The value is inherited and the <code>cssText</code> contains "inherit".
+     */
+    public static final short CSS_INHERIT               = 0;
+    /**
+     * The value is a primitive value and an instance of the
+     * <code>CSSPrimitiveValue</code> interface can be obtained by using
+     * binding-specific casting methods on this instance of the
+     * <code>CSSValue</code> interface.
+     */
+    public static final short CSS_PRIMITIVE_VALUE       = 1;
+    /**
+     * The value is a <code>CSSValue</code> list and an instance of the
+     * <code>CSSValueList</code> interface can be obtained by using
+     * binding-specific casting methods on this instance of the
+     * <code>CSSValue</code> interface.
+     */
+    public static final short CSS_VALUE_LIST            = 2;
+    /**
+     * The value is a custom value.
+     */
+    public static final short CSS_CUSTOM                = 3;
+
+    /**
+     *  A string representation of the current value.
+     */
+    public String getCssText();
+    /**
+     *  A string representation of the current value.
+     * @exception DOMException
+     *    SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+     *   error (according to the attached property) or is unparsable.
+     *   <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
+     *   value represents a different type of values than the values allowed
+     *   by the CSS property.
+     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly.
+     */
+    public void setCssText(String cssText)
+                       throws DOMException;
+
+    /**
+     *  A code defining the type of the value as defined above.
+     */
+    public short getCssValueType();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/CSSValueList.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>CSSValueList</code> interface provides the abstraction of an
+ * ordered collection of CSS values.
+ * <p> Some properties allow an empty list into their syntax. In that case,
+ * these properties take the <code>none</code> identifier. So, an empty list
+ * means that the property has the value <code>none</code>.
+ * <p> The items in the <code>CSSValueList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSValueList extends CSSValue {
+    /**
+     * The number of <code>CSSValues</code> in the list. The range of valid
+     * values of the indices is <code>0</code> to <code>length-1</code>
+     * inclusive.
+     */
+    public int getLength();
+
+    /**
+     * Used to retrieve a <code>CSSValue</code> by ordinal index. The order in
+     * this collection represents the order of the values in the CSS style
+     * property. If index is greater than or equal to the number of values
+     * in the list, this returns <code>null</code>.
+     * @param index Index into the collection.
+     * @return The <code>CSSValue</code> at the <code>index</code> position
+     *   in the <code>CSSValueList</code>, or <code>null</code> if that is
+     *   not a valid index.
+     */
+    public CSSValue item(int index);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/Counter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  The <code>Counter</code> interface is used to represent any counter or
+ * counters function value. This interface reflects the values in the
+ * underlying style property.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Counter {
+    /**
+     *  This attribute is used for the identifier of the counter.
+     */
+    public String getIdentifier();
+
+    /**
+     *  This attribute is used for the style of the list.
+     */
+    public String getListStyle();
+
+    /**
+     *  This attribute is used for the separator of the nested counters.
+     */
+    public String getSeparator();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/DOMImplementationCSS.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.DOMException;
+
+/**
+ *  This interface allows the DOM user to create a <code>CSSStyleSheet</code>
+ * outside the context of a document. There is no way to associate the new
+ * <code>CSSStyleSheet</code> with a document in DOM Level 2.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM   Level 2
+ */
+public interface DOMImplementationCSS extends DOMImplementation {
+    /**
+     * Creates a new <code>CSSStyleSheet</code>.
+     * @param title  The advisory title. See also the  section.
+     * @param media  The comma-separated list of media associated with the
+     *   new style sheet. See also the  section.
+     * @return A new CSS style sheet.
+     * @exception DOMException
+     *    SYNTAX_ERR: Raised if the specified media string value has a syntax
+     *   error and is unparsable.
+     */
+    public CSSStyleSheet createCSSStyleSheet(String title,
+                                             String media)
+                                             throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/DocumentCSS.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,79 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.stylesheets.DocumentStyle;
+
+/**
+ * This interface represents a document with a CSS view.
+ * <p> The <code>getOverrideStyle</code> method provides a mechanism through
+ * which a DOM author could effect immediate change to the style of an
+ * element without modifying the explicitly linked style sheets of a
+ * document or the inline style of elements in the style sheets. This style
+ * sheet comes after the author style sheet in the cascade algorithm and is
+ * called override style sheet. The override style sheet takes precedence
+ * over author style sheets. An "!important" declaration still takes
+ * precedence over a normal declaration. Override, author, and user style
+ * sheets all may contain "!important" declarations. User "!important" rules
+ * take precedence over both override and author "!important" rules, and
+ * override "!important" rules take precedence over author "!important"
+ * rules.
+ * <p> The expectation is that an instance of the <code>DocumentCSS</code>
+ * interface can be obtained by using binding-specific casting methods on an
+ * instance of the <code>Document</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentCSS extends DocumentStyle {
+    /**
+     *  This method is used to retrieve the override style declaration for a
+     * specified element and a specified pseudo-element.
+     * @param elt  The element whose style is to be modified. This parameter
+     *   cannot be null.
+     * @param pseudoElt  The pseudo-element or <code>null</code> if none.
+     * @return  The override style declaration.
+     */
+    public CSSStyleDeclaration getOverrideStyle(Element elt,
+                                                String pseudoElt);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/ElementCSSInlineStyle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  Inline style information attached to elements is exposed through the
+ * <code>style</code> attribute. This represents the contents of the STYLE
+ * attribute for HTML elements (or elements in other schemas or DTDs which
+ * use the STYLE attribute in the same way). The expectation is that an
+ * instance of the ElementCSSInlineStyle interface can be obtained by using
+ * binding-specific casting methods on an instance of the Element interface
+ * when the element supports inline CSS style informations.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface ElementCSSInlineStyle {
+    /**
+     *  The style attribute.
+     */
+    public CSSStyleDeclaration getStyle();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/RGBColor.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  The <code>RGBColor</code> interface is used to represent any RGB color
+ * value. This interface reflects the values in the underlying style
+ * property. Hence, modifications made to the <code>CSSPrimitiveValue</code>
+ * objects modify the style property.
+ * <p> A specified RGB color is not clipped (even if the number is outside the
+ * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the
+ * device.
+ * <p> Even if a style sheet can only contain an integer for a color value,
+ * the internal storage of this integer is a float, and this can be used as
+ * a float in the specified or the computed style.
+ * <p> A color percentage value can always be converted to a number and vice
+ * versa.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface RGBColor {
+    /**
+     *  This attribute is used for the red value of the RGB color.
+     */
+    public CSSPrimitiveValue getRed();
+
+    /**
+     *  This attribute is used for the green value of the RGB color.
+     */
+    public CSSPrimitiveValue getGreen();
+
+    /**
+     *  This attribute is used for the blue value of the RGB color.
+     */
+    public CSSPrimitiveValue getBlue();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/Rect.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ *  The <code>Rect</code> interface is used to represent any rect value. This
+ * interface reflects the values in the underlying style property. Hence,
+ * modifications made to the <code>CSSPrimitiveValue</code> objects modify
+ * the style property.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Rect {
+    /**
+     *  This attribute is used for the top of the rect.
+     */
+    public CSSPrimitiveValue getTop();
+
+    /**
+     *  This attribute is used for the right of the rect.
+     */
+    public CSSPrimitiveValue getRight();
+
+    /**
+     *  This attribute is used for the bottom of the rect.
+     */
+    public CSSPrimitiveValue getBottom();
+
+    /**
+     *  This attribute is used for the left of the rect.
+     */
+    public CSSPrimitiveValue getLeft();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/ViewCSS.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,72 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.views.AbstractView;
+
+/**
+ *  This interface represents a CSS view. The <code>getComputedStyle</code>
+ * method provides a read only access to the computed values of an element.
+ * <p> The expectation is that an instance of the <code>ViewCSS</code>
+ * interface can be obtained by using binding-specific casting methods on an
+ * instance of the <code>AbstractView</code> interface.
+ * <p> Since a computed style is related to an <code>Element</code> node, if
+ * this element is removed from the document, the associated
+ * <code>CSSStyleDeclaration</code> and <code>CSSValue</code> related to
+ * this declaration are no longer valid.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface ViewCSS extends AbstractView {
+    /**
+     *  This method is used to get the computed style as it is defined in [<a href='http://www.w3.org/TR/1998/REC-CSS2-19980512'>CSS2</a>].
+     * @param elt  The element whose style is to be computed. This parameter
+     *   cannot be null.
+     * @param pseudoElt  The pseudo-element or <code>null</code> if none.
+     * @return  The computed style. The <code>CSSStyleDeclaration</code> is
+     *   read-only and contains only absolute values.
+     */
+    public CSSStyleDeclaration getComputedStyle(Element elt,
+                                                String pseudoElt);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLAnchorElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,140 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  The anchor element. See the  A element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLAnchorElement extends HTMLElement {
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  The character encoding of the linked resource. See the  charset
+     * attribute definition in HTML 4.0.
+     */
+    public String getCharset();
+    public void setCharset(String charset);
+
+    /**
+     *  Comma-separated list of lengths, defining an active region geometry.
+     * See also <code>shape</code> for the shape of the region. See the
+     * coords attribute definition in HTML 4.0.
+     */
+    public String getCoords();
+    public void setCoords(String coords);
+
+    /**
+     *  The URI of the linked resource. See the  href attribute definition in
+     * HTML 4.0.
+     */
+    public String getHref();
+    public void setHref(String href);
+
+    /**
+     *  Language code of the linked resource. See the  hreflang attribute
+     * definition in HTML 4.0.
+     */
+    public String getHreflang();
+    public void setHreflang(String hreflang);
+
+    /**
+     *  Anchor name. See the  name attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Forward link type. See the  rel attribute definition in HTML 4.0.
+     */
+    public String getRel();
+    public void setRel(String rel);
+
+    /**
+     *  Reverse link type. See the  rev attribute definition in HTML 4.0.
+     */
+    public String getRev();
+    public void setRev(String rev);
+
+    /**
+     *  The shape of the active area. The coordinates are given by
+     * <code>coords</code> . See the  shape attribute definition in HTML 4.0.
+     */
+    public String getShape();
+    public void setShape(String shape);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  Frame to render the resource in. See the  target attribute definition
+     * in HTML 4.0.
+     */
+    public String getTarget();
+    public void setTarget(String target);
+
+    /**
+     *  Advisory content type. See the  type attribute definition in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+    /**
+     *  Removes keyboard focus from this element.
+     */
+    public void blur();
+
+    /**
+     *  Gives keyboard focus to this element.
+     */
+    public void focus();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLAppletElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  An embedded Java applet. See the  APPLET element definition in HTML 4.0.
+ * This element is deprecated in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLAppletElement extends HTMLElement {
+    /**
+     *  Aligns this object (vertically or horizontally)  with respect to its
+     * surrounding text. See the  align attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Alternate text for user agents not rendering the normal content of
+     * this element. See the  alt attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getAlt();
+    public void setAlt(String alt);
+
+    /**
+     *  Comma-separated archive list. See the  archive attribute definition in
+     * HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getArchive();
+    public void setArchive(String archive);
+
+    /**
+     *  Applet class file.  See the  code attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getCode();
+    public void setCode(String code);
+
+    /**
+     *  Optional base URI for applet. See the  codebase attribute definition
+     * in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getCodeBase();
+    public void setCodeBase(String codeBase);
+
+    /**
+     *  Override height. See the  height attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getHeight();
+    public void setHeight(String height);
+
+    /**
+     *  Horizontal space to the left and right of this image, applet, or
+     * object. See the  hspace attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getHspace();
+    public void setHspace(String hspace);
+
+    /**
+     *  The name of the applet. See the  name attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Serialized applet file. See the  object attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getObject();
+    public void setObject(String object);
+
+    /**
+     *  Vertical space above and below this image, applet, or object. See the
+     * vspace attribute definition in HTML 4.0. This attribute is deprecated
+     * in HTML 4.0.
+     */
+    public String getVspace();
+    public void setVspace(String vspace);
+
+    /**
+     *  Override width. See the  width attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLAreaElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Client-side image map area definition. See the  AREA element definition in
+ * HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLAreaElement extends HTMLElement {
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  Alternate text for user agents not rendering the normal content of
+     * this element. See the  alt attribute definition in HTML 4.0.
+     */
+    public String getAlt();
+    public void setAlt(String alt);
+
+    /**
+     *  Comma-separated list of lengths, defining an active region geometry.
+     * See also <code>shape</code> for the shape of the region. See the
+     * coords attribute definition in HTML 4.0.
+     */
+    public String getCoords();
+    public void setCoords(String coords);
+
+    /**
+     *  The URI of the linked resource. See the  href attribute definition in
+     * HTML 4.0.
+     */
+    public String getHref();
+    public void setHref(String href);
+
+    /**
+     *  Specifies that this area is inactive, i.e., has no associated action.
+     * See the  nohref attribute definition in HTML 4.0.
+     */
+    public boolean getNoHref();
+    public void setNoHref(boolean noHref);
+
+    /**
+     *  The shape of the active area. The coordinates are given by
+     * <code>coords</code> . See the  shape attribute definition in HTML 4.0.
+     */
+    public String getShape();
+    public void setShape(String shape);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  Frame to render the resource in. See the  target attribute definition
+     * in HTML 4.0.
+     */
+    public String getTarget();
+    public void setTarget(String target);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLBRElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Force a line break. See the  BR element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLBRElement extends HTMLElement {
+    /**
+     *  Control flow of text around floats. See the  clear attribute definition
+     *  in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getClear();
+    public void setClear(String clear);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLBaseElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Document base URI. See the  BASE element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLBaseElement extends HTMLElement {
+    /**
+     *  The base URI. See the  href attribute definition in HTML 4.0.
+     */
+    public String getHref();
+    public void setHref(String href);
+
+    /**
+     *  The default target frame. See the  target attribute definition in HTML
+     * 4.0.
+     */
+    public String getTarget();
+    public void setTarget(String target);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLBaseFontElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Base font. See the  BASEFONT element definition in HTML 4.0. This element
+ * is deprecated in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLBaseFontElement extends HTMLElement {
+    /**
+     *  Font color. See the  color attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getColor();
+    public void setColor(String color);
+
+    /**
+     *  Font face identifier. See the  face attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getFace();
+    public void setFace(String face);
+
+    /**
+     *  Font size. See the  size attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getSize();
+    public void setSize(String size);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLBodyElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,97 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  The HTML document body. This element is always present in the DOM API,
+ * even if the tags are not present in the source document. See the  BODY
+ * element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLBodyElement extends HTMLElement {
+    /**
+     *  Color of active links (after mouse-button down, but before
+     * mouse-button up). See the  alink attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getALink();
+    public void setALink(String aLink);
+
+    /**
+     *  URI of the background texture tile image. See the  background
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public String getBackground();
+    public void setBackground(String background);
+
+    /**
+     *  Document background color. See the  bgcolor attribute definition in
+     * HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getBgColor();
+    public void setBgColor(String bgColor);
+
+    /**
+     *  Color of links that are not active and unvisited. See the  link
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public String getLink();
+    public void setLink(String link);
+
+    /**
+     *  Document text color. See the  text attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getText();
+    public void setText(String text);
+
+    /**
+     *  Color of links that have been visited by the user. See the  vlink
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public String getVLink();
+    public void setVLink(String vLink);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLButtonElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,95 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Push button. See the  BUTTON element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLButtonElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  The control is unavailable in this context. See the  disabled
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  Form control or object name when submitted with a form. See the  name
+     * attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  The type of button. See the  type attribute definition in HTML 4.0.
+     */
+    public String getType();
+
+    /**
+     *  The current form control value. See the  value attribute definition in
+     * HTML 4.0.
+     */
+    public String getValue();
+    public void setValue(String value);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLCollection.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.Node;
+
+/**
+ *  An <code>HTMLCollection</code> is a list of nodes. An individual node may
+ * be accessed by either ordinal index or the node's<code>name</code> or
+ * <code>id</code> attributes.  Note: Collections in the HTML DOM are assumed
+ * to be  live meaning that they are automatically updated when the
+ * underlying document is changed.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLCollection {
+    /**
+     *  This attribute specifies the length or  size of the list.
+     */
+    public int getLength();
+
+    /**
+     *  This method retrieves a node specified by ordinal index. Nodes are
+     * numbered in tree order (depth-first traversal order).
+     * @param index  The index of the node to be fetched. The index origin is
+     *   0.
+     * @return  The <code>Node</code> at the corresponding position upon
+     *   success. A value of <code>null</code> is returned if the index is
+     *   out of range.
+     */
+    public Node item(int index);
+
+    /**
+     *  This method retrieves a <code>Node</code> using a name. It first
+     * searches for a <code>Node</code> with a matching <code>id</code>
+     * attribute. If it doesn't find one, it then searches for a
+     * <code>Node</code> with a matching <code>name</code> attribute, but
+     * only on those elements that are allowed a name attribute.
+     * @param name  The name of the <code>Node</code> to be fetched.
+     * @return  The <code>Node</code> with a <code>name</code> or
+     *   <code>id</code> attribute whose value corresponds to the specified
+     *   string. Upon failure (e.g., no node with this name exists), returns
+     *   <code>null</code> .
+     */
+    public Node namedItem(String name);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLDListElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Definition list. See the  DL element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLDListElement extends HTMLElement {
+    /**
+     *  Reduce spacing between list items. See the  compact attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getCompact();
+    public void setCompact(boolean compact);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLDOMImplementation.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.DOMImplementation;
+
+/**
+ *  The <code>HTMLDOMImplementation</code> interface extends the
+ * <code>DOMImplementation</code> interface with a method for creating an
+ * HTML document instance.
+ * @since DOM Level 2
+ */
+public interface HTMLDOMImplementation extends DOMImplementation {
+    /**
+     *  Creates an <code>HTMLDocument</code> object with the minimal tree made
+     * of the following elements: <code>HTML</code> , <code>HEAD</code> ,
+     * <code>TITLE</code> , and <code>BODY</code> .
+     * @param title  The title of the document to be set as the content of the
+     *   <code>TITLE</code> element, through a child <code>Text</code> node.
+     * @return  A new <code>HTMLDocument</code> object.
+     */
+    public HTMLDocument createHTMLDocument(String title);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLDirectoryElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Directory list. See the  DIR element definition in HTML 4.0. This element
+ * is deprecated in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLDirectoryElement extends HTMLElement {
+    /**
+     *  Reduce spacing between list items. See the  compact attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getCompact();
+    public void setCompact(boolean compact);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLDivElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Generic block container. See the  DIV element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLDivElement extends HTMLElement {
+    /**
+     *  Horizontal text alignment. See the  align attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLDocument.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+
+/**
+ *  An <code>HTMLDocument</code> is the root of the HTML hierarchy and holds
+ * the entire content. Besides providing access to the hierarchy, it also
+ * provides some convenience methods for accessing certain sets of
+ * information from the document.
+ * <p> The following properties have been deprecated in favor of the
+ * corresponding ones for the <code>BODY</code> element: alinkColor background
+ *  bgColor fgColor linkColor vlinkColor In DOM Level 2, the method
+ * <code>getElementById</code> is inherited from the <code>Document</code>
+ * interface where it was moved.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLDocument extends Document {
+    /**
+     *  The title of a document as specified by the <code>TITLE</code> element
+     * in the head of the document.
+     */
+    public String getTitle();
+    public void setTitle(String title);
+
+    /**
+     *  Returns the URI  of the page that linked to this page. The value is an
+     * empty string if the user navigated to the page directly (not through a
+     * link, but, for example, via a bookmark).
+     */
+    public String getReferrer();
+
+    /**
+     *  The domain name of the server that served the document, or
+     * <code>null</code> if the server cannot be identified by a domain name.
+     */
+    public String getDomain();
+
+    /**
+     *  The complete URI  of the document.
+     */
+    public String getURL();
+
+    /**
+     *  The element that contains the content for the document. In documents
+     * with <code>BODY</code> contents, returns the <code>BODY</code>
+     * element. In frameset documents, this returns the outermost
+     * <code>FRAMESET</code> element.
+     */
+    public HTMLElement getBody();
+    public void setBody(HTMLElement body);
+
+    /**
+     *  A collection of all the <code>IMG</code> elements in a document. The
+     * behavior is limited to <code>IMG</code> elements for backwards
+     * compatibility.
+     */
+    public HTMLCollection getImages();
+
+    /**
+     *  A collection of all the <code>OBJECT</code> elements that include
+     * applets and <code>APPLET</code> ( deprecated ) elements in a document.
+     */
+    public HTMLCollection getApplets();
+
+    /**
+     *  A collection of all <code>AREA</code> elements and anchor (
+     * <code>A</code> ) elements in a document with a value for the
+     * <code>href</code> attribute.
+     */
+    public HTMLCollection getLinks();
+
+    /**
+     *  A collection of all the forms of a document.
+     */
+    public HTMLCollection getForms();
+
+    /**
+     *  A collection of all the anchor (<code>A</code> ) elements in a document
+     *  with a value for the <code>name</code> attribute. Note. For reasons
+     * of backwards compatibility, the returned set of anchors only contains
+     * those anchors created with the <code>name</code>  attribute, not those
+     * created with the <code>id</code> attribute.
+     */
+    public HTMLCollection getAnchors();
+
+    /**
+     *  The cookies associated with this document. If there are none, the
+     * value is an empty string. Otherwise, the value is a string: a
+     * semicolon-delimited list of "name, value" pairs for all the cookies
+     * associated with the page. For example,
+     * <code>name=value;expires=date</code> .
+     */
+    public String getCookie();
+    public void setCookie(String cookie);
+
+    /**
+     *  Note. This method and the ones following  allow a user to add to or
+     * replace the structure model of a document using strings of unparsed
+     * HTML. At the time of  writing alternate methods for providing similar
+     * functionality for  both HTML and XML documents were being considered.
+     * The following methods may be deprecated at some point in the future in
+     * favor of a more general-purpose mechanism.
+     * <br> Open a document stream for writing. If a document exists in the
+     * target, this method clears it.
+     */
+    public void open();
+
+    /**
+     *  Closes a document stream opened by <code>open()</code> and forces
+     * rendering.
+     */
+    public void close();
+
+    /**
+     *  Write a string of text to a document stream opened by
+     * <code>open()</code> . The text is parsed into the document's structure
+     * model.
+     * @param text  The string to be parsed into some structure in the
+     *   document structure model.
+     */
+    public void write(String text);
+
+    /**
+     *  Write a string of text followed by a newline character to a document
+     * stream opened by <code>open()</code> . The text is parsed into the
+     * document's structure model.
+     * @param text  The string to be parsed into some structure in the
+     *   document structure model.
+     */
+    public void writeln(String text);
+
+    /**
+     *  Returns the (possibly empty) collection of elements whose
+     * <code>name</code> value is given by <code>elementName</code> .
+     * @param elementName  The <code>name</code> attribute value for an
+     *   element.
+     * @return  The matching elements.
+     */
+    public NodeList getElementsByName(String elementName);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.Element;
+
+/**
+ *  All HTML element interfaces derive from this class. Elements that only
+ * expose the HTML core attributes are represented by the base
+ * <code>HTMLElement</code> interface. These elements are as follows:  HEAD
+ * special: SUB, SUP, SPAN, BDO font: TT, I, B, U, S, STRIKE, BIG, SMALL
+ * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBR list:
+ * DD, DT NOFRAMES, NOSCRIPT ADDRESS, CENTER The <code>style</code> attribute
+ * of an HTML element is accessible through the
+ * <code>ElementCSSInlineStyle</code> interface which is defined in the  .
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLElement extends Element {
+    /**
+     *  The element's identifier. See the  id attribute definition in HTML 4.0.
+     */
+    public String getId();
+    public void setId(String id);
+
+    /**
+     *  The element's advisory title. See the  title attribute definition in
+     * HTML 4.0.
+     */
+    public String getTitle();
+    public void setTitle(String title);
+
+    /**
+     *  Language code defined in RFC 1766. See the  lang attribute definition
+     * in HTML 4.0.
+     */
+    public String getLang();
+    public void setLang(String lang);
+
+    /**
+     *  Specifies the base direction of directionally neutral text and the
+     * directionality of tables. See the  dir attribute definition in HTML
+     * 4.0.
+     */
+    public String getDir();
+    public void setDir(String dir);
+
+    /**
+     *  The class attribute of the element. This attribute has been renamed
+     * due to conflicts with the "class" keyword exposed by many languages.
+     * See the  class attribute definition in HTML 4.0.
+     */
+    public String getClassName();
+    public void setClassName(String className);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLFieldSetElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Organizes form controls into logical groups. See the   FIELDSET  element
+ * definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLFieldSetElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLFontElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Local change to font. See the  FONT element definition in HTML 4.0. This
+ * element is deprecated in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLFontElement extends HTMLElement {
+    /**
+     *  Font color. See the  color attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getColor();
+    public void setColor(String color);
+
+    /**
+     *  Font face identifier. See the  face attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getFace();
+    public void setFace(String face);
+
+    /**
+     *  Font size. See the  size attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getSize();
+    public void setSize(String size);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLFormElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  The <code>FORM</code> element encompasses behavior similar to a collection
+ * and an element. It provides direct access to the contained input elements
+ * as well as the attributes of the form element. See the  FORM element
+ * definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLFormElement extends HTMLElement {
+    /**
+     *  Returns a collection of all control elements in the form.
+     */
+    public HTMLCollection getElements();
+
+    /**
+     *  The number of form controls in the form.
+     */
+    public int getLength();
+
+    /**
+     *  Names the form.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  List of character sets supported by the server. See the
+     * accept-charset attribute definition in HTML 4.0.
+     */
+    public String getAcceptCharset();
+    public void setAcceptCharset(String acceptCharset);
+
+    /**
+     *  Server-side form handler. See the  action attribute definition in HTML
+     * 4.0.
+     */
+    public String getAction();
+    public void setAction(String action);
+
+    /**
+     *  The content type of the submitted form,  generally
+     * "application/x-www-form-urlencoded".  See the  enctype attribute
+     * definition in HTML 4.0.
+     */
+    public String getEnctype();
+    public void setEnctype(String enctype);
+
+    /**
+     *  HTTP method used to submit form. See the  method attribute definition
+     * in HTML 4.0.
+     */
+    public String getMethod();
+    public void setMethod(String method);
+
+    /**
+     *  Frame to render the resource in. See the  target attribute definition
+     * in HTML 4.0.
+     */
+    public String getTarget();
+    public void setTarget(String target);
+
+    /**
+     *  Submits the form. It performs the same action as a  submit button.
+     */
+    public void submit();
+
+    /**
+     *  Restores a form element's default values. It performs  the same action
+     * as a reset button.
+     */
+    public void reset();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLFrameElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.Document;
+
+/**
+ *  Create a frame. See the  FRAME element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLFrameElement extends HTMLElement {
+    /**
+     *  Request frame borders. See the  frameborder attribute definition in
+     * HTML 4.0.
+     */
+    public String getFrameBorder();
+    public void setFrameBorder(String frameBorder);
+
+    /**
+     *  URI designating a long description of this image or frame. See the
+     * longdesc attribute definition in HTML 4.0.
+     */
+    public String getLongDesc();
+    public void setLongDesc(String longDesc);
+
+    /**
+     *  Frame margin height, in pixels. See the  marginheight attribute
+     * definition in HTML 4.0.
+     */
+    public String getMarginHeight();
+    public void setMarginHeight(String marginHeight);
+
+    /**
+     *  Frame margin width, in pixels. See the  marginwidth attribute
+     * definition in HTML 4.0.
+     */
+    public String getMarginWidth();
+    public void setMarginWidth(String marginWidth);
+
+    /**
+     *  The frame name (object of the <code>target</code> attribute). See the
+     * name attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  When true, forbid user from resizing frame. See the  noresize
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getNoResize();
+    public void setNoResize(boolean noResize);
+
+    /**
+     *  Specify whether or not the frame should have scrollbars. See the
+     * scrolling attribute definition in HTML 4.0.
+     */
+    public String getScrolling();
+    public void setScrolling(String scrolling);
+
+    /**
+     *  A URI designating the initial frame contents. See the  src attribute
+     * definition in HTML 4.0.
+     */
+    public String getSrc();
+    public void setSrc(String src);
+
+    /**
+     *  The document this frame contains, if there is any and it is available,
+     * or <code>null</code> otherwise.
+     * @since DOM Level 2
+     */
+    public Document getContentDocument();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLFrameSetElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Create a grid of frames. See the  FRAMESET element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLFrameSetElement extends HTMLElement {
+    /**
+     *  The number of columns of frames in the frameset. See the  cols
+     * attribute definition in HTML 4.0.
+     */
+    public String getCols();
+    public void setCols(String cols);
+
+    /**
+     *  The number of rows of frames in the frameset. See the  rows attribute
+     * definition in HTML 4.0.
+     */
+    public String getRows();
+    public void setRows(String rows);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLHRElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,78 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Create a horizontal rule. See the  HR element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLHRElement extends HTMLElement {
+    /**
+     *  Align the rule on the page. See the  align attribute definition in
+     * HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Indicates to the user agent that there should be no shading in the
+     * rendering of this element. See the  noshade attribute definition in
+     * HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getNoShade();
+    public void setNoShade(boolean noShade);
+
+    /**
+     *  The height of the rule. See the  size attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getSize();
+    public void setSize(String size);
+
+    /**
+     *  The width of the rule. See the  width attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLHeadElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Document head information. See the  HEAD element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLHeadElement extends HTMLElement {
+    /**
+     *  URI designating a metadata profile. See the  profile attribute
+     * definition in HTML 4.0.
+     */
+    public String getProfile();
+    public void setProfile(String profile);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLHeadingElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  For the <code>H1</code> to <code>H6</code> elements. See the  H1 element
+ * definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLHeadingElement extends HTMLElement {
+    /**
+     *  Horizontal text alignment. See the  align attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLHtmlElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Root of an HTML document. See the  HTML element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLHtmlElement extends HTMLElement {
+    /**
+     *  Version information about the document's DTD. See the  version
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public String getVersion();
+    public void setVersion(String version);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLIFrameElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,127 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.Document;
+
+/**
+ *  Inline subwindows. See the  IFRAME element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLIFrameElement extends HTMLElement {
+    /**
+     *  Aligns this object (vertically or horizontally)  with respect to its
+     * surrounding text. See the  align attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Request frame borders. See the  frameborder attribute definition in
+     * HTML 4.0.
+     */
+    public String getFrameBorder();
+    public void setFrameBorder(String frameBorder);
+
+    /**
+     *  Frame height. See the  height attribute definition in HTML 4.0.
+     */
+    public String getHeight();
+    public void setHeight(String height);
+
+    /**
+     *  URI designating a long description of this image or frame. See the
+     * longdesc attribute definition in HTML 4.0.
+     */
+    public String getLongDesc();
+    public void setLongDesc(String longDesc);
+
+    /**
+     *  Frame margin height, in pixels. See the  marginheight attribute
+     * definition in HTML 4.0.
+     */
+    public String getMarginHeight();
+    public void setMarginHeight(String marginHeight);
+
+    /**
+     *  Frame margin width, in pixels. See the  marginwidth attribute
+     * definition in HTML 4.0.
+     */
+    public String getMarginWidth();
+    public void setMarginWidth(String marginWidth);
+
+    /**
+     *  The frame name (object of the <code>target</code> attribute). See the
+     * name attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Specify whether or not the frame should have scrollbars. See the
+     * scrolling attribute definition in HTML 4.0.
+     */
+    public String getScrolling();
+    public void setScrolling(String scrolling);
+
+    /**
+     *  A URI designating the initial frame contents. See the  src attribute
+     * definition in HTML 4.0.
+     */
+    public String getSrc();
+    public void setSrc(String src);
+
+    /**
+     *  Frame width. See the  width attribute definition in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+    /**
+     *  The document this frame contains, if there is any and it is available,
+     * or <code>null</code> otherwise.
+     * @since DOM Level 2
+     */
+    public Document getContentDocument();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLImageElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,138 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Embedded image. See the  IMG element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLImageElement extends HTMLElement {
+    /**
+     *  URI designating the source of this image, for low-resolution output.
+     */
+    public String getLowSrc();
+    public void setLowSrc(String lowSrc);
+
+    /**
+     *  The name of the element (for backwards compatibility).
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Aligns this object (vertically or horizontally)  with respect to its
+     * surrounding text. See the  align attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Alternate text for user agents not rendering the normal content of
+     * this element. See the  alt attribute definition in HTML 4.0.
+     */
+    public String getAlt();
+    public void setAlt(String alt);
+
+    /**
+     *  Width of border around image. See the  border attribute definition in
+     * HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getBorder();
+    public void setBorder(String border);
+
+    /**
+     *  Override height. See the  height attribute definition in HTML 4.0.
+     */
+    public String getHeight();
+    public void setHeight(String height);
+
+    /**
+     *  Horizontal space to the left and right of this image. See the  hspace
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public String getHspace();
+    public void setHspace(String hspace);
+
+    /**
+     *  Use server-side image map. See the  ismap attribute definition in HTML
+     * 4.0.
+     */
+    public boolean getIsMap();
+    public void setIsMap(boolean isMap);
+
+    /**
+     *  URI designating a long description of this image or frame. See the
+     * longdesc attribute definition in HTML 4.0.
+     */
+    public String getLongDesc();
+    public void setLongDesc(String longDesc);
+
+    /**
+     *  URI designating the source of this image. See the  src attribute
+     * definition in HTML 4.0.
+     */
+    public String getSrc();
+    public void setSrc(String src);
+
+    /**
+     *  Use client-side image map. See the  usemap attribute definition in
+     * HTML 4.0.
+     */
+    public String getUseMap();
+    public void setUseMap(String useMap);
+
+    /**
+     *  Vertical space above and below this image. See the  vspace attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getVspace();
+    public void setVspace(String vspace);
+
+    /**
+     *  Override width. See the  width attribute definition in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLInputElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,225 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Form control.  Note. Depending upon the environment in which the page is
+ * being viewed, the value property may be read-only for the file upload
+ * input type. For the "password" input type, the actual value returned may
+ * be masked to prevent unauthorized use. See the  INPUT element definition
+ * in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLInputElement extends HTMLElement {
+    /**
+     *  When the <code>type</code> attribute of the element has the value
+     * "Text", "File" or "Password", this represents the HTML value attribute
+     * of the element. The value of this attribute does not change if the
+     * contents of the corresponding form control, in an interactive user
+     * agent, changes. Changing this attribute, however, resets the contents
+     * of the form control. See the  value attribute definition in HTML 4.0.
+     */
+    public String getDefaultValue();
+    public void setDefaultValue(String defaultValue);
+
+    /**
+     *  When <code>type</code> has the value "Radio" or "Checkbox", this
+     * represents the HTML checked attribute of the element. The value of
+     * this attribute does not change if the state of the corresponding form
+     * control, in an interactive user agent, changes. Changes to this
+     * attribute, however, resets the state of the form control. See the
+     * checked attribute definition in HTML 4.0.
+     */
+    public boolean getDefaultChecked();
+    public void setDefaultChecked(boolean defaultChecked);
+
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  A comma-separated list of content types that a server processing this
+     * form will handle correctly. See the  accept attribute definition in
+     * HTML 4.0.
+     */
+    public String getAccept();
+    public void setAccept(String accept);
+
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  Aligns this object (vertically or horizontally)  with respect to its
+     * surrounding text. See the  align attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Alternate text for user agents not rendering the normal content of
+     * this element. See the  alt attribute definition in HTML 4.0.
+     */
+    public String getAlt();
+    public void setAlt(String alt);
+
+    /**
+     *  When the <code>type</code> attribute of the element has the value
+     * "Radio" or "Checkbox", this represents the current state of the form
+     * control, in an interactive user agent. Changes to this attribute
+     * change the state of the form control, but do not change the value of
+     * the HTML value attribute of the element.
+     */
+    public boolean getChecked();
+    public void setChecked(boolean checked);
+
+    /**
+     *  The control is unavailable in this context. See the  disabled
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  Maximum number of characters for text fields, when <code>type</code>
+     * has the value "Text" or "Password". See the  maxlength attribute
+     * definition in HTML 4.0.
+     */
+    public int getMaxLength();
+    public void setMaxLength(int maxLength);
+
+    /**
+     *  Form control or object name when submitted with a form. See the  name
+     * attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  This control is read-only. Relevant only when <code>type</code> has
+     * the value "Text" or "Password". See the  readonly attribute definition
+     * in HTML 4.0.
+     */
+    public boolean getReadOnly();
+    public void setReadOnly(boolean readOnly);
+
+    /**
+     *  Size information. The precise meaning is specific to each type of
+     * field.  See the  size attribute definition in HTML 4.0.
+     */
+    public String getSize();
+    public void setSize(String size);
+
+    /**
+     *  When the <code>type</code> attribute has the value "Image", this
+     * attribute specifies the location of the image to be used to decorate
+     * the graphical submit button. See the  src attribute definition in HTML
+     * 4.0.
+     */
+    public String getSrc();
+    public void setSrc(String src);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  The type of control created. See the  type attribute definition in
+     * HTML 4.0.
+     */
+    public String getType();
+
+    /**
+     *  Use client-side image map. See the  usemap attribute definition in
+     * HTML 4.0.
+     */
+    public String getUseMap();
+    public void setUseMap(String useMap);
+
+    /**
+     *  When the <code>type</code> attribute of the element has the value
+     * "Text", "File" or "Password", this represents the current contents of
+     * the corresponding form control, in an interactive user agent. Changing
+     * this attribute changes the contents of the form control, but does not
+     * change the value of the HTML value attribute of the element. When the
+     * <code>type</code> attribute of the element has the value "Button",
+     * "Hidden", "Submit", "Reset", "Image", "Checkbox" or "Radio", this
+     * represents the HTML value attribute of the element. See the  value
+     * attribute definition in HTML 4.0.
+     */
+    public String getValue();
+    public void setValue(String value);
+
+    /**
+     *  Removes keyboard focus from this element.
+     */
+    public void blur();
+
+    /**
+     *  Gives keyboard focus to this element.
+     */
+    public void focus();
+
+    /**
+     *  Select the contents of the text area. For <code>INPUT</code> elements
+     * whose <code>type</code> attribute has one of the following values:
+     * "Text", "File", or "Password".
+     */
+    public void select();
+
+    /**
+     *  Simulate a mouse-click. For <code>INPUT</code> elements whose
+     * <code>type</code> attribute has one of the following values: "Button",
+     * "Checkbox", "Radio", "Reset", or "Submit".
+     */
+    public void click();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLIsIndexElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  This element is used for single-line text input. See the  ISINDEX element
+ * definition in HTML 4.0. This element is deprecated in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLIsIndexElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  The prompt message. See the  prompt attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getPrompt();
+    public void setPrompt(String prompt);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLLIElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  List item. See the  LI element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLLIElement extends HTMLElement {
+    /**
+     *  List item bullet style. See the  type attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+    /**
+     *  Reset sequence number when used in <code>OL</code> . See the  value
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public int getValue();
+    public void setValue(int value);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLLabelElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,70 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Form field label text. See the  LABEL element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLLabelElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  This attribute links this label with another form control by
+     * <code>id</code> attribute. See the  for attribute definition in HTML
+     * 4.0.
+     */
+    public String getHtmlFor();
+    public void setHtmlFor(String htmlFor);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLLegendElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Provides a caption for a <code>FIELDSET</code> grouping.  See the  LEGEND
+ * element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLLegendElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  Text alignment relative to <code>FIELDSET</code> . See the  align
+     * attribute definition in HTML 4.0. This attribute is deprecated in HTML
+     * 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLLinkElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,112 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  The <code>LINK</code> element specifies a link to an external resource,
+ * and defines this document's relationship to that resource (or vice versa).
+ *  See the  LINK element definition in HTML 4.0  (see also the
+ * <code>LinkStyle</code> interface in the  module).
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLLinkElement extends HTMLElement {
+    /**
+     *  Enables/disables the link. This is currently only used for style sheet
+     * links, and may be used to activate or deactivate style sheets.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  The character encoding of the resource being linked to. See the
+     * charset attribute definition in HTML 4.0.
+     */
+    public String getCharset();
+    public void setCharset(String charset);
+
+    /**
+     *  The URI of the linked resource. See the  href attribute definition in
+     * HTML 4.0.
+     */
+    public String getHref();
+    public void setHref(String href);
+
+    /**
+     *  Language code of the linked resource. See the  hreflang attribute
+     * definition in HTML 4.0.
+     */
+    public String getHreflang();
+    public void setHreflang(String hreflang);
+
+    /**
+     *  Designed for use with one or more target media. See the  media
+     * attribute definition in HTML 4.0.
+     */
+    public String getMedia();
+    public void setMedia(String media);
+
+    /**
+     *  Forward link type. See the  rel attribute definition in HTML 4.0.
+     */
+    public String getRel();
+    public void setRel(String rel);
+
+    /**
+     *  Reverse link type. See the  rev attribute definition in HTML 4.0.
+     */
+    public String getRev();
+    public void setRev(String rev);
+
+    /**
+     *  Frame to render the resource in. See the  target attribute definition
+     * in HTML 4.0.
+     */
+    public String getTarget();
+    public void setTarget(String target);
+
+    /**
+     *  Advisory content type. See the  type attribute definition in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLMapElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Client-side image map. See the  MAP element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLMapElement extends HTMLElement {
+    /**
+     *  The list of areas defined for the image map.
+     */
+    public HTMLCollection getAreas();
+
+    /**
+     *  Names the map (for use with <code>usemap</code> ). See the  name
+     * attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLMenuElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Menu list. See the  MENU element definition in HTML 4.0. This element is
+ * deprecated in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLMenuElement extends HTMLElement {
+    /**
+     *  Reduce spacing between list items. See the  compact attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getCompact();
+    public void setCompact(boolean compact);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLMetaElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,77 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  This contains generic meta-information about the document. See the  META
+ * element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLMetaElement extends HTMLElement {
+    /**
+     *  Associated information. See the  content attribute definition in HTML
+     * 4.0.
+     */
+    public String getContent();
+    public void setContent(String content);
+
+    /**
+     *  HTTP response header name. See the  http-equiv attribute definition in
+     * HTML 4.0.
+     */
+    public String getHttpEquiv();
+    public void setHttpEquiv(String httpEquiv);
+
+    /**
+     *  Meta information name. See the  name attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Select form of content. See the  scheme attribute definition in HTML
+     * 4.0.
+     */
+    public String getScheme();
+    public void setScheme(String scheme);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLModElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Notice of modification to part of a document. See the   INS  and  DEL
+ * element definitions in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLModElement extends HTMLElement {
+    /**
+     *  A URI designating a document that describes the reason for the change.
+     * See the  cite attribute definition in HTML 4.0.
+     */
+    public String getCite();
+    public void setCite(String cite);
+
+    /**
+     *  The date and time of the change. See the  datetime attribute definition
+     *  in HTML 4.0.
+     */
+    public String getDateTime();
+    public void setDateTime(String dateTime);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLOListElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,70 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Ordered list. See the  OL element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLOListElement extends HTMLElement {
+    /**
+     *  Reduce spacing between list items. See the  compact attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getCompact();
+    public void setCompact(boolean compact);
+
+    /**
+     *  Starting sequence number. See the  start attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public int getStart();
+    public void setStart(int start);
+
+    /**
+     *  Numbering style. See the  type attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLObjectElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,188 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.Document;
+
+/**
+ *  Generic embedded object.  Note. In principle, all properties on the object
+ * element are read-write but in some environments some properties may be
+ * read-only once the underlying object is instantiated. See the  OBJECT
+ * element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLObjectElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  Applet class file. See the <code>code</code> attribute for
+     * HTMLAppletElement.
+     */
+    public String getCode();
+    public void setCode(String code);
+
+    /**
+     *  Aligns this object (vertically or horizontally)  with respect to its
+     * surrounding text. See the  align attribute definition in HTML 4.0.
+     * This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Space-separated list of archives. See the  archive attribute definition
+     *  in HTML 4.0.
+     */
+    public String getArchive();
+    public void setArchive(String archive);
+
+    /**
+     *  Width of border around the object. See the  border attribute definition
+     *  in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getBorder();
+    public void setBorder(String border);
+
+    /**
+     *  Base URI for <code>classid</code> , <code>data</code> , and
+     * <code>archive</code> attributes. See the  codebase attribute definition
+     *  in HTML 4.0.
+     */
+    public String getCodeBase();
+    public void setCodeBase(String codeBase);
+
+    /**
+     *  Content type for data downloaded via <code>classid</code> attribute.
+     * See the  codetype attribute definition in HTML 4.0.
+     */
+    public String getCodeType();
+    public void setCodeType(String codeType);
+
+    /**
+     *  A URI specifying the location of the object's data.  See the  data
+     * attribute definition in HTML 4.0.
+     */
+    public String getData();
+    public void setData(String data);
+
+    /**
+     *  Declare (for future reference), but do not instantiate, this object.
+     * See the  declare attribute definition in HTML 4.0.
+     */
+    public boolean getDeclare();
+    public void setDeclare(boolean declare);
+
+    /**
+     *  Override height. See the  height attribute definition in HTML 4.0.
+     */
+    public String getHeight();
+    public void setHeight(String height);
+
+    /**
+     *  Horizontal space to the left and right of this image, applet, or
+     * object. See the  hspace attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getHspace();
+    public void setHspace(String hspace);
+
+    /**
+     *  Form control or object name when submitted with a form. See the  name
+     * attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Message to render while loading the object. See the  standby attribute
+     * definition in HTML 4.0.
+     */
+    public String getStandby();
+    public void setStandby(String standby);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  Content type for data downloaded via <code>data</code> attribute. See
+     * the  type attribute definition in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+    /**
+     *  Use client-side image map. See the  usemap attribute definition in
+     * HTML 4.0.
+     */
+    public String getUseMap();
+    public void setUseMap(String useMap);
+
+    /**
+     *  Vertical space above and below this image, applet, or object. See the
+     * vspace attribute definition in HTML 4.0. This attribute is deprecated
+     * in HTML 4.0.
+     */
+    public String getVspace();
+    public void setVspace(String vspace);
+
+    /**
+     *  Override width. See the  width attribute definition in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+    /**
+     *  The document this object contains, if there is any and it is
+     * available, or <code>null</code> otherwise.
+     * @since DOM Level 2
+     */
+    public Document getContentDocument();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLOptGroupElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Group options together in logical subdivisions. See the  OPTGROUP element
+ * definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLOptGroupElement extends HTMLElement {
+    /**
+     *  The control is unavailable in this context. See the  disabled
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  Assigns a label to this option group. See the  label attribute
+     * definition in HTML 4.0.
+     */
+    public String getLabel();
+    public void setLabel(String label);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLOptionElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  A selectable choice. See the  OPTION element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLOptionElement extends HTMLElement {
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  Represents the value of the HTML selected attribute. The value of this
+     * attribute does not change if the state of the corresponding form
+     * control, in an interactive user agent, changes. Changing
+     * <code>defaultSelected</code> , however, resets the state of the form
+     * control. See the  selected attribute definition in HTML 4.0.
+     */
+    public boolean getDefaultSelected();
+    public void setDefaultSelected(boolean defaultSelected);
+
+    /**
+     *  The text contained within the option element.
+     */
+    public String getText();
+
+    /**
+     *  The index of this <code>OPTION</code> in its parent <code>SELECT</code>
+     *  , starting from 0.
+     */
+    public int getIndex();
+
+    /**
+     *  The control is unavailable in this context. See the  disabled
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  Option label for use in hierarchical menus. See the  label attribute
+     * definition in HTML 4.0.
+     */
+    public String getLabel();
+    public void setLabel(String label);
+
+    /**
+     *  Represents the current state of the corresponding form control, in an
+     * interactive user agent. Changing this attribute changes the state of
+     * the form control, but does not change the value of the HTML selected
+     * attribute of the element.
+     */
+    public boolean getSelected();
+    public void setSelected(boolean selected);
+
+    /**
+     *  The current form control value. See the  value attribute definition in
+     * HTML 4.0.
+     */
+    public String getValue();
+    public void setValue(String value);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLParagraphElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Paragraphs. See the  P element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLParagraphElement extends HTMLElement {
+    /**
+     *  Horizontal text alignment. See the  align attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLParamElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,79 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Parameters fed to the <code>OBJECT</code> element. See the  PARAM element
+ * definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLParamElement extends HTMLElement {
+    /**
+     *  The name of a run-time parameter. See the  name attribute definition
+     * in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Content type for the <code>value</code> attribute when
+     * <code>valuetype</code> has the value "ref". See the  type attribute
+     * definition in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+    /**
+     *  The value of a run-time parameter. See the  value attribute definition
+     * in HTML 4.0.
+     */
+    public String getValue();
+    public void setValue(String value);
+
+    /**
+     *  Information about the meaning of the <code>value</code> attribute
+     * value. See the  valuetype attribute definition in HTML 4.0.
+     */
+    public String getValueType();
+    public void setValueType(String valueType);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLPreElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Preformatted text. See the  PRE element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLPreElement extends HTMLElement {
+    /**
+     *  Fixed width for content. See the  width attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public int getWidth();
+    public void setWidth(int width);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLQuoteElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  For the <code>Q</code> and <code>BLOCKQUOTE</code> elements. See the  Q
+ * element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLQuoteElement extends HTMLElement {
+    /**
+     *  A URI designating a source document or message. See the  cite
+     * attribute definition in HTML 4.0.
+     */
+    public String getCite();
+    public void setCite(String cite);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLScriptElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,95 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Script statements. See the  SCRIPT element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLScriptElement extends HTMLElement {
+    /**
+     *  The script content of the element.
+     */
+    public String getText();
+    public void setText(String text);
+
+    /**
+     *  Reserved for future use.
+     */
+    public String getHtmlFor();
+    public void setHtmlFor(String htmlFor);
+
+    /**
+     *  Reserved for future use.
+     */
+    public String getEvent();
+    public void setEvent(String event);
+
+    /**
+     *  The character encoding of the linked resource. See the  charset
+     * attribute definition in HTML 4.0.
+     */
+    public String getCharset();
+    public void setCharset(String charset);
+
+    /**
+     *  Indicates that the user agent can defer processing of the script.  See
+     * the  defer attribute definition in HTML 4.0.
+     */
+    public boolean getDefer();
+    public void setDefer(boolean defer);
+
+    /**
+     *  URI designating an external script. See the  src attribute definition
+     * in HTML 4.0.
+     */
+    public String getSrc();
+    public void setSrc(String src);
+
+    /**
+     *  The content type of the script language. See the  type attribute
+     * definition in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLSelectElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,162 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The select element allows the selection of an option. The contained
+ * options can be directly accessed through the select element as a
+ * collection. See the  SELECT element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLSelectElement extends HTMLElement {
+    /**
+     *  The type of this form control. This is the string "select-multiple"
+     * when the multiple attribute is <code>true</code> and the string
+     * "select-one" when <code>false</code> .
+     */
+    public String getType();
+
+    /**
+     *  The ordinal index of the selected option, starting from 0. The value
+     * -1 is returned if no element is selected. If multiple options are
+     * selected, the index of the first selected option is returned.
+     */
+    public int getSelectedIndex();
+    public void setSelectedIndex(int selectedIndex);
+
+    /**
+     *  The current form control value.
+     */
+    public String getValue();
+    public void setValue(String value);
+
+    /**
+     *  The number of options in this <code>SELECT</code> .
+     */
+    public int getLength();
+
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  The collection of <code>OPTION</code> elements contained by this
+     * element.
+     */
+    public HTMLCollection getOptions();
+
+    /**
+     *  The control is unavailable in this context. See the  disabled
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  If true, multiple <code>OPTION</code> elements may  be selected in
+     * this <code>SELECT</code> . See the  multiple attribute definition in
+     * HTML 4.0.
+     */
+    public boolean getMultiple();
+    public void setMultiple(boolean multiple);
+
+    /**
+     *  Form control or object name when submitted with a form. See the  name
+     * attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  Number of visible rows. See the  size attribute definition in HTML 4.0.
+     */
+    public int getSize();
+    public void setSize(int size);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  Add a new element to the collection of <code>OPTION</code> elements
+     * for this <code>SELECT</code> . This method is the equivalent of the
+     * <code>appendChild</code> method of the <code>Node</code> interface if
+     * the <code>before</code> parameter is <code>null</code> . It is
+     * equivalent to the <code>insertBefore</code> method on the parent of
+     * <code>before</code> in all other cases.
+     * @param element  The element to add.
+     * @param before  The element to insert before, or <code>null</code> for
+     *   the tail of the list.
+     * @exception DOMException
+     *    NOT_FOUND_ERR: Raised if <code>before</code> is not a descendant of
+     *   the <code>SELECT</code> element.
+     */
+    public void add(HTMLElement element,
+                    HTMLElement before)
+                    throws DOMException;
+
+    /**
+     *  Remove an element from the collection of <code>OPTION</code> elements
+     * for this <code>SELECT</code> . Does nothing if no element has the given
+     *  index.
+     * @param index  The index of the item to remove, starting from 0.
+     */
+    public void remove(int index);
+
+    /**
+     *  Removes keyboard focus from this element.
+     */
+    public void blur();
+
+    /**
+     *  Gives keyboard focus to this element.
+     */
+    public void focus();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLStyleElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,70 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Style information. See the  STYLE element definition in HTML 4.0, the
+ * module and the <code>LinkStyle</code> interface in the  module.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLStyleElement extends HTMLElement {
+    /**
+     *  Enables/disables the style sheet.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  Designed for use with one or more target media. See the  media
+     * attribute definition in HTML 4.0.
+     */
+    public String getMedia();
+    public void setMedia(String media);
+
+    /**
+     *  The content type pf the style sheet language. See the  type attribute
+     * definition in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTableCaptionElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Table caption See the  CAPTION element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTableCaptionElement extends HTMLElement {
+    /**
+     *  Caption alignment with respect to the table. See the  align attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTableCellElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,154 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  The object used to represent the <code>TH</code> and <code>TD</code>
+ * elements. See the  TD element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTableCellElement extends HTMLElement {
+    /**
+     *  The index of this cell in the row, starting from 0. This index is in
+     * document tree order and not display order.
+     */
+    public int getCellIndex();
+
+    /**
+     *  Abbreviation for header cells. See the  abbr attribute definition in
+     * HTML 4.0.
+     */
+    public String getAbbr();
+    public void setAbbr(String abbr);
+
+    /**
+     *  Horizontal alignment of data in cell. See the  align attribute
+     * definition in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Names group of related headers. See the  axis attribute definition in
+     * HTML 4.0.
+     */
+    public String getAxis();
+    public void setAxis(String axis);
+
+    /**
+     *  Cell background color. See the  bgcolor attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getBgColor();
+    public void setBgColor(String bgColor);
+
+    /**
+     *  Alignment character for cells in a column. See the  char attribute
+     * definition in HTML 4.0.
+     */
+    public String getCh();
+    public void setCh(String ch);
+
+    /**
+     *  Offset of alignment character. See the  charoff attribute definition
+     * in HTML 4.0.
+     */
+    public String getChOff();
+    public void setChOff(String chOff);
+
+    /**
+     *  Number of columns spanned by cell. See the  colspan attribute
+     * definition in HTML 4.0.
+     */
+    public int getColSpan();
+    public void setColSpan(int colSpan);
+
+    /**
+     *  List of <code>id</code> attribute values for header cells. See the
+     * headers attribute definition in HTML 4.0.
+     */
+    public String getHeaders();
+    public void setHeaders(String headers);
+
+    /**
+     *  Cell height. See the  height attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getHeight();
+    public void setHeight(String height);
+
+    /**
+     *  Suppress word wrapping. See the  nowrap attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getNoWrap();
+    public void setNoWrap(boolean noWrap);
+
+    /**
+     *  Number of rows spanned by cell. See the  rowspan attribute definition
+     * in HTML 4.0.
+     */
+    public int getRowSpan();
+    public void setRowSpan(int rowSpan);
+
+    /**
+     *  Scope covered by header cells. See the  scope attribute definition in
+     * HTML 4.0.
+     */
+    public String getScope();
+    public void setScope(String scope);
+
+    /**
+     *  Vertical alignment of data in cell. See the  valign attribute
+     * definition in HTML 4.0.
+     */
+    public String getVAlign();
+    public void setVAlign(String vAlign);
+
+    /**
+     *  Cell width. See the  width attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTableColElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Regroups the <code>COL</code> and <code>COLGROUP</code> elements. See the
+ * COL element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTableColElement extends HTMLElement {
+    /**
+     *  Horizontal alignment of cell data in column. See the  align attribute
+     * definition in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Alignment character for cells in a column. See the  char attribute
+     * definition in HTML 4.0.
+     */
+    public String getCh();
+    public void setCh(String ch);
+
+    /**
+     *  Offset of alignment character. See the  charoff attribute definition
+     * in HTML 4.0.
+     */
+    public String getChOff();
+    public void setChOff(String chOff);
+
+    /**
+     *  Indicates the number of columns in a group or affected by a grouping.
+     * See the  span attribute definition in HTML 4.0.
+     */
+    public int getSpan();
+    public void setSpan(int span);
+
+    /**
+     *  Vertical alignment of cell data in column. See the  valign attribute
+     * definition in HTML 4.0.
+     */
+    public String getVAlign();
+    public void setVAlign(String vAlign);
+
+    /**
+     *  Default column width. See the  width attribute definition in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTableElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,217 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The create* and delete* methods on the table allow authors to construct
+ * and modify tables. HTML 4.0 specifies that only one of each of the
+ * <code>CAPTION</code> , <code>THEAD</code> , and <code>TFOOT</code>
+ * elements may exist in a table. Therefore, if one exists, and the
+ * createTHead() or createTFoot() method is called, the method returns the
+ * existing THead or TFoot element. See the  TABLE element definition in HTML
+ * 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTableElement extends HTMLElement {
+    /**
+     *  Returns the table's <code>CAPTION</code> , or void if none exists.
+     */
+    public HTMLTableCaptionElement getCaption();
+    public void setCaption(HTMLTableCaptionElement caption);
+
+    /**
+     *  Returns the table's <code>THEAD</code> , or <code>null</code> if none
+     * exists.
+     */
+    public HTMLTableSectionElement getTHead();
+    public void setTHead(HTMLTableSectionElement tHead);
+
+    /**
+     *  Returns the table's <code>TFOOT</code> , or <code>null</code> if none
+     * exists.
+     */
+    public HTMLTableSectionElement getTFoot();
+    public void setTFoot(HTMLTableSectionElement tFoot);
+
+    /**
+     *  Returns a collection of all the rows in the table, including all in
+     * <code>THEAD</code> , <code>TFOOT</code> , all <code>TBODY</code>
+     * elements.
+     */
+    public HTMLCollection getRows();
+
+    /**
+     *  Returns a collection of the defined table bodies.
+     */
+    public HTMLCollection getTBodies();
+
+    /**
+     *  Specifies the table's position with respect to the rest of the
+     * document. See the  align attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Cell background color. See the  bgcolor attribute definition in HTML
+     * 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getBgColor();
+    public void setBgColor(String bgColor);
+
+    /**
+     *  The width of the border around the table. See the  border attribute
+     * definition in HTML 4.0.
+     */
+    public String getBorder();
+    public void setBorder(String border);
+
+    /**
+     *  Specifies the horizontal and vertical space between cell content and
+     * cell borders. See the  cellpadding attribute definition in HTML 4.0.
+     */
+    public String getCellPadding();
+    public void setCellPadding(String cellPadding);
+
+    /**
+     *  Specifies the horizontal and vertical separation between cells. See
+     * the  cellspacing attribute definition in HTML 4.0.
+     */
+    public String getCellSpacing();
+    public void setCellSpacing(String cellSpacing);
+
+    /**
+     *  Specifies which external table borders to render. See the  frame
+     * attribute definition in HTML 4.0.
+     */
+    public String getFrame();
+    public void setFrame(String frame);
+
+    /**
+     *  Specifies which internal table borders to render. See the  rules
+     * attribute definition in HTML 4.0.
+     */
+    public String getRules();
+    public void setRules(String rules);
+
+    /**
+     *  Description about the purpose or structure of a table. See the
+     * summary attribute definition in HTML 4.0.
+     */
+    public String getSummary();
+    public void setSummary(String summary);
+
+    /**
+     *  Specifies the desired table width. See the  width attribute definition
+     * in HTML 4.0.
+     */
+    public String getWidth();
+    public void setWidth(String width);
+
+    /**
+     *  Create a table header row or return an existing one.
+     * @return  A new table header element (<code>THEAD</code> ).
+     */
+    public HTMLElement createTHead();
+
+    /**
+     *  Delete the header from the table, if one exists.
+     */
+    public void deleteTHead();
+
+    /**
+     *  Create a table footer row or return an existing one.
+     * @return  A footer element (<code>TFOOT</code> ).
+     */
+    public HTMLElement createTFoot();
+
+    /**
+     *  Delete the footer from the table, if one exists.
+     */
+    public void deleteTFoot();
+
+    /**
+     *  Create a new table caption object or return an existing one.
+     * @return  A <code>CAPTION</code> element.
+     */
+    public HTMLElement createCaption();
+
+    /**
+     *  Delete the table caption, if one exists.
+     */
+    public void deleteCaption();
+
+    /**
+     *  Insert a new empty row in the table. The new row is inserted
+     * immediately before and in the same section as the current
+     * <code>index</code> th row in the table. If <code>index</code> is equal
+     * to the number of rows, the new row is appended. In addition, when the
+     * table is empty the row is inserted into a <code>TBODY</code> which is
+     * created and inserted into the table. Note. A table row cannot be empty
+     * according to HTML 4.0 Recommendation.
+     * @param index  The row number where to insert a new row. This index
+     *   starts from 0 and is relative to all the rows contained inside the
+     *   table, regardless of section parentage.
+     * @return  The newly created row.
+     * @exception DOMException
+     *    INDEX_SIZE_ERR: Raised if the specified index is greater than the
+     *   number of rows or if the index is negative.
+     */
+    public HTMLElement insertRow(int index)
+                                 throws DOMException;
+
+    /**
+     *  Delete a table row.
+     * @param index  The index of the row to be deleted. This index starts
+     *   from 0 and is relative to all the rows contained inside the table,
+     *   regardless of section parentage.
+     * @exception DOMException
+     *    INDEX_SIZE_ERR: Raised if the specified index is greater than or
+     *   equal to the number of rows or if the index is negative.
+     */
+    public void deleteRow(int index)
+                          throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTableRowElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  A row in a table. See the  TR element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTableRowElement extends HTMLElement {
+    /**
+     *  The index of this row, relative to the entire table, starting from 0.
+     * This is in document tree order and not display order. The
+     * <code>rowIndex</code> does not take into account sections (
+     * <code>THEAD</code> , <code>TFOOT</code> , or <code>TBODY</code> )
+     * within the table.
+     */
+    public int getRowIndex();
+
+    /**
+     *  The index of this row, relative to the current section (
+     * <code>THEAD</code> , <code>TFOOT</code> , or <code>TBODY</code> ),
+     * starting from 0.
+     */
+    public int getSectionRowIndex();
+
+    /**
+     *  The collection of cells in this row.
+     */
+    public HTMLCollection getCells();
+
+    /**
+     *  Horizontal alignment of data within cells of this row. See the  align
+     * attribute definition in HTML 4.0.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Background color for rows. See the  bgcolor attribute definition in
+     * HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public String getBgColor();
+    public void setBgColor(String bgColor);
+
+    /**
+     *  Alignment character for cells in a column. See the  char attribute
+     * definition in HTML 4.0.
+     */
+    public String getCh();
+    public void setCh(String ch);
+
+    /**
+     *  Offset of alignment character. See the  charoff attribute definition
+     * in HTML 4.0.
+     */
+    public String getChOff();
+    public void setChOff(String chOff);
+
+    /**
+     *  Vertical alignment of data within cells of this row. See the  valign
+     * attribute definition in HTML 4.0.
+     */
+    public String getVAlign();
+    public void setVAlign(String vAlign);
+
+    /**
+     *  Insert an empty <code>TD</code> cell into this row. If
+     * <code>index</code> is equal to the number of cells, the new cell is
+     * appended
+     * @param index  The place to insert the cell, starting from 0.
+     * @return  The newly created cell.
+     * @exception DOMException
+     *    INDEX_SIZE_ERR: Raised if the specified <code>index</code> is
+     *   greater than the number of cells or if the index is negative.
+     */
+    public HTMLElement insertCell(int index)
+                                  throws DOMException;
+
+    /**
+     *  Delete a cell from the current row.
+     * @param index  The index of the cell to delete, starting from 0.
+     * @exception DOMException
+     *    INDEX_SIZE_ERR: Raised if the specified <code>index</code> is
+     *   greater than or equal to the number of cells or if the index is
+     *   negative.
+     */
+    public void deleteCell(int index)
+                           throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTableSectionElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,113 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>THEAD</code> , <code>TFOOT</code> , and <code>TBODY</code>
+ * elements.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTableSectionElement extends HTMLElement {
+    /**
+     *  Horizontal alignment of data in cells. See the <code>align</code>
+     * attribute for HTMLTheadElement for details.
+     */
+    public String getAlign();
+    public void setAlign(String align);
+
+    /**
+     *  Alignment character for cells in a column. See the  char attribute
+     * definition in HTML 4.0.
+     */
+    public String getCh();
+    public void setCh(String ch);
+
+    /**
+     *  Offset of alignment character. See the  charoff attribute definition
+     * in HTML 4.0.
+     */
+    public String getChOff();
+    public void setChOff(String chOff);
+
+    /**
+     *  Vertical alignment of data in cells. See the <code>valign</code>
+     * attribute for HTMLTheadElement for details.
+     */
+    public String getVAlign();
+    public void setVAlign(String vAlign);
+
+    /**
+     *  The collection of rows in this table section.
+     */
+    public HTMLCollection getRows();
+
+    /**
+     *  Insert a row into this section. The new row is inserted immediately
+     * before the current <code>index</code> th row in this section. If
+     * <code>index</code> is equal to the number of rows in this section, the
+     * new row is appended.
+     * @param index  The row number where to insert a new row. This index
+     *   starts from 0 and is relative only to the rows contained inside this
+     *   section, not all the rows in the table.
+     * @return  The newly created row.
+     * @exception DOMException
+     *    INDEX_SIZE_ERR: Raised if the specified index is greater than the
+     *   number of rows of if the index is neagative.
+     */
+    public HTMLElement insertRow(int index)
+                                 throws DOMException;
+
+    /**
+     *  Delete a row from this section.
+     * @param index  The index of the row to be deleted. This index starts
+     *   from 0 and is relative only to the rows contained inside this
+     *   section, not all the rows in the table.
+     * @exception DOMException
+     *    INDEX_SIZE_ERR: Raised if the specified index is greater than or
+     *   equal to the number of rows or if the index is negative.
+     */
+    public void deleteRow(int index)
+                          throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTextAreaElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,142 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Multi-line text field. See the  TEXTAREA element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTextAreaElement extends HTMLElement {
+    /**
+     *  Represents the contents of the element. The value of this attribute
+     * does not change if the contents of the corresponding form control, in
+     * an interactive user agent, changes. Changing this attribute, however,
+     * resets the contents of the form control.
+     */
+    public String getDefaultValue();
+    public void setDefaultValue(String defaultValue);
+
+    /**
+     *  Returns the <code>FORM</code> element containing this control. Returns
+     * <code>null</code> if this control is not within the context of a form.
+     */
+    public HTMLFormElement getForm();
+
+    /**
+     *  A single character access key to give access to the form control. See
+     * the  accesskey attribute definition in HTML 4.0.
+     */
+    public String getAccessKey();
+    public void setAccessKey(String accessKey);
+
+    /**
+     *  Width of control (in characters). See the  cols attribute definition
+     * in HTML 4.0.
+     */
+    public int getCols();
+    public void setCols(int cols);
+
+    /**
+     *  The control is unavailable in this context. See the  disabled
+     * attribute definition in HTML 4.0.
+     */
+    public boolean getDisabled();
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  Form control or object name when submitted with a form. See the  name
+     * attribute definition in HTML 4.0.
+     */
+    public String getName();
+    public void setName(String name);
+
+    /**
+     *  This control is read-only. See the  readonly attribute definition in
+     * HTML 4.0.
+     */
+    public boolean getReadOnly();
+    public void setReadOnly(boolean readOnly);
+
+    /**
+     *  Number of text rows. See the  rows attribute definition in HTML 4.0.
+     */
+    public int getRows();
+    public void setRows(int rows);
+
+    /**
+     *  Index that represents the element's position in the tabbing order. See
+     * the  tabindex attribute definition in HTML 4.0.
+     */
+    public int getTabIndex();
+    public void setTabIndex(int tabIndex);
+
+    /**
+     *  The type of this form control. This the string "textarea".
+     */
+    public String getType();
+
+    /**
+     *  Represents the current contents of the corresponding form control, in
+     * an interactive user agent. Changing this attribute changes the
+     * contents of the form control, but does not change the contents of the
+     * element. If the entirety of the data can not fit into a single
+     * <code>DOMString</code> , the implementation may truncate the data.
+     */
+    public String getValue();
+    public void setValue(String value);
+
+    /**
+     *  Removes keyboard focus from this element.
+     */
+    public void blur();
+
+    /**
+     *  Gives keyboard focus to this element.
+     */
+    public void focus();
+
+    /**
+     *  Select the contents of the <code>TEXTAREA</code> .
+     */
+    public void select();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLTitleElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  The document title. See the  TITLE element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLTitleElement extends HTMLElement {
+    /**
+     *  The specified title as a string.
+     */
+    public String getText();
+    public void setText(String text);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/HTMLUListElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more
+ * details.
+ */
+
+package org.w3c.dom.html;
+
+/**
+ *  Unordered list. See the  UL element definition in HTML 4.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>.
+ */
+public interface HTMLUListElement extends HTMLElement {
+    /**
+     *  Reduce spacing between list items. See the  compact attribute
+     * definition in HTML 4.0. This attribute is deprecated in HTML 4.0.
+     */
+    public boolean getCompact();
+    public void setCompact(boolean compact);
+
+    /**
+     *  Bullet style. See the  type attribute definition in HTML 4.0. This
+     * attribute is deprecated in HTML 4.0.
+     */
+    public String getType();
+    public void setType(String type);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/stylesheets/DocumentStyle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ *  The <code>DocumentStyle</code> interface provides a mechanism by which the
+ * style sheets embedded in a document can be retrieved. The expectation is
+ * that an instance of the <code>DocumentStyle</code> interface can be
+ * obtained by using binding-specific casting methods on an instance of the
+ * <code>Document</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentStyle {
+    /**
+     *  A list containing all the style sheets explicitly linked into or
+     * embedded in a document. For HTML documents, this includes external
+     * style sheets, included via the HTML  LINK element, and inline  STYLE
+     * elements. In XML, this includes external style sheets, included via
+     * style sheet processing instructions (see [XML StyleSheet]).
+     */
+    public StyleSheetList getStyleSheets();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/stylesheets/LinkStyle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ *  The <code>LinkStyle</code> interface provides a mechanism by which a style
+ * sheet can be retrieved from the node responsible for linking it into a
+ * document. An instance of the <code>LinkStyle</code> interface can be
+ * obtained using binding-specific casting methods on an instance of a
+ * linking node (<code>HTMLLinkElement</code>, <code>HTMLStyleElement</code>
+ * or <code>ProcessingInstruction</code> in DOM Level 2).
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface LinkStyle {
+    /**
+     *  The style sheet.
+     */
+    public StyleSheet getSheet();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/stylesheets/MediaList.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+import org.w3c.dom.DOMException;
+
+/**
+ *  The <code>MediaList</code> interface provides the abstraction of an
+ * ordered collection of media, without defining or constraining how this
+ * collection is implemented. An empty list is the same as a list that
+ * contains the medium <code>"all"</code>.
+ * <p> The items in the <code>MediaList</code> are accessible via an integral
+ * index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface MediaList {
+    /**
+     *  The parsable textual representation of the media list. This is a
+     * comma-separated list of media.
+     */
+    public String getMediaText();
+    /**
+     *  The parsable textual representation of the media list. This is a
+     * comma-separated list of media.
+     * @exception DOMException
+     *   SYNTAX_ERR: Raised if the specified string value has a syntax error
+     *   and is unparsable.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is
+     *   readonly.
+     */
+    public void setMediaText(String mediaText)
+                             throws DOMException;
+
+    /**
+     *  The number of media in the list. The range of valid media is
+     * <code>0</code> to <code>length-1</code> inclusive.
+     */
+    public int getLength();
+
+    /**
+     *  Returns the <code>index</code>th in the list. If <code>index</code> is
+     * greater than or equal to the number of media in the list, this
+     * returns <code>null</code>.
+     * @param index  Index into the collection.
+     * @return  The medium at the <code>index</code>th position in the
+     *   <code>MediaList</code>, or <code>null</code> if that is not a valid
+     *   index.
+     */
+    public String item(int index);
+
+    /**
+     *  Deletes the medium indicated by <code>oldMedium</code> from the list.
+     * @param oldMedium The medium to delete in the media list.
+     * @exception DOMException
+     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
+     *   <br> NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not in the
+     *   list.
+     */
+    public void deleteMedium(String oldMedium)
+                             throws DOMException;
+
+    /**
+     *  Adds the medium <code>newMedium</code> to the end of the list. If the
+     * <code>newMedium</code> is already used, it is first removed.
+     * @param newMedium The new medium to add.
+     * @exception DOMException
+     *    INVALID_CHARACTER_ERR: If the medium contains characters that are
+     *   invalid in the underlying style language.
+     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
+     */
+    public void appendMedium(String newMedium)
+                             throws DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/stylesheets/StyleSheet.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+import org.w3c.dom.Node;
+
+/**
+ *  The <code>StyleSheet</code> interface is the abstract base interface for
+ * any type of style sheet. It represents a single style sheet associated
+ * with a structured document. In HTML, the StyleSheet interface represents
+ * either an external style sheet, included via the HTML  LINK element, or
+ * an inline  STYLE element. In XML, this interface represents an external
+ * style sheet, included via a style sheet processing instruction.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface StyleSheet {
+    /**
+     *  This specifies the style sheet language for this style sheet. The
+     * style sheet language is specified as a content type (e.g.
+     * "text/css"). The content type is often specified in the
+     * <code>ownerNode</code>. Also see the type attribute definition for
+     * the <code>LINK</code> element in HTML 4.0, and the type
+     * pseudo-attribute for the XML style sheet processing instruction.
+     */
+    public String getType();
+
+    /**
+     *  <code>false</code> if the style sheet is applied to the document.
+     * <code>true</code> if it is not. Modifying this attribute may cause a
+     * new resolution of style for the document. A stylesheet only applies
+     * if both an appropriate medium definition is present and the disabled
+     * attribute is false. So, if the media doesn't apply to the current
+     * user agent, the <code>disabled</code> attribute is ignored.
+     */
+    public boolean getDisabled();
+    /**
+     *  <code>false</code> if the style sheet is applied to the document.
+     * <code>true</code> if it is not. Modifying this attribute may cause a
+     * new resolution of style for the document. A stylesheet only applies
+     * if both an appropriate medium definition is present and the disabled
+     * attribute is false. So, if the media doesn't apply to the current
+     * user agent, the <code>disabled</code> attribute is ignored.
+     */
+    public void setDisabled(boolean disabled);
+
+    /**
+     *  The node that associates this style sheet with the document. For HTML,
+     * this may be the corresponding <code>LINK</code> or <code>STYLE</code>
+     * element. For XML, it may be the linking processing instruction. For
+     * style sheets that are included by other style sheets, the value of
+     * this attribute is <code>null</code>.
+     */
+    public Node getOwnerNode();
+
+    /**
+     *  For style sheet languages that support the concept of style sheet
+     * inclusion, this attribute represents the including style sheet, if
+     * one exists. If the style sheet is a top-level style sheet, or the
+     * style sheet language does not support inclusion, the value of this
+     * attribute is <code>null</code>.
+     */
+    public StyleSheet getParentStyleSheet();
+
+    /**
+     *  If the style sheet is a linked style sheet, the value of its attribute
+     * is its location. For inline style sheets, the value of this attribute
+     * is <code>null</code>. See the href attribute definition for the
+     * <code>LINK</code> element in HTML 4.0, and the href pseudo-attribute
+     * for the XML style sheet processing instruction.
+     */
+    public String getHref();
+
+    /**
+     *  The advisory title. The title is often specified in the
+     * <code>ownerNode</code>. See the title attribute definition for the
+     * <code>LINK</code> element in HTML 4.0, and the title pseudo-attribute
+     * for the XML style sheet processing instruction.
+     */
+    public String getTitle();
+
+    /**
+     *  The intended destination media for style information. The media is
+     * often specified in the <code>ownerNode</code>. If no media has been
+     * specified, the <code>MediaList</code> will be empty. See the media
+     * attribute definition for the <code>LINK</code> element in HTML 4.0,
+     * and the media pseudo-attribute for the XML style sheet processing
+     * instruction . Modifying the media list may cause a change to the
+     * attribute <code>disabled</code>.
+     */
+    public MediaList getMedia();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/stylesheets/StyleSheetList.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The <code>StyleSheetList</code> interface provides the abstraction of an
+ * ordered collection of style sheets.
+ * <p> The items in the <code>StyleSheetList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface StyleSheetList {
+    /**
+     *  The number of <code>StyleSheets</code> in the list. The range of valid
+     * child stylesheet indices is <code>0</code> to <code>length-1</code>
+     * inclusive.
+     */
+    public int getLength();
+
+    /**
+     *  Used to retrieve a style sheet by ordinal index. If index is greater
+     * than or equal to the number of style sheets in the list, this returns
+     * <code>null</code>.
+     * @param index Index into the collection
+     * @return The style sheet at the <code>index</code> position in the
+     *   <code>StyleSheetList</code>, or <code>null</code> if that is not a
+     *   valid index.
+     */
+    public StyleSheet item(int index);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/COPYRIGHT.html	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+    <title>W3C IPR SOFTWARE NOTICE</title>
+<style type="text/css">
+<!--
+html, body { background: #fff; color: #000; } /* body for Windows IE3 */
+-->
+</style>
+  </head>
+  <body>
+    <h1>
+      W3C IPR SOFTWARE NOTICE
+    </h1>
+    <h3>
+      Copyright &copy; 2002 <a href="http://www.w3.org/">World Wide Web
+      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+      National de Recherche en Informatique et en Automatique</a>, <a
+      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
+      Reserved.
+    </h3>
+    <p>
+      The DOM bindings are published under the W3C Software Copyright Notice
+      and License. The software license requires "Notice of any changes or
+      modifications to the W3C files, including the date changes were made."
+      Consequently, modified versions of the DOM bindings must document that
+      they do not conform to the W3C standard; in the case of the IDL
+      definitions, the pragma prefix can no longer be 'w3c.org'; in the case of
+      the Java language binding, the package names can no longer be in the
+      'org.w3c' package.
+    </p>
+    <p>
+      <b>Note:</b> The original version of the W3C Software Copyright Notice
+      and License could be found at <a
+      href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
+    </p>
+    <h3>
+      Copyright &copy; 1994-2002 <a href="http://www.w3.org/">World Wide Web
+      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+      National de Recherche en Informatique et en Automatique</a>, <a
+      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
+      Reserved. http://www.w3.org/Consortium/Legal/
+    </h3>
+    <p>
+      This W3C work (including software, documents, or other related items) is
+      being provided by the copyright holders under the following license. By
+      obtaining, using and/or copying this work, you (the licensee) agree that
+      you have read, understood, and will comply with the following terms and
+      conditions:
+    </p>
+    <p>
+      Permission to use, copy, and modify this software and its documentation,
+      with or without modification,&nbsp; for any purpose and without fee or
+      royalty is hereby granted, provided that you include the following on ALL
+      copies of the software and documentation or portions thereof, including
+      modifications, that you make:
+    </p>
+    <ol>
+      <li>
+	The full text of this NOTICE in a location viewable to users of the
+	redistributed or derivative work.
+      </li>
+      <li>
+	Any pre-existing intellectual property disclaimers, notices, or terms
+	and conditions. If none exist, a short notice of the following form
+	(hypertext is preferred, text is permitted) should be used within the
+	body of any redistributed or derivative code: "Copyright &copy;
+	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
+	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+	National de Recherche en Informatique et en Automatique</a>, <a
+	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
+	Reserved. http://www.w3.org/Consortium/Legal/"
+      </li>
+      <li>
+	Notice of any changes or modifications to the W3C files, including the
+	date changes were made. (We recommend you provide URIs to the location
+	from which the code is derived.)
+      </li>
+    </ol>
+    <p>
+      THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
+      HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
+      INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
+      FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
+      DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+      TRADEMARKS OR OTHER RIGHTS.
+    </p>
+    <p>
+      COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+      CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+      DOCUMENTATION.
+    </p>
+    <p>
+      The name and trademarks of copyright holders may NOT be used in
+      advertising or publicity pertaining to the software without specific,
+      written prior permission. Title to copyright in this software and any
+      associated documentation will at all times remain with copyright
+      holders.
+    </p>
+  </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathEvaluator.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,162 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2002 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.xpath;
+
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ *  The evaluation of XPath expressions is provided by
+ * <code>XPathEvaluator</code>. In a DOM implementation which supports the
+ * XPath 3.0 feature, as described above, the <code>XPathEvaluator</code>
+ * interface will be implemented on the same object which implements the
+ * <code>Document</code> interface permitting it to be obtained by the usual
+ * binding-specific method such as casting or by using the DOM Level 3
+ * getInterface method. In this case the implementation obtained from the
+ * Document supports the XPath DOM module and is compatible with the XPath
+ * 1.0 specification.
+ * <p>Evaluation of expressions with specialized extension functions or
+ * variables may not work in all implementations and is, therefore, not
+ * portable. <code>XPathEvaluator</code> implementations may be available
+ * from other sources that could provide specific support for specialized
+ * extension functions or variables as would be defined by other
+ * specifications.
+ * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathEvaluator {
+    /**
+     * Creates a parsed XPath expression with resolved namespaces. This is
+     * useful when an expression will be reused in an application since it
+     * makes it possible to compile the expression string into a more
+     * efficient internal form and preresolve all namespace prefixes which
+     * occur within the expression.
+     * @param expression The XPath expression string to be parsed.
+     * @param resolver The <code>resolver</code> permits translation of
+     *   prefixes within the XPath expression into appropriate namespace URIs
+     *   . If this is specified as <code>null</code>, any namespace prefix
+     *   within the expression will result in <code>DOMException</code>
+     *   being thrown with the code <code>NAMESPACE_ERR</code>.
+     * @return The compiled form of the XPath expression.
+     * @exception XPathException
+     *   INVALID_EXPRESSION_ERR: Raised if the expression is not legal
+     *   according to the rules of the <code>XPathEvaluator</code>i
+     * @exception DOMException
+     *   NAMESPACE_ERR: Raised if the expression contains namespace prefixes
+     *   which cannot be resolved by the specified
+     *   <code>XPathNSResolver</code>.
+     */
+    public XPathExpression createExpression(String expression,
+                                            XPathNSResolver resolver)
+                                            throws XPathException, DOMException;
+
+    /**
+     * Adapts any DOM node to resolve namespaces so that an XPath expression
+     * can be easily evaluated relative to the context of the node where it
+     * appeared within the document. This adapter works like the DOM Level 3
+     * method <code>lookupNamespaceURI</code> on nodes in resolving the
+     * namespaceURI from a given prefix using the current information
+     * available in the node's hierarchy at the time lookupNamespaceURI is
+     * called. also correctly resolving the implicit xml prefix.
+     * @param nodeResolver The node to be used as a context for namespace
+     *   resolution.
+     * @return <code>XPathNSResolver</code> which resolves namespaces with
+     *   respect to the definitions in scope for a specified node.
+     */
+    public XPathNSResolver createNSResolver(Node nodeResolver);
+
+    /**
+     * Evaluates an XPath expression string and returns a result of the
+     * specified type if possible.
+     * @param expression The XPath expression string to be parsed and
+     *   evaluated.
+     * @param contextNode The <code>context</code> is context node for the
+     *   evaluation of this XPath expression. If the XPathEvaluator was
+     *   obtained by casting the <code>Document</code> then this must be
+     *   owned by the same document and must be a <code>Document</code>,
+     *   <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
+     *   <code>CDATASection</code>, <code>Comment</code>,
+     *   <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
+     *   node. If the context node is a <code>Text</code> or a
+     *   <code>CDATASection</code>, then the context is interpreted as the
+     *   whole logical text node as seen by XPath, unless the node is empty
+     *   in which case it may not serve as the XPath context.
+     * @param resolver The <code>resolver</code> permits translation of
+     *   prefixes within the XPath expression into appropriate namespace URIs
+     *   . If this is specified as <code>null</code>, any namespace prefix
+     *   within the expression will result in <code>DOMException</code>
+     *   being thrown with the code <code>NAMESPACE_ERR</code>.
+     * @param type If a specific <code>type</code> is specified, then the
+     *   result will be returned as the corresponding type.For XPath 1.0
+     *   results, this must be one of the codes of the
+     *   <code>XPathResult</code> interface.
+     * @param result The <code>result</code> specifies a specific result
+     *   object which may be reused and returned by this method. If this is
+     *   specified as <code>null</code>or the implementation does not reuse
+     *   the specified result, a new result object will be constructed and
+     *   returned.For XPath 1.0 results, this object will be of type
+     *   <code>XPathResult</code>.
+     * @return The result of the evaluation of the XPath expression.For XPath
+     *   1.0 results, this object will be of type <code>XPathResult</code>.
+     * @exception XPathException
+     *   INVALID_EXPRESSION_ERR: Raised if the expression is not legal
+     *   according to the rules of the <code>XPathEvaluator</code>i
+     *   <br>TYPE_ERR: Raised if the result cannot be converted to return the
+     *   specified type.
+     * @exception DOMException
+     *   NAMESPACE_ERR: Raised if the expression contains namespace prefixes
+     *   which cannot be resolved by the specified
+     *   <code>XPathNSResolver</code>.
+     *   <br>WRONG_DOCUMENT_ERR: The Node is from a document that is not
+     *   supported by this <code>XPathEvaluator</code>.
+     *   <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
+     *   context node or the request type is not permitted by this
+     *   <code>XPathEvaluator</code>.
+     */
+    public Object evaluate(String expression,
+                           Node contextNode,
+                           XPathNSResolver resolver,
+                           short type,
+                           Object result)
+                           throws XPathException, DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,70 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2002 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.xpath;
+
+/**
+ * A new exception has been created for exceptions specific to these XPath
+ * interfaces.
+ * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public class XPathException extends RuntimeException {
+    private static final long serialVersionUID = 3471034171575979943L;
+
+    public XPathException(short code, String message) {
+       super(message);
+       this.code = code;
+    }
+    public short   code;
+    // XPathExceptionCode
+    /**
+     * If the expression has a syntax error or otherwise is not a legal
+     * expression according to the rules of the specific
+     * <code>XPathEvaluator</code> or contains specialized extension
+     * functions or variables not supported by this implementation.
+     */
+    public static final short INVALID_EXPRESSION_ERR    = 1;
+    /**
+     * If the expression cannot be converted to return the specified type.
+     */
+    public static final short TYPE_ERR                  = 2;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathExpression.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,95 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2002 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.xpath;
+
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>XPathExpression</code> interface represents a parsed and resolved
+ * XPath expression.
+ * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathExpression {
+    /**
+     * Evaluates this XPath expression and returns a result.
+     * @param contextNode The <code>context</code> is context node for the
+     *   evaluation of this XPath expression.If the XPathEvaluator was
+     *   obtained by casting the <code>Document</code> then this must be
+     *   owned by the same document and must be a <code>Document</code>,
+     *   <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
+     *   <code>CDATASection</code>, <code>Comment</code>,
+     *   <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
+     *   node.If the context node is a <code>Text</code> or a
+     *   <code>CDATASection</code>, then the context is interpreted as the
+     *   whole logical text node as seen by XPath, unless the node is empty
+     *   in which case it may not serve as the XPath context.
+     * @param type If a specific <code>type</code> is specified, then the
+     *   result will be coerced to return the specified type relying on
+     *   XPath conversions and fail if the desired coercion is not possible.
+     *   This must be one of the type codes of <code>XPathResult</code>.
+     * @param result The <code>result</code> specifies a specific result
+     *   object which may be reused and returned by this method. If this is
+     *   specified as <code>null</code>or the implementation does not reuse
+     *   the specified result, a new result object will be constructed and
+     *   returned.For XPath 1.0 results, this object will be of type
+     *   <code>XPathResult</code>.
+     * @return The result of the evaluation of the XPath expression.For XPath
+     *   1.0 results, this object will be of type <code>XPathResult</code>.
+     * @exception XPathException
+     *   TYPE_ERR: Raised if the result cannot be converted to return the
+     *   specified type.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: The Node is from a document that is not supported
+     *   by the XPathEvaluator that created this <code>XPathExpression</code>
+     *   .
+     *   <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
+     *   context node or the request type is not permitted by this
+     *   <code>XPathExpression</code>.
+     */
+    public Object evaluate(Node contextNode,
+                           short type,
+                           Object result)
+                           throws XPathException, DOMException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathNSResolver.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2002 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.xpath;
+
+
+/**
+ * The <code>XPathNSResolver</code> interface permit <code>prefix</code>
+ * strings in the expression to be properly bound to
+ * <code>namespaceURI</code> strings. <code>XPathEvaluator</code> can
+ * construct an implementation of <code>XPathNSResolver</code> from a node,
+ * or the interface may be implemented by any application.
+ * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathNSResolver {
+    /**
+     * Look up the namespace URI associated to the given namespace prefix. The
+     * XPath evaluator must never call this with a <code>null</code> or
+     * empty argument, because the result of doing this is undefined.
+     * @param prefix The prefix to look for.
+     * @return Returns the associated namespace URI or <code>null</code> if
+     *   none is found.
+     */
+    public String lookupNamespaceURI(String prefix);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathNamespace.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2002 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.xpath;
+
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * The <code>XPathNamespace</code> interface is returned by
+ * <code>XPathResult</code> interfaces to represent the XPath namespace node
+ * type that DOM lacks. There is no public constructor for this node type.
+ * Attempts to place it into a hierarchy or a NamedNodeMap result in a
+ * <code>DOMException</code> with the code <code>HIERARCHY_REQUEST_ERR</code>
+ * . This node is read only, so methods or setting of attributes that would
+ * mutate the node result in a DOMException with the code
+ * <code>NO_MODIFICATION_ALLOWED_ERR</code>.
+ * <p>The core specification describes attributes of the <code>Node</code>
+ * interface that are different for different node node types but does not
+ * describe <code>XPATH_NAMESPACE_NODE</code>, so here is a description of
+ * those attributes for this node type. All attributes of <code>Node</code>
+ * not described in this section have a <code>null</code> or
+ * <code>false</code> value.
+ * <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the
+ * <code>ownerElement</code> even if the element is later adopted.
+ * <p><code>prefix</code> is the prefix of the namespace represented by the
+ * node.
+ * <p><code>nodeName</code> is the same as <code>prefix</code>.
+ * <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>.
+ * <p><code>namespaceURI</code> is the namespace URI of the namespace
+ * represented by the node.
+ * <p><code>adoptNode</code>, <code>cloneNode</code>, and
+ * <code>importNode</code> fail on this node type by raising a
+ * <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>.In
+ * future versions of the XPath specification, the definition of a namespace
+ * node may be changed incomatibly, in which case incompatible changes to
+ * field values may be required to implement versions beyond XPath 1.0.
+ * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathNamespace extends Node {
+    // XPathNodeType
+    /**
+     * The node is a <code>Namespace</code>.
+     */
+    public static final short XPATH_NAMESPACE_NODE      = 13;
+
+    /**
+     * The <code>Element</code> on which the namespace was in scope when it
+     * was requested. This does not change on a returned namespace node even
+     * if the document changes such that the namespace goes out of scope on
+     * that element and this node is no longer found there by XPath.
+     */
+    public Element getOwnerElement();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/XPathResult.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,241 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file and, per its terms, should not be removed:
+ *
+ * Copyright (c) 2002 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.xpath;
+
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>XPathResult</code> interface represents the result of the
+ * evaluation of an XPath 1.0 expression within the context of a particular
+ * node. Since evaluation of an XPath expression can result in various
+ * result types, this object makes it possible to discover and manipulate
+ * the type and value of the result.
+ * <p>See also the <a href='http://www.w3.org/2002/08/WD-DOM-Level-3-XPath-20020820'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathResult {
+    // XPathResultType
+    /**
+     * This code does not represent a specific type. An evaluation of an XPath
+     * expression will never produce this type. If this type is requested,
+     * then the evaluation returns whatever type naturally results from
+     * evaluation of the expression.
+     * <br>If the natural result is a node set when <code>ANY_TYPE</code> was
+     * requested, then <code>UNORDERED_NODE_ITERATOR_TYPE</code> is always
+     * the resulting type. Any other representation of a node set must be
+     * explicitly requested.
+     */
+    public static final short ANY_TYPE                  = 0;
+    /**
+     * The result is a number as defined by . Document modification does not
+     * invalidate the number, but may mean that reevaluation would not yield
+     * the same number.
+     */
+    public static final short NUMBER_TYPE               = 1;
+    /**
+     * The result is a string as defined by . Document modification does not
+     * invalidate the string, but may mean that the string no longer
+     * corresponds to the current document.
+     */
+    public static final short STRING_TYPE               = 2;
+    /**
+     * The result is a boolean as defined by . Document modification does not
+     * invalidate the boolean, but may mean that reevaluation would not
+     * yield the same boolean.
+     */
+    public static final short BOOLEAN_TYPE              = 3;
+    /**
+     * The result is a node set as defined by  that will be accessed
+     * iteratively, which may not produce nodes in a particular order.
+     * Document modification invalidates the iteration.
+     * <br>This is the default type returned if the result is a node set and
+     * <code>ANY_TYPE</code> is requested.
+     */
+    public static final short UNORDERED_NODE_ITERATOR_TYPE = 4;
+    /**
+     * The result is a node set as defined by  that will be accessed
+     * iteratively, which will produce document-ordered nodes. Document
+     * modification invalidates the iteration.
+     */
+    public static final short ORDERED_NODE_ITERATOR_TYPE = 5;
+    /**
+     * The result is a node set as defined by  that will be accessed as a
+     * snapshot list of nodes that may not be in a particular order.
+     * Document modification does not invalidate the snapshot but may mean
+     * that reevaluation would not yield the same snapshot and nodes in the
+     * snapshot may have been altered, moved, or removed from the document.
+     */
+    public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+    /**
+     * The result is a node set as defined by  that will be accessed as a
+     * snapshot list of nodes that will be in original document order.
+     * Document modification does not invalidate the snapshot but may mean
+     * that reevaluation would not yield the same snapshot and nodes in the
+     * snapshot may have been altered, moved, or removed from the document.
+     */
+    public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7;
+    /**
+     * The result is a node set as defined by  and will be accessed as a
+     * single node, which may be <code>null</code>if the node set is empty.
+     * Document modification does not invalidate the node, but may mean that
+     * the result node no longer corresponds to the current document. This
+     * is a convenience that permits optimization since the implementation
+     * can stop once any node in the in the resulting set has been found.
+     * <br>If there are more than one node in the actual result, the single
+     * node returned might not be the first in document order.
+     */
+    public static final short ANY_UNORDERED_NODE_TYPE   = 8;
+    /**
+     * The result is a node set as defined by  and will be accessed as a
+     * single node, which may be <code>null</code> if the node set is empty.
+     * Document modification does not invalidate the node, but may mean that
+     * the result node no longer corresponds to the current document. This
+     * is a convenience that permits optimization since the implementation
+     * can stop once the first node in document order of the resulting set
+     * has been found.
+     * <br>If there are more than one node in the actual result, the single
+     * node returned will be the first in document order.
+     */
+    public static final short FIRST_ORDERED_NODE_TYPE   = 9;
+
+    /**
+     * A code representing the type of this result, as defined by the type
+     * constants.
+     */
+    public short getResultType();
+
+    /**
+     * The value of this number result. If the native double type of the DOM
+     * binding does not directly support the exact IEEE 754 result of the
+     * XPath expression, then it is up to the definition of the binding
+     * binding to specify how the XPath number is converted to the native
+     * binding number.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>NUMBER_TYPE</code>.
+     */
+    public double getNumberValue()
+                             throws XPathException;
+
+    /**
+     * The value of this string result.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>STRING_TYPE</code>.
+     */
+    public String getStringValue()
+                             throws XPathException;
+
+    /**
+     * The value of this boolean result.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>BOOLEAN_TYPE</code>.
+     */
+    public boolean getBooleanValue()
+                             throws XPathException;
+
+    /**
+     * The value of this single node result, which may be <code>null</code>.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>ANY_UNORDERED_NODE_TYPE</code> or
+     *   <code>FIRST_ORDERED_NODE_TYPE</code>.
+     */
+    public Node getSingleNodeValue()
+                             throws XPathException;
+
+    /**
+     * Signifies that the iterator has become invalid. True if
+     * <code>resultType</code> is <code>UNORDERED_NODE_ITERATOR_TYPE</code>
+     * or <code>ORDERED_NODE_ITERATOR_TYPE</code> and the document has been
+     * modified since this result was returned.
+     */
+    public boolean getInvalidIteratorState();
+
+    /**
+     * The number of nodes in the result snapshot. Valid values for
+     * snapshotItem indices are <code>0</code> to
+     * <code>snapshotLength-1</code> inclusive.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
+     *   <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
+     */
+    public int getSnapshotLength()
+                             throws XPathException;
+
+    /**
+     * Iterates and returns the next node from the node set or
+     * <code>null</code>if there are no more nodes.
+     * @return Returns the next node.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>UNORDERED_NODE_ITERATOR_TYPE</code> or
+     *   <code>ORDERED_NODE_ITERATOR_TYPE</code>.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: The document has been mutated since the result was
+     *   returned.
+     */
+    public Node iterateNext()
+                            throws XPathException, DOMException;
+
+    /**
+     * Returns the <code>index</code>th item in the snapshot collection. If
+     * <code>index</code> is greater than or equal to the number of nodes in
+     * the list, this method returns <code>null</code>. Unlike the iterator
+     * result, the snapshot does not become invalid, but may not correspond
+     * to the current document if it is mutated.
+     * @param index Index into the snapshot collection.
+     * @return The node at the <code>index</code>th position in the
+     *   <code>NodeList</code>, or <code>null</code> if that is not a valid
+     *   index.
+     * @exception XPathException
+     *   TYPE_ERR: raised if <code>resultType</code> is not
+     *   <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
+     *   <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
+     */
+    public Node snapshotItem(int index)
+                             throws XPathException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AbstractCharacterDataTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,231 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
+import static org.w3c.dom.DOMException.INDEX_SIZE_ERR;
+import static org.w3c.dom.ptests.DOMTestUtil.DOMEXCEPTION_EXPECTED;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.CharacterData;
+import org.w3c.dom.DOMException;
+import org.xml.sax.SAXException;
+
+/*
+ * @summary common test for the CharacterData Interface
+ */
+public abstract class AbstractCharacterDataTest extends JAXPFileBaseTest {
+    @DataProvider(name = "data-for-length")
+    public Object[][] getDataForTestLength() {
+        return new Object[][] {
+                { "", 0 },
+                { "test", 4 } };
+    }
+
+    /*
+     * Verify getLength method works as the spec, for an empty string, should
+     * return zero
+     */
+    @Test(dataProvider = "data-for-length")
+    public void testGetLength(String text, int length) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        assertEquals(cd.getLength(), length);
+
+    }
+
+    /*
+     * Test appendData method and verify by getData method.
+     */
+    @Test
+    public void testAppendData() throws Exception {
+        CharacterData cd = createCharacterData("DOM");
+        cd.appendData("2");
+        assertEquals(cd.getData(), "DOM2");
+
+    }
+
+    @DataProvider(name = "data-for-delete")
+    public Object[][] getDataForTestDelete() {
+        return new Object[][] {
+                { "DOM", 2, 1, "DO" },
+                { "DOM", 0, 2, "M" },
+                { "DOM", 2, 3, "DO" } };
+    }
+
+    /*
+     * Verify deleteData method works as the spec.
+     */
+    @Test(dataProvider = "data-for-delete")
+    public void testDeleteData(String text, int offset, int count, String result) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        cd.deleteData(offset, count);
+        assertEquals(cd.getData(), result);
+    }
+
+    @DataProvider(name = "data-for-replace")
+    public Object[][] getDataForTestReplace() {
+        return new Object[][] {
+                { "DOM", 0, 3, "SAX", "SAX" },
+                { "DOM", 1, 1, "AA", "DAAM" },
+                { "DOM", 1, 2, "A", "DA" },
+                { "DOM", 2, 2, "SAX", "DOSAX" } };
+    }
+
+    /*
+     * Verify replaceData method works as the spec.
+     */
+    @Test(dataProvider = "data-for-replace")
+    public void testReplaceData(String text, int offset, int count, String arg, String result) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        cd.replaceData(offset, count, arg);
+        assertEquals(cd.getData(), result);
+    }
+
+    @DataProvider(name = "data-for-replace-neg")
+    public Object[][] getDataForTestReplaceNeg() {
+        return new Object[][] {
+                { "DOM", -1, 3, "SAX" }, //offset if neg
+                { "DOM", 0, -1, "SAX" }, //count is neg
+                { "DOM", 4, 1, "SAX" } };//offset is greater than length
+    }
+
+    /*
+     * Test for replaceData method: verifies that DOMException with
+     * INDEX_SIZE_ERR is thrown if offset or count is out of the bound.
+     */
+    @Test(dataProvider = "data-for-replace-neg")
+    public void testReplaceDataNeg(String text, int offset, int count, String arg) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        try {
+            cd.replaceData(offset, count, arg);
+            fail(DOMEXCEPTION_EXPECTED);
+        } catch (DOMException e) {
+            assertEquals(e.code, INDEX_SIZE_ERR);
+        }
+    }
+
+    @DataProvider(name = "data-for-insert")
+    public Object[][] getDataForTestInsert() {
+        return new Object[][] {
+                { "DOM", 0, "SAX", "SAXDOM" },
+                { "DOM", 3, "SAX", "DOMSAX" } };
+    }
+
+    /*
+     * Verify insertData method works as the spec.
+     */
+    @Test(dataProvider = "data-for-insert")
+    public void testInsertData(String text, int offset, String arg, String result) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        cd.insertData(offset, arg);
+        assertEquals(cd.getData(), result);
+    }
+
+    @DataProvider(name = "data-for-insert-neg")
+    public Object[][] getDataForTestInsertNeg() {
+        return new Object[][] {
+                { "DOM", -1 }, //offset is neg
+                { "DOM", 4 } };//offset is greater than length
+    }
+
+    /*
+     * Test for insertData method: verifies that DOMException with
+     * INDEX_SIZE_ERR is thrown if offset is out of the bound.
+     */
+    @Test(dataProvider = "data-for-insert-neg")
+    public void testInsertDataNeg(String text, int offset) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        try {
+            cd.insertData(offset, "TEST");
+            fail(DOMEXCEPTION_EXPECTED);
+        } catch (DOMException e) {
+            assertEquals(e.code, INDEX_SIZE_ERR);
+        }
+    }
+
+    /*
+     * Test setData method and verify by getData method.
+     */
+    @Test
+    public void testSetData() throws Exception {
+        CharacterData cd = createCharacterData("DOM");
+        cd.setData("SAX");
+        assertEquals(cd.getData(), "SAX");
+    }
+
+    @DataProvider(name = "data-for-substring")
+    public Object[][] getDataForTestSubstring() {
+        return new Object[][] {
+                { "DOM Level 2", 0, 3, "DOM" },
+                { "DOM", 0, 3, "DOM" },
+                { "DOM", 2, 5, "M" } };
+    }
+
+    /*
+     * Verify substringData method works as the spec.
+     */
+    @Test(dataProvider = "data-for-substring")
+    public void testSubstringData(String text, int offset, int count, String result) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        String retStr = cd.substringData(offset, count);
+        assertEquals(retStr, result);
+    }
+
+    @DataProvider(name = "data-for-substring-neg")
+    public Object[][] getDataForTestSubstringNeg() {
+        return new Object[][] {
+                { "DOM Level 2", -1, 3 }, //offset is neg
+                { "DOM", 0, -1 }, //count is neg
+                { "DOM", 3, 1 } }; //offset exceeds length
+    }
+
+    /*
+     * Test for substringData method: verifies that DOMException with
+     * INDEX_SIZE_ERR is thrown if offset or count is out of the bound.
+     */
+    @Test(dataProvider = "data-for-substring-neg")
+    public void testSubstringDataNeg(String text, int offset, int count) throws Exception {
+        CharacterData cd = createCharacterData(text);
+        try {
+            cd.substringData(offset, count);
+            fail(DOMEXCEPTION_EXPECTED);
+        } catch (DOMException e) {
+            assertEquals(e.code, INDEX_SIZE_ERR);
+        }
+
+    }
+
+    /*
+     * Return a concrete CharacterData instance.
+     */
+    abstract protected CharacterData createCharacterData(String text) throws IOException, SAXException, ParserConfigurationException;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+
+
+/*
+ * @summary Test for the Attr Interface
+ */
+public class AttrTest extends JAXPFileBaseTest {
+    /*
+     * Verify getName method against both existing Attr and new Attr.
+     */
+    @Test
+    public void testGetName() throws Exception {
+        Document document = createDOM("Attr01.xml");
+        //test a new created Attr
+        Attr attr = document.createAttribute("newAttribute");
+        assertEquals(attr.getName(), "newAttribute");
+
+        //test a Attr loaded from xml file
+        Element elemNode = (Element) document.getElementsByTagName("book").item(1);
+        Attr attr2 = (Attr) elemNode.getAttributes().item(0);
+        assertEquals(attr2.getName(), "category1");
+    }
+
+    /*
+     * Verify getOwnerElement method against both existing Attr and new Attr.
+     */
+    @Test
+    public void testGetOwnerElement() throws Exception {
+        Document document = createDOM("Attr01.xml");
+
+        //test Attr loaded from xml file
+        Element elemNode = (Element) document.getElementsByTagName("book").item(1);
+        NamedNodeMap nnMap = elemNode.getAttributes();
+        for (int i = 0; i < nnMap.getLength(); i++) {
+            Attr attr = (Attr) nnMap.item(i);
+            assertEquals(attr.getOwnerElement().getNodeName(), "book");
+        }
+
+        //test an Attr without owner node
+        Attr attr = document.createAttribute("newAttribute");
+        assertNull(attr.getOwnerElement());
+
+    }
+
+    /*
+     * Verify getSpecified method works as the spec.
+     */
+    @Test
+    public void testGetSpecified1() throws Exception {
+        Document document = createDOM("Attr01.xml");
+
+        Element elemNode = (Element) document.getElementsByTagName("book").item(1);
+        Attr attr = elemNode.getAttributeNode("category1");
+        assertTrue(attr.getSpecified());
+
+    }
+
+    /*
+     * In this xml file, the dtd has the value for the attrribute, but the xml
+     * element does not specify the value for the attrribute, as per the spec it
+     * should return false.
+     */
+    @Test
+    public void testGetSpecified2() throws Exception {
+
+        Document document = createDOM("Attr2.xml");
+        Element elemNode = (Element) document.getElementsByTagName("Name").item(0);
+        Attr attr = elemNode.getAttributeNode("type");
+
+        assertFalse(attr.getSpecified());
+    }
+
+    /*
+     * Creating a new attribute, the owner element is null since the attribute
+     * has just been created, getSpecified should return true.
+     */
+    @Test
+    public void testNewCreatedAttribute() throws Exception {
+        Document document = createDOM("Attr01.xml");
+        Attr attr = document.createAttribute("newAttribute");
+        assertTrue(attr.getSpecified());
+        assertNull(attr.getOwnerElement());
+
+    }
+
+    /*
+     * The xml file includes the dtd having the IMPLIED value for the attrribute
+     * and the xml element does not specify the value. As per the spec it should
+     * not be seen as a part of the structure model hence getAttributeNode
+     * rerurn null if the attribute is even found.
+     */
+    @Test
+    public void testIMPLIEDAttribute() throws Exception {
+        Document document = createDOM("Attr3.xml");
+        Element elemNode = (Element) document.getElementsByTagName("Name").item(0);
+        Attr attr = elemNode.getAttributeNode("type");
+        assertNull(attr);
+    }
+
+    /*
+     * Test setValue method and verify by getValue method.
+     */
+    @Test
+    public void testSetValue() throws Exception {
+        Document document = createDOM("Attr01.xml");
+        Attr attr = document.createAttribute("newAttribute");
+        attr.setValue("newVal");
+        assertEquals(attr.getValue(), "newVal");
+
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.CharacterData;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/*
+ * @summary Test for Comment implementation returned by Document.createComment(String)
+ */
+public class CommentTest extends AbstractCharacterDataTest {
+    @Override
+    protected CharacterData createCharacterData(String text) throws IOException, SAXException, ParserConfigurationException {
+        Document document = createNewDocument();
+        return document.createComment(text);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
+import static javax.xml.XMLConstants.XML_NS_URI;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.fail;
+import static org.w3c.dom.DOMException.NAMESPACE_ERR;
+import static org.w3c.dom.ptests.DOMTestUtil.DOMEXCEPTION_EXPECTED;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
+import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+/*
+ * @summary Test createAttributeNS, getElementsByTagNameNS and createElementNS method of Document
+ */
+public class DocumentTest extends JAXPFileBaseTest {
+
+    @DataProvider(name = "invalid-nsuri")
+    public Object[][] getInvalidNamespaceURI() {
+        return new Object[][] {
+                { " ", "xml:novel" }, //blank
+                { "hello", "xml:novel" }, //unqualified
+                { null, "xml:novel" }, //null
+                { "", "xmlns:novel" } };//empty
+    }
+
+    /*
+     * Test for createAttributeNS method: verifies that DOMException is thrown
+     * if reserved prefixes are used with an arbitrary namespace name.
+     */
+    @Test(dataProvider = "invalid-nsuri", expectedExceptions = DOMException.class)
+    public void testCreateAttributeNSNeg(String namespaceURI, String name) throws Exception {
+        Document document = createDOMWithNS("DocumentTest01.xml");
+        document.createAttributeNS(namespaceURI, name);
+    }
+
+    @DataProvider(name = "valid-nsuri")
+    public Object[][] getValidNamespaceURI() {
+        return new Object[][] {
+                { XML_NS_URI, "xml:novel" },
+                { XMLNS_ATTRIBUTE_NS_URI, "xmlns:novel" },
+                { "urn:BooksAreUs.org:BookInfo", "attributeNew"},
+                { "urn:BooksAreUs.org:BookInfonew", "attributeNew"} };
+    }
+
+    /*
+     * Verify the Attr from createAttributeNS.
+     */
+    @Test(dataProvider = "valid-nsuri")
+    public void testCreateAttributeNS(String namespaceURI, String name) throws Exception {
+        Document document = createDOMWithNS("DocumentTest01.xml");
+        Attr attr = document.createAttributeNS(namespaceURI, name);
+        assertEquals(attr.getNamespaceURI(), namespaceURI);
+        assertEquals(attr.getName(), name);
+    }
+
+    @DataProvider(name = "elementName")
+    public Object[][] getElementName() {
+        return new Object[][] {
+                { "author", 1 },
+                { "b:author", 0 } };
+    }
+
+    /*
+     * Verify the NodeList from getElementsByTagNameNS.
+     */
+    @Test(dataProvider = "elementName")
+    public void testGetElementsByTagNameNS(String localName, int number) throws Exception {
+        Document document = createDOMWithNS("DocumentTest01.xml");
+        NodeList nodeList = document.getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", localName);
+        assertEquals(nodeList.getLength(), number);
+    }
+
+    /*
+     * Test for createElementNS method: verifies that DOMException is thrown
+     * if reserved prefixes are used with an arbitrary namespace name.
+     */
+    @Test(dataProvider = "invalid-nsuri")
+    public void testCreateElementNSNeg(String namespaceURI, String name) throws Exception {
+        Document document = createDOMWithNS("DocumentTest01.xml");
+        try {
+            document.createElementNS(namespaceURI, name);
+            fail(DOMEXCEPTION_EXPECTED);
+        } catch (DOMException e) {
+            assertEquals(e.code, NAMESPACE_ERR);
+        }
+    }
+
+    /*
+     * Test createElementNS method works as the spec.
+     */
+    @Test
+    public void testCreateElementNS() throws Exception {
+        final String nsURI = "http://www.books.com";
+        final String name = "b:novel";
+        final String localName = "novel";
+        Document document = createDOMWithNS("DocumentTest01.xml");
+        Element element = document.createElementNS(nsURI, name);
+        assertEquals(element.getNamespaceURI(), nsURI);
+        assertEquals(element.getNodeName(), name);
+        assertEquals(element.getLocalName(), localName);
+    }
+
+    /*
+     * Test createAttributeNS and then append it with setAttributeNode.
+     */
+    @Test
+    public void testAddNewAttributeNode() throws Exception {
+        Document document = createDOMWithNS("DocumentTest01.xml");
+
+        NodeList nodeList = document.getElementsByTagNameNS("http://www.w3.org/TR/REC-html40", "body");
+        NodeList childList = nodeList.item(0).getChildNodes();
+        Element child = (Element) childList.item(1);
+        Attr a = document.createAttributeNS("urn:BooksAreUs.org:BookInfo", "attributeNew");
+        child.setAttributeNode(a);
+        assertNotNull(child.getAttributeNodeNS("urn:BooksAreUs.org:BookInfo", "attributeNew"));
+    }
+
+    /*
+     * Test createElementNS and then append it with appendChild.
+     */
+    @Test
+    public void testAddNewElement() throws Exception {
+        Document document = createDOMWithNS("DocumentTest01.xml");
+
+        NodeList nodeList = document.getElementsByTagNameNS("http://www.w3.org/TR/REC-html40", "body");
+        NodeList childList = nodeList.item(0).getChildNodes();
+        Element child = (Element) childList.item(1);
+        Element elem = document.createElementNS("urn:BooksAreUs.org:BookInfonew", "newElement");
+        assertNotNull(child.appendChild(elem));
+    }
+
+    /*
+     * Test createElement with unqualified xml name.
+     */
+    @Test(expectedExceptions = DOMException.class)
+    public void testCreateElementNeg() throws Exception {
+        Document doc = createNewDocument();
+        doc.createElement("!nc$%^*(!");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.NamedNodeMap;
+
+/*
+ * @summary Test DocumentType
+ */
+public class DocumentTypeTest extends JAXPFileBaseTest {
+
+    /*
+     * Test testGetEntities method, and verify the entity items.
+     */
+    @Test
+    public void testGetEntities() throws Exception {
+        DocumentType documentType = createDOM("DocumentType01.xml").getDoctype();
+        NamedNodeMap namedNodeMap = documentType.getEntities();
+        // should return both external and internal. Parameter entities are not
+        // contained. Duplicates are discarded.
+        assertEquals(namedNodeMap.getLength(), 3);
+        assertEquals(namedNodeMap.item(0).getNodeName(), "author");
+        assertEquals(namedNodeMap.item(1).getNodeName(), "test");
+        assertEquals(namedNodeMap.item(2).getNodeName(), "writer");
+    }
+
+    /*
+     * Test getNotations method, and verify the notation items.
+     */
+    @Test
+    public void testGetNotations() throws Exception {
+        DocumentType documentType = createDOM("DocumentType03.xml").getDoctype();
+        NamedNodeMap nm = documentType.getNotations();
+        assertEquals(nm.getLength(), 2); // should return 2 because the notation
+                                         // name is repeated and
+                                         // it considers only the first
+                                         // occurence
+        assertEquals(nm.item(0).getNodeName(), "gs");
+        assertEquals(nm.item(1).getNodeName(), "name");
+    }
+
+    /*
+     * Test getName method.
+     */
+    @Test
+    public void testGetName() throws Exception {
+        DocumentType documentType = createDOM("DocumentType03.xml").getDoctype();
+        assertEquals(documentType.getName(), "note");
+    }
+
+    /*
+     * Test getSystemId and getPublicId method.
+     */
+    @Test
+    public void testGetSystemId() throws Exception {
+        DocumentType documentType = createDOM("DocumentType05.xml").getDoctype();
+        assertEquals(documentType.getSystemId(), "DocumentBuilderImpl02.dtd");
+        Assert.assertNull(documentType.getPublicId());
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import jaxp.library.JAXPBaseTest;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentType;
+
+/*
+ * @summary Test DomImplementation API
+ */
+public class DomImplementationTest extends JAXPBaseTest {
+    /*
+     * Test createDocument method with a namespace uri, qualified name and null
+     * for the doctype
+     */
+    @Test
+    public void testCreateDocument() throws ParserConfigurationException {
+        final String nsURI = "http://www.document.com";
+        final String name = "document:localName";
+        DOMImplementation domImpl = getDOMImplementation();
+        Document document = domImpl.createDocument(nsURI, name, null);
+        assertEquals(document.getDocumentElement().getNamespaceURI(), nsURI);
+        assertEquals(document.getDocumentElement().getNodeName(), name);
+    }
+
+    /*
+     * Test createDocumentType method with name, public id and system id.
+     */
+    @Test
+    public void testCreateDocumentType01() throws ParserConfigurationException {
+        final String name = "document:localName";
+        final String publicId = "pubid";
+        final String systemId = "sysid";
+
+        DOMImplementation domImpl = getDOMImplementation();
+        DocumentType documentType = domImpl.createDocumentType(name, publicId, systemId);
+        verifyDocumentType(documentType, name, publicId, systemId);
+    }
+
+
+    /*
+     * Test createDocument method using a DocumentType, verify the document will
+     * take that Doctype.
+     */
+    @Test
+    public void testCreateDocumentType02() throws ParserConfigurationException {
+        final String name = "document:localName";
+        final String publicId = "-//W3C//DTD HTML 4.0 Transitional//EN";
+        final String systemId = "http://www.w3.org/TR/REC-html40/loose.dtd";
+        DOMImplementation domImpl = getDOMImplementation();
+
+        DocumentType documentType = domImpl.createDocumentType(name, publicId, systemId);
+        Document document = domImpl.createDocument("http://www.document.com", "document:localName", documentType);
+        verifyDocumentType(document.getDoctype(), name, publicId, systemId);
+    }
+
+    @DataProvider(name = "feature-supported")
+    public Object[][] getFeatureSupportedList() throws ParserConfigurationException {
+        DOMImplementation impl = getDOMImplementation();
+        return new Object[][] {
+                { impl, "XML", "2.0", true },
+                { impl, "HTML", "2.0", false },
+                { impl, "Views", "2.0", false },
+                { impl, "StyleSheets", "2.0", false },
+                { impl, "CSS", "2.0", false },
+                { impl, "CSS2", "2.0", false },
+                { impl, "Events", "2.0", true },
+                { impl, "UIEvents", "2.0", false },
+                { impl, "MouseEvents", "2.0", false },
+                { impl, "HTMLEvents", "2.0", false },
+                { impl, "Traversal", "2.0", true },
+                { impl, "Range", "2.0", true },
+                { impl, "Core", "2.0", true },
+                { impl, "XML", "", true } };
+    }
+
+
+    /*
+     * Verify DOMImplementation for feature supporting.
+     */
+    @Test(dataProvider = "feature-supported")
+    public void testHasFeature(DOMImplementation impl, String feature, String version, boolean isSupported) {
+        assertEquals(impl.hasFeature(feature,version), isSupported);
+    }
+
+
+    private DOMImplementation getDOMImplementation() throws ParserConfigurationException {
+        return createNewDocument().getImplementation();
+    }
+
+
+    private void verifyDocumentType(DocumentType documentType, String name, String publicId, String systemId) {
+        assertEquals(documentType.getPublicId(), publicId);
+        assertEquals(documentType.getSystemId(), systemId);
+        assertEquals(documentType.getName(), name);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,253 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static javax.xml.XMLConstants.XML_NS_URI;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+import static org.w3c.dom.DOMException.INUSE_ATTRIBUTE_ERR;
+import static org.w3c.dom.ptests.DOMTestUtil.DOMEXCEPTION_EXPECTED;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
+import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
+
+import java.io.StringReader;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+/*
+ * @summary Test for the methods of Element Interface
+ */
+public class ElementTest extends JAXPFileBaseTest {
+    @Test
+    public void testGetAttributeNS() throws Exception {
+        Document document = createDOMWithNS("ElementSample01.xml");
+        Element elemNode = (Element) document.getElementsByTagName("book").item(0);
+        String s = elemNode.getAttributeNS("urn:BooksAreUs.org:BookInfo", "category");
+        assertEquals(s, "research");
+    }
+
+    @Test
+    public void testGetAttributeNodeNS() throws Exception {
+        Document document = createDOMWithNS("ElementSample01.xml");
+        Element elemNode = (Element) document.getElementsByTagName("book").item(0);
+        Attr attr = elemNode.getAttributeNodeNS("urn:BooksAreUs.org:BookInfo", "category");
+        assertEquals(attr.getValue(), "research");
+
+    }
+
+    /*
+     * Test getAttributeNode to get a Attr and then remove it successfully by
+     * removeAttributeNode.
+     */
+    @Test
+    public void testRemoveAttributeNode() throws Exception {
+        Document document = createDOMWithNS("ElementSample01.xml");
+        Element elemNode = (Element) document.getElementsByTagName("book").item(1);
+        Attr attr = elemNode.getAttributeNode("category1");
+        assertEquals(attr.getValue(), "research");
+
+        assertEquals(elemNode.getTagName(), "book");
+        elemNode.removeAttributeNode(attr);
+        assertEquals(elemNode.getAttribute("category1"), "");
+    }
+
+    /*
+     * Test removing an Attribute Node with removeAttributeNS(String
+     * namespaceURI, String localName).
+     */
+    @Test
+    public void testRemoveAttributeNS() throws Exception {
+        final String nsURI = "urn:BooksAreUs.org:BookInfo";
+        final String localName = "category";
+        Document document = createDOMWithNS("ElementSample01.xml");
+        Element elemNode = (Element) document.getElementsByTagName("book").item(0);
+        elemNode.removeAttributeNS(nsURI, localName);
+
+        assertNull(elemNode.getAttributeNodeNS(nsURI, localName));
+    }
+
+    /*
+     * Test getFirstChild and getLastChild.
+     */
+    @Test
+    public void testGetChild() throws Exception {
+        Document document = createDOMWithNS("ElementSample01.xml");
+        Element elemNode = (Element) document.getElementsByTagName("b:aaa").item(0);
+        elemNode.normalize();
+        Node firstChild = elemNode.getFirstChild();
+        Node lastChild = elemNode.getLastChild();
+        assertEquals(firstChild.getNodeValue(), "fjfjf");
+        assertEquals(lastChild.getNodeValue(), "fjfjf");
+    }
+
+    /*
+     * Test setAttributeNode with an Attr from createAttribute.
+     */
+    @Test
+    public void testSetAttributeNode() throws Exception {
+        final String attrName = "myAttr";
+        final String attrValue = "attrValue";
+        Document document = createDOM("ElementSample02.xml");
+        Element elemNode = document.createElement("pricetag2");
+        Attr myAttr = document.createAttribute(attrName);
+        myAttr.setValue(attrValue);
+
+        assertNull(elemNode.setAttributeNode(myAttr));
+        assertEquals(elemNode.getAttribute(attrName), attrValue);
+    }
+
+    @DataProvider(name = "attribute")
+    public Object[][] getAttributeData() {
+        return new Object[][] {
+                { "thisisname", "thisisitsvalue" },
+                { "style", "font-Family" } };
+    }
+
+    @Test(dataProvider = "attribute")
+    public void testSetAttribute(String name, String value) throws Exception {
+        Document document = createDOM("ElementSample02.xml");
+        Element elemNode = document.createElement("pricetag2");
+        elemNode.setAttribute(name, value);
+        assertEquals(elemNode.getAttribute(name), value);
+    }
+
+    /*
+     * Negative test for setAttribute, null is not a valid name.
+     */
+    @Test(expectedExceptions = DOMException.class)
+    public void testSetAttributeNeg() throws Exception {
+        Document document = createDOM("ElementSample02.xml");
+        Element elemNode = document.createElement("pricetag2");
+        elemNode.setAttribute(null, null);
+    }
+
+    /*
+     * Test setAttributeNode, newAttr can't be an attribute of another Element
+     * object, must explicitly clone Attr nodes to re-use them in other
+     * elements.
+     */
+    @Test
+    public void testDuplicateAttributeNode() throws Exception {
+        final String name = "testAttrName";
+        final String value = "testAttrValue";
+        Document document = createNewDocument();
+        Attr attr = document.createAttribute(name);
+        attr.setValue(value);
+
+        Element element1 = document.createElement("AFirstElement");
+        element1.setAttributeNode(attr);
+        Element element2 = document.createElement("ASecondElement");
+        Attr attr2 = (Attr) attr.cloneNode(true);
+        element2.setAttributeNode(attr2);
+        assertEquals(element1.getAttribute(name), element2.getAttribute(name));
+
+        Element element3 = document.createElement("AThirdElement");
+        try {
+            element3.setAttributeNode(attr);
+            fail(DOMEXCEPTION_EXPECTED);
+        } catch (DOMException doe) {
+            assertEquals(doe.code, INUSE_ATTRIBUTE_ERR);
+        }
+    }
+
+    /*
+     * If not setting the namsepace aware method of DocumentBuilderFactory to
+     * true, can't retrieve element by namespace and local name.
+     */
+    @Test
+    public void testNamespaceAware() throws Exception {
+        Document document = createDOM("ElementSample02.xml");
+
+        NodeList nl = document.getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", "author");
+        assertNull(nl.item(0));
+
+        nl = document.getDocumentElement().getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", "author");
+        assertNull(nl.item(0));
+    }
+
+    @DataProvider(name = "nsattribute")
+    public Object[][] getNSAttributeData() {
+        return new Object[][] {
+                { "h:html", "html", "attrValue" },
+                { "b:style", "style",  "attrValue" } };
+    }
+
+    /*
+     * setAttributeNodeNS and verify it with getAttributeNS.
+     */
+    @Test(dataProvider = "nsattribute")
+    public void testSetAttributeNodeNS(String qualifiedName, String localName, String value) throws Exception {
+        Document document = createDOM("ElementSample03.xml");
+        Element elemNode = document.createElement("pricetag2");
+        Attr myAttr = document.createAttributeNS(XML_NS_URI, qualifiedName);
+        myAttr.setValue(value);
+        assertNull(elemNode.setAttributeNodeNS(myAttr));
+        assertEquals(elemNode.getAttributeNS(XML_NS_URI, localName), value);
+    }
+
+    @Test
+    public void testHasAttributeNS() throws Exception {
+        Document document = createDOMWithNS("ElementSample04.xml");
+        NodeList nodeList = document.getElementsByTagName("body");
+        NodeList childList = nodeList.item(0).getChildNodes();
+        Element child = (Element) childList.item(7);
+        assertTrue(child.hasAttributeNS("urn:BooksAreUs.org:BookInfo", "style"));
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        final String xml =
+                "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+                + "<!DOCTYPE datacenterlist>"
+                + "<datacenterlist>"
+                + "  <datacenterinfo"
+                + "    id=\"0\""
+                + "    naddrs=\"1\""
+                + "    nnodes=\"1\""
+                + "    ismaster=\"0\">\n"
+                + "    <gateway ipaddr=\"192.168.100.27:26000\"/>"
+                + "  </datacenterinfo>"
+                + "</datacenterlist>";
+
+        Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
+        Element root = doc.getDocumentElement();
+
+        assertEquals(root.toString(), "[datacenterlist: null]");
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.XML_DIR;
+
+import java.io.File;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+/*
+ * @summary Test DOM Parser: parsing an xml file that contains external entities.
+ */
+public class EntityChildTest extends JAXPFileBaseTest {
+
+    @Test
+    public void test() throws Exception {
+
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setValidating(true);
+        DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+        Document document = docBuilder.parse(new File(XML_DIR + "entitychild.xml"));
+
+        Element root = document.getDocumentElement();
+        NodeList n = root.getElementsByTagName("table");
+        NodeList nl = n.item(0).getChildNodes();
+        assertEquals(n.getLength(), 1);
+        assertEquals(nl.getLength(), 3);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/*
+ * @summary Test for the methods of NamedNodeMap Interface
+ */
+public class NamedNodeMapTest extends JAXPFileBaseTest {
+    /*
+     * Test setNamedItemNS method with a node having the same namespaceURI and
+     * qualified name as an existing one, and then test with a non-existing node.
+     */
+    @Test
+    public void testSetNamedItemNS() throws Exception {
+        final String nsURI = "urn:BooksAreUs.org:BookInfo";
+        Document document = createDOMWithNS("NamedNodeMap01.xml");
+        NodeList nodeList = document.getElementsByTagName("body");
+        nodeList = nodeList.item(0).getChildNodes();
+        Node n = nodeList.item(3);
+
+        NamedNodeMap namedNodeMap = n.getAttributes();
+
+        // creating an Attribute using createAttributeNS
+        // method having the same namespaceURI
+        // and the same qualified name as the existing one in the xml file
+        Attr attr = document.createAttributeNS(nsURI, "b:style");
+        // setting to a new Value
+        attr.setValue("newValue");
+        Node replacedAttr = namedNodeMap.setNamedItemNS(attr); // return the replaced attr
+        assertEquals(replacedAttr.getNodeValue(), "font-family");
+        Node updatedAttr = namedNodeMap.getNamedItemNS(nsURI, "style");
+        assertEquals(updatedAttr.getNodeValue(), "newValue");
+
+
+        // creating a non existing attribute node
+        attr = document.createAttributeNS(nsURI, "b:newNode");
+        attr.setValue("newValue");
+
+        assertNull(namedNodeMap.setNamedItemNS(attr)); // return null
+
+        // checking if the node could be accessed
+        // using the getNamedItemNS method
+        Node newAttr = namedNodeMap.getNamedItemNS(nsURI, "newNode");
+        assertEquals(newAttr.getNodeValue(), "newValue");
+    }
+
+    /*
+     * Verify getNamedItemNS works as the spec
+     */
+    @Test
+    public void testGetNamedItemNS() throws Exception {
+        Document document = createDOMWithNS("NamedNodeMap03.xml");
+        NodeList nodeList = document.getElementsByTagName("body");
+        nodeList = nodeList.item(0).getChildNodes();
+        Node n = nodeList.item(7);
+        NamedNodeMap namedNodeMap = n.getAttributes();
+        Node node = namedNodeMap.getNamedItemNS("urn:BooksAreUs.org:BookInfo", "aaa");
+        assertEquals(node.getNodeValue(), "value");
+
+    }
+
+    /*
+     * Test setNamedItem method with a node having the same name as an existing
+     * one, and then test with a non-existing node.
+     */
+    @Test
+    public void testSetNamedItem() throws Exception {
+        Document document = createDOMWithNS("NamedNodeMap03.xml");
+        NodeList nodeList = document.getElementsByTagName("body");
+        nodeList = nodeList.item(0).getChildNodes();
+        Node n = nodeList.item(1);
+
+        NamedNodeMap namedNodeMap = n.getAttributes();
+        Attr attr = document.createAttribute("name");
+        Node replacedAttr = namedNodeMap.setNamedItem(attr);
+        assertEquals(replacedAttr.getNodeValue(), "attributeValue");
+        Node updatedAttrNode = namedNodeMap.getNamedItem("name");
+        assertEquals(updatedAttrNode.getNodeValue(), "");
+
+        Attr newAttr = document.createAttribute("nonExistingName");
+        assertNull(namedNodeMap.setNamedItem(newAttr));
+        Node newAttrNode = namedNodeMap.getNamedItem("nonExistingName");
+        assertEquals(newAttrNode.getNodeValue(), "");
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+/*
+ * @summary Verifies a bug found in jaxp1.0.1 and 1.1FCS. After going out of
+ * bound, the last element of a NodeList returns null. The bug has been fixed
+ * in jaxp 1.1.1 build.
+ */
+public class NodeListTest extends JAXPFileBaseTest {
+
+    @DataProvider(name = "xml")
+    public Object[][] getTestData() {
+        return new Object[][] { { "nodelist.xml", "document" }, { "Node01.xml", "body" } };
+    }
+
+    @Test(dataProvider = "xml")
+    public void lastItemTest(String xmlFileName, String nodeName) throws Exception {
+        Document document = createDOM(xmlFileName);
+
+        NodeList nl = document.getElementsByTagName(nodeName);
+        int n = nl.getLength();
+
+        Element elem1 = (Element) nl.item(n - 1);
+        nl.item(n);
+        Element elem3 = (Element) nl.item(n - 1);
+        assertEquals(elem3, elem1);
+
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static jaxp.library.JAXPTestUtilities.compareWithGold;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotEquals;
+import static org.testng.Assert.assertTrue;
+import static org.w3c.dom.ptests.DOMTestUtil.GOLDEN_DIR;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
+import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
+
+import java.io.File;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/*
+ * @summary Test Node interface
+ */
+public class NodeTest extends JAXPFileBaseTest {
+    @DataProvider(name = "feature-supported")
+    public Object[][] getFeatureSupportedList() throws Exception {
+        Document document = createDOMWithNS("Node01.xml");
+        Node node = document.getElementsByTagName("body").item(0);
+        return new Object[][] {
+                { node, "XML", "2.0", true },
+                { node, "HTML", "2.0", false },
+                { node, "Views", "2.0", false },
+                { node, "StyleSheets", "2.0", false },
+                { node, "CSS", "2.0", false },
+                { node, "CSS2", "2.0", false },
+                { node, "Events", "2.0", true },
+                { node, "UIEvents", "2.0", false },
+                { node, "MouseEvents", "2.0", false },
+                { node, "HTMLEvents", "2.0", false },
+                { node, "Traversal", "2.0", true },
+                { node, "Range", "2.0", true } };
+    }
+
+    /*
+     * Verify Node for feature supporting.
+     */
+    @Test(dataProvider = "feature-supported")
+    public void testHasFeature(Node node, String feature, String version, boolean supported) {
+        assertEquals(node.isSupported(feature, version), supported);
+    }
+
+    /*
+     * Test normalize method will merge adjacent Text nodes.
+     */
+    @Test
+    public void testNormalize() throws Exception {
+        Document document = createDOM("Node05.xml");
+
+        Element root = document.getDocumentElement();
+
+        Node node =  document.getElementsByTagName("title").item(0);
+        node.appendChild(document.createTextNode("test"));
+        root.normalize();
+        assertEquals(node.getChildNodes().item(0).getNodeValue(), "Typographytest");
+    }
+
+    /*
+     * Test cloneNode deeply, and the clone node can be appended on the same document.
+     */
+    @Test
+    public void testCloneNode() throws Exception {
+        Document document = createDOMWithNS("Node02.xml");
+
+        NodeList nodeList = document.getElementsByTagName("body");
+        Node node = nodeList.item(0);
+        Node cloneNode = node.cloneNode(true);
+
+        assertTrue(node.isEqualNode(cloneNode));
+        assertNotEquals(node, cloneNode);
+
+        nodeList = document.getElementsByTagName("html");
+        Node node2 = nodeList.item(0);
+        node2.appendChild(cloneNode);
+    }
+
+    /*
+     * Test importing node from one document to another.
+     */
+    @Test
+    public void testImportNode() throws Exception {
+        Document document = createDOMWithNS("Node02.xml");
+        Document otherDocument = createDOMWithNS("ElementSample01.xml");
+
+        NodeList otherNodeList = otherDocument.getElementsByTagName("body");
+        Node importedNode = otherNodeList.item(0);
+        Node clone = importedNode.cloneNode(true);
+
+        Node retNode = document.importNode(importedNode, true);
+        assertTrue(clone.isEqualNode(importedNode)); //verify importedNode is not changed
+        assertNotEquals(retNode, importedNode);
+        assertTrue(importedNode.isEqualNode(retNode));
+
+        retNode = document.importNode(importedNode, false);
+        assertTrue(clone.isEqualNode(importedNode)); //verify importedNode is not changed
+        assertEquals(retNode.getNodeName(), importedNode.getNodeName());
+        assertFalse(importedNode.isEqualNode(retNode));
+    }
+
+    /*
+     * Test inserting a document fragment before a particular node.
+     */
+    @Test
+    public void testInsertBefore() throws Exception {
+        Document document = createDOM("Node04.xml");
+
+        Element parentElement = (Element) document.getElementsByTagName("to").item(0);
+        Element element = (Element) document.getElementsByTagName("sender").item(0);
+        parentElement.insertBefore(createTestDocumentFragment(document), element);
+
+        String outputfile = "InsertBefore.out";
+        String goldfile = GOLDEN_DIR + "InsertBeforeGF.out";
+        outputXml(document, outputfile);
+        assertTrue(compareWithGold(goldfile, outputfile));
+    }
+
+
+    /*
+     * Test replacing a particular node with a document fragment.
+     */
+    @Test
+    public void testReplaceChild() throws Exception {
+        Document document = createDOM("Node04.xml");
+
+        Element parentElement = (Element) document.getElementsByTagName("to").item(0);
+        Element element = (Element) document.getElementsByTagName("sender").item(0);
+        parentElement.replaceChild(createTestDocumentFragment(document), element);
+
+        String outputfile = "ReplaceChild3.out";
+        String goldfile = GOLDEN_DIR + "ReplaceChild3GF.out";
+        outputXml(document, outputfile);
+        assertTrue(compareWithGold(goldfile, outputfile));
+    }
+
+    /*
+     * This test case checks for the replaceChild replacing a particular node
+     * with a node which was created from a different document than the one
+     * which is trying to use this method. It should throw a DOMException.
+     */
+    @Test(expectedExceptions = DOMException.class)
+    public void testReplaceChildNeg() throws Exception {
+        Document document = createDOM("Node04.xml");
+        Document doc2 = createNewDocument();
+
+        Element parentElement = (Element) document.getElementsByTagName("to").item(0);
+        Element element = (Element) document.getElementsByTagName("sender").item(0);
+        parentElement.replaceChild(createTestDocumentFragment(doc2), element);
+    }
+
+    private DocumentFragment createTestDocumentFragment(Document document) {
+        DocumentFragment docFragment = document.createDocumentFragment();
+        Element elem = document.createElement("dfElement");
+        elem.appendChild(document.createTextNode("Text in it"));
+        docFragment.appendChild(elem);
+        return docFragment;
+    }
+
+    private void outputXml(Document document, String outputFileName) throws TransformerFactoryConfigurationError, TransformerException {
+        DOMSource domSource = new DOMSource(document);
+        Transformer transformer = TransformerFactory.newInstance().newTransformer();
+        StreamResult streamResult = new StreamResult(new File(outputFileName));
+        transformer.transform(domSource, streamResult);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Notation;
+import org.xml.sax.SAXException;
+
+/*
+ * @summary Test for Notation interface
+ */
+public class NotationTest extends JAXPFileBaseTest {
+    /*
+     * Test getSystemId method.
+     */
+    @Test
+    public void testGetSystemId() throws Exception {
+        assertEquals(findNotation("gs").getSystemId(), "http://who.knows.where/");
+    }
+
+    /*
+     * Test getPublicId method.
+     */
+    @Test
+    public void testGetPublicId() throws Exception {
+        assertEquals(findNotation("pubname").getPublicId(), "pubId");
+    }
+
+    //find notation in Notation01.xml
+    private Notation findNotation(String name) throws SAXException, IOException, ParserConfigurationException {
+        Document document = createDOM("Notation01.xml");
+        NamedNodeMap nm = document.getDoctype().getNotations();
+        for (int i = 0; i < nm.getLength(); i++) {
+            if (nm.item(i).getNodeName().equals(name)) {
+                return (Notation) nm.item(i);
+            }
+        }
+        throw new RuntimeException("Notation: '" + name + "' not found.");
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.ProcessingInstruction;
+
+/*
+ * @summary Test for the methods of Processing Instruction
+ */
+public class PITest extends JAXPFileBaseTest {
+    /*
+     * Test getData, setData and getTarget methods
+     */
+    @Test
+    public void test() throws Exception {
+        Document document = createDOMWithNS("PITest01.xml");
+        ProcessingInstruction pi = document.createProcessingInstruction("PI", "processing");
+        assertEquals(pi.getData(), "processing");
+        assertEquals(pi.getTarget(), "PI");
+
+        pi.setData("newProcessing");
+        assertEquals(pi.getData(), "newProcessing");
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
+import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.CharacterData;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+import org.xml.sax.SAXException;
+
+/*
+ * @summary Test for Text implementation returned by Document.createTextNode(String)
+ */
+public class TextTest extends AbstractCharacterDataTest {
+    /*
+     * Verify splitText method works as the spec.
+     */
+    @Test
+    public void testSplitText() throws Exception {
+        Document document = createDOMWithNS("Text01.xml");
+
+        NodeList nodeList = document.getElementsByTagName("p");
+        Node node = nodeList.item(0);
+        Text textNode = document.createTextNode("This is a text node");
+        node.appendChild(textNode);
+        int rawChildNum = node.getChildNodes().getLength();
+
+        textNode.splitText(0);
+        int increased = node.getChildNodes().getLength() - rawChildNum;
+        assertEquals(increased, 1);
+
+    }
+
+    @Override
+    protected CharacterData createCharacterData(String text) throws IOException, SAXException, ParserConfigurationException {
+        Document document = createNewDocument();
+        return document.createTextNode(text);
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static org.testng.Assert.assertEquals;
+
+import java.io.StringReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import jaxp.library.JAXPBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.TypeInfo;
+import org.xml.sax.InputSource;
+
+/*
+ * @summary Test getTypeName and getTypeNamespace methods of TypeInfo interface
+ */
+public class TypeInfoTest extends JAXPBaseTest {
+    /*
+     * Get the TypeInfo of the root element, and verify it.
+     */
+    @Test
+    public void test() throws Exception {
+        TypeInfo typeInfo = getTypeOfRoot(SCHEMA_INSTANCE, "<?xml version='1.0'?>\n" + "<test1 xmlns=\"testNS\"><code/></test1>\n");
+
+        assertEquals(typeInfo.getTypeName(), "Test");
+        assertEquals(typeInfo.getTypeNamespace(), "testNS");
+
+    }
+
+    private TypeInfo getTypeOfRoot(String schemaText, String docText) throws Exception {
+        Element root = getRoot(schemaText, docText);
+        return root.getSchemaTypeInfo();
+    }
+
+    private Element getRoot(String schemaText, String docText) throws Exception {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+        InputSource inSchema = new InputSource(new StringReader(schemaText));
+        inSchema.setSystemId("schema.xsd");
+        dbf.setNamespaceAware(true);
+        dbf.setValidating(true);
+        dbf.setAttribute(SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        dbf.setAttribute(SCHEMA_SOURCE, inSchema);
+
+        DocumentBuilder parser = dbf.newDocumentBuilder();
+
+        InputSource inSource = new InputSource(new StringReader(docText));
+        inSource.setSystemId("doc.xml");
+        Document document = parser.parse(inSource);
+
+        return document.getDocumentElement();
+    }
+
+    private static final String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+
+    private static final String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
+
+    /*
+     * Schema instance
+     */
+    private static final String SCHEMA_INSTANCE =
+            "<?xml version=\"1.0\"?>\n"
+            + "<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n"
+            + "            xmlns:testNS=\"testNS\"\n"
+            + "            targetNamespace=\"testNS\" elementFormDefault=\"qualified\">\n"
+            + "    <xsd:element name=\"test1\" type=\"testNS:Test\"/>\n"
+            + "    \n"
+            + "    <xsd:complexType name=\"Test\">\n"
+            + "        <xsd:sequence>\n"
+            + "            <xsd:element name=\"description\" minOccurs=\"0\"/>\n"
+            + "            <xsd:element name=\"code\"/>\n"
+            + "        </xsd:sequence>\n"
+            + "    </xsd:complexType>\n"
+            + "\n"
+            + "    <xsd:element name=\"test2\">\n"
+            + "        <xsd:complexType>\n"
+            + "            <xsd:sequence>\n"
+            + "                <xsd:element name=\"description\" minOccurs=\"0\"/>\n"
+            + "                <xsd:element name=\"code\"/>\n"
+            + "            </xsd:sequence>\n"
+            + "        </xsd:complexType>\n"
+            + "    </xsd:element>\n"
+            + "\n"
+            + "    <xsd:element name=\"test3\" type=\"xsd:string\"/>\n"
+            + "\n"
+            + "    <xsd:element name=\"test4\" type=\"testNS:Test1\"/>\n"
+            + "\n"
+            + "    <xsd:simpleType name=\"Test1\">\n"
+            + "        <xsd:restriction base=\"xsd:string\"/>\n"
+            + "    </xsd:simpleType>\n"
+            + "\n"
+            + "    <xsd:element name=\"test5\">\n"
+            + "        <xsd:simpleType>\n"
+            + "            <xsd:restriction base=\"xsd:string\"/>\n"
+            + "        </xsd:simpleType>\n"
+            + "    </xsd:element>\n"
+            + "\n"
+            + "    <xsd:element name=\"test6\">\n"
+            + "        <xsd:complexType>\n"
+            + "            <xsd:complexContent>\n"
+            + "                <xsd:extension base=\"testNS:Test\">\n"
+            + "                    <xsd:attribute name=\"attr\" type=\"xsd:string\"/>\n"
+            + "                </xsd:extension>\n"
+            + "            </xsd:complexContent>\n"
+            + "        </xsd:complexType>\n"
+            + "    </xsd:element>\n"
+            + "\n"
+            + "</xsd:schema>\n";
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Attr01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <b:aaa>fjfjf</b:aaa>
+  </body>
+  <book b:category="research">Numerical Analysis of Partial Differential Equations</book>
+ <book category1="research">Numerical Analysis of Partial Differential Equations</book>
+
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Attr2.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Book
+[
+        <!ELEMENT Name (#PCDATA)>
+        <!ATTLIST Name type CDATA "fiction">
+       
+]>
+
+<Book>
+  <Name>World's best book </Name>
+</Book>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Attr3.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Book
+[
+        <!ELEMENT Name (#PCDATA)>
+        <!ATTLIST Name type CDATA #IMPLIED>
+]>
+
+<Book>
+  <Name>World's best book </Name>
+</Book>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Comment01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p></p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/DocumentBuilderImpl02.dtd	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,12 @@
+<!ELEMENT document ANY>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT publisher (#PCDATA)>
+<!ELEMENT book (#PCDATA)>
+<!ELEMENT bookurn (#PCDATA)>
+<!ATTLIST book price CDATA "$100">
+<!ATTLIST book author CDATA "Herold">
+<!ATTLIST book number ID #REQUIRED>
+<!ATTLIST bookurn xmlns CDATA "10">
+<!ATTLIST bookurn xmlns:isbn CDATA "10">
+<!ENTITY w "William">
+<!ENTITY s "Shakespeare">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/DocumentTest01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+ <html xmlns:h="http://www.w3.org/TR/REC-html40"
+       xmlns:b="urn:BooksAreUs.org:BookInfo">
+   <h:head>
+     <h:title>Typography</h:title>
+   </h:head>
+   <h:body>
+     <h:p>Welcome to the world of typography! Here is a book that you may find useful.</h:p>
+     <b:title h:style="font-family: sans-serif;">Digital Typography</b:title> 
+     <b:author>Donald Knuth</b:author>
+ </h:body>
+ </html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/DocumentType01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE note [                           
+<!ELEMENT note    (to,from,heading,body)>
+<!ELEMENT to      (#PCDATA)>
+<!ENTITY writer "Albert Einstein">
+<!ENTITY author "Albert Einstein">
+<!ENTITY test SYSTEM "test.txt">
+<!ENTITY % test2 "test2">
+<!ENTITY author "author">
+]>                         
+<note>
+<to>&writer;</to>
+
+</note> 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/DocumentType03.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE note [                           
+<!ELEMENT note    (to,from,heading,body)>
+<!ELEMENT to      (#PCDATA)>
+<!NOTATION gs SYSTEM "GhostScript">
+
+
+ <!NOTATION name PUBLIC "pubId">
+
+
+ <!NOTATION name PUBLIC "pubId" "sysId">
+
+
+ <!NOTATION name SYSTEM "sysId">
+]>                         
+<note>
+<to>lll</to>
+
+</note> 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/DocumentType05.dtd	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,12 @@
+<!ELEMENT document ANY>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT publisher (#PCDATA)>
+<!ELEMENT book (#PCDATA)>
+<!ELEMENT bookurn (#PCDATA)>
+<!ATTLIST book price CDATA "$100">
+<!ATTLIST book author CDATA "Herold">
+<!ATTLIST book number ID #REQUIRED>
+<!ATTLIST bookurn xmlns CDATA "10">
+<!ATTLIST bookurn xmlns:isbn CDATA "10">
+<!ENTITY w "William">
+<!ENTITY s "Shakespeare">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/DocumentType05.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,28 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE document SYSTEM "DocumentBuilderImpl02.dtd">
+<document>
+
+        Publishers of the Music of New York Women Composers
+
+        <title>The Publishers </title>
+
+        <publisher>
+        Alfred Publishing
+        &w;
+        15535 Morrison
+        South Oaks CA 91403
+        </publisher>
+
+        <book price="$100" author = "Herold" number = "no_11">
+                eXtensible Markup Language
+        </book>
+
+        <bookurn xmlns='urn:loc.gov:books'
+                   xmlns:isbn='urn:ISBN:0-395-36341-6'/>
+       
+
+        Publishers are not noted in report by time.
+
+</document>
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/ElementSample01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <b:aaa>fjfjf</b:aaa>
+  </body>
+  <book b:category="research">Numerical Analysis of Partial Differential Equations</book>
+ <book category1="research">Numerical Analysis of Partial Differential Equations</book>
+
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/ElementSample02.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p style = "font-family"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <b:aaa>fjfjf</b:aaa>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/ElementSample03.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title b:style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <b:aaa>fjfjf</b:aaa>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/ElementSample04.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title b:style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <b:aaa b:style="font-family">this is it</b:aaa>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/NamedNodeMap01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <world b:style="font-family">Digital Typography</world> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/NamedNodeMap03.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Node01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <world b:style="font-family">Digital Typography</world> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Node02.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Node04.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<note>
+<to>
+<sender>John</sender>
+</to>
+<with>message   </with>
+<body> weekend!</body>
+</note> 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Node05.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<html>
+  <head>
+    <title>Typography</title>
+</head>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Notation01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE note [                           
+<!ELEMENT note    (to,from,heading,body)>
+<!ELEMENT to      (#PCDATA)>
+<!NOTATION gs SYSTEM "http://who.knows.where/">
+
+
+ <!NOTATION pubname PUBLIC "pubId">
+
+
+ <!NOTATION comname PUBLIC "pubId" "sysId">
+
+
+ <!NOTATION name SYSTEM "http://who.knows.where/">
+]>                         
+<note>
+<to>lll</to>
+
+</note> 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/PITest01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
+    <world b:style="font-family">Digital Typography</world> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/Text01.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/REC-html40"
+      xmlns:b="urn:BooksAreUs.org:BookInfo">
+  <head>
+    <title>Typography</title>
+  </head>
+
+  <body>
+    <p></p>
+    <b:title style="font-family: sans-serif;">Digital Typography</b:title> 
+    <b:author>Donald Knuth</b:author>
+    <book b:aaa ="value">fjfjf</book>
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/ee.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<table name="table">
+<column name="Column" expr="col">
+&mkm;
+</column>
+</table>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/entitychild.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE main [
+<!ELEMENT main (table)*>
+<!ELEMENT table (column)*>
+<!ATTLIST table name NMTOKEN #REQUIRED>
+<!ELEMENT column ANY>
+<!ATTLIST column name NMTOKEN #REQUIRED>
+<!ATTLIST column expr CDATA #REQUIRED>
+<!ENTITY mkm "mkrishnamohan">
+<!ENTITY ee SYSTEM "ee.xml">
+]>
+
+<main>
+&ee;
+</main>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/nodelist.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,2 @@
+<?xml version="1.0" standalone="no"?>
+<document>onenode</document>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/out/InsertBeforeGF.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><note>
+<to>
+<dfElement>Text in it</dfElement><sender>John</sender>
+</to>
+<with>message   </with>
+<body> weekend!</body>
+</note>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/xmlfiles/out/ReplaceChild3GF.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><note>
+<to>
+<dfElement>Text in it</dfElement>
+</to>
+<with>message   </with>
+<body> weekend!</body>
+</note>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static java.lang.String.valueOf;
+import static org.testng.Assert.assertEquals;
+import static test.astro.AstroConstants.ASTROCAT;
+import static test.astro.AstroConstants.GOLDEN_DIR;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+
+import javax.xml.transform.sax.TransformerHandler;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/*
+ * @summary run astro application, test xslt
+ *
+ * There are vast amounts of textual astronomical data, typically user is
+ * interested in a small subset, which is the result from carrying out a query.
+ * A query can be composed of one or more filters, for example, the user could
+ * query the database for all stars of visual magnitude down to 6.5 that lie
+ * between right ascensions 0 h to 2 h, and between declinations of 45 to 90 degrees.
+ *
+ * Astro application uses JAXP to query astronomical data saved in an XML dataset.
+ * A FilterFactory implementation creates filter(A filter is an instance of a JAXP
+ * TransformerHandler) from an XSL stylesheet.
+ * A InputSourceFactory implementation creates a new sax input source from an XML file.
+ * AstroProcessor leverages InputSourceFactory to parse catalog.xml, which saves
+ * textual astronomical data, and then creates filters with specified parameters
+ * from FilterFactory, all of the filters are chained together, AstroProcessor
+ * appends the HTML filter at the end of filter chain, and hooks up the chain to
+ * the input source, finally processes and outputs to the user specified output file.
+ *
+ * AstroTest drives AstroProcessor to run the specified queries(total 4 in setup),
+ * and then compares the output with the golden files to determine PASS or FAIL.
+ * It provides variant implementations of FilterFactory and InputSourceFactory to
+ * AstroProcessor to test different JAXP classes and features.
+ *
+ */
+public class AstroTest extends JAXPFileBaseTest {
+    private FiltersAndGolden[] data;
+
+    @BeforeClass
+    public void setup() throws Exception {
+        data = new FiltersAndGolden[4];
+        data[0] = new FiltersAndGolden(getGoldenFileContent(1), astro -> astro.getRAFilter(0.106, 0.108));
+        data[1] = new FiltersAndGolden(getGoldenFileContent(2), astro -> astro.getStellarTypeFilter("K0IIIbCN-0.5"));
+        data[2] = new FiltersAndGolden(getGoldenFileContent(3), astro -> astro.getStellarTypeFilter("G"), astro -> astro.getDecFilter(-5.0, 60.0));
+        data[3] = new FiltersAndGolden(getGoldenFileContent(4), astro -> astro.getRADECFilter(0.084, 0.096, -5.75, 14.0));
+    }
+
+    /*
+     * Provide permutations of InputSourceFactory and FilterFactory for test.
+     */
+    @DataProvider(name = "factories")
+    public Object[][] getQueryFactories() {
+        return new Object[][] {
+                { StreamFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { SAXFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { DOMFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { TemplatesFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { StreamFilterFactoryImpl.class, DOML3InputSourceFactoryImpl.class } };
+    }
+
+    @Test(dataProvider = "factories")
+    public void test(Class<FilterFactory> fFactClass, Class<InputSourceFactory> isFactClass) throws Exception {
+        System.out.println(fFactClass.getName() +" : " + isFactClass.getName());
+        AstroProcessor astro = new AstroProcessor(fFactClass, ASTROCAT, isFactClass);
+
+        for (int i = 0; i < data.length; i++) {
+            runProcess(astro, valueOf(i + 1), data[i].getGolden(), data[i].getFilters());
+        }
+    }
+
+    private void runProcess(AstroProcessor astro, String processNum, List<String> goldenfileContent, FilterCreator... filterCreators) throws Exception {
+        System.out.println("run process " + processNum);
+        TransformerHandler[] filters = new TransformerHandler[filterCreators.length];
+        for (int i = 0; i < filterCreators.length; i++)
+            filters[i] = filterCreators[i].createFilter(astro);
+
+        String outputfile = Files.createTempFile(Paths.get("").toAbsolutePath(), "query" + processNum + ".out.", null).toString();
+        System.out.println("output file: " + outputfile);
+        astro.process(outputfile, filters);
+        assertEquals(Files.readAllLines(Paths.get(outputfile)), goldenfileContent);
+    }
+
+    private List<String>  getGoldenFileContent(int num) throws IOException {
+        return Files.readAllLines(Paths.get(GOLDEN_DIR + "query" + num + ".out"));
+    }
+
+    @FunctionalInterface
+    private interface FilterCreator {
+        TransformerHandler createFilter(AstroProcessor astro) throws Exception;
+    }
+
+    private static class FiltersAndGolden {
+        private FilterCreator[] filters;
+        private List<String> golden;
+
+        FiltersAndGolden(List<String> golden, FilterCreator... filters) {
+            this.filters = filters;
+            this.golden = golden;
+        }
+
+        FilterCreator[] getFilters() {
+            return filters;
+        }
+
+        List<String> getGolden() {
+            return golden;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.w3c.dom.ls.DOMImplementationLS.MODE_SYNCHRONOUS;
+import static test.astro.AstroConstants.ASTROCAT;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Writer;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.ls.DOMImplementationLS;
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSOutput;
+import org.w3c.dom.ls.LSParser;
+import org.w3c.dom.ls.LSSerializer;
+
+/*
+ * @summary org.w3c.dom.ls tests
+ */
+public class DocumentLSTest extends JAXPFileBaseTest {
+    /*
+     * Test creating an empty Document
+     */
+    @Test
+    public void testNewDocument() throws ParserConfigurationException {
+        Document doc = getDocumentBuilder().newDocument();
+        assertNull(doc.getDocumentElement());
+    }
+
+    /*
+     * Test creating an LSInput instance, and parsing ByteStream
+     */
+    @Test
+    public void testLSInputParsingByteStream() throws Exception {
+        DOMImplementationLS impl = (DOMImplementationLS) getDocumentBuilder().getDOMImplementation();
+        LSParser domParser = impl.createLSParser(MODE_SYNCHRONOUS, null);
+        LSInput src = impl.createLSInput();
+
+        try (InputStream is = new FileInputStream(ASTROCAT)) {
+            src.setByteStream(is);
+            assertNotNull(src.getByteStream());
+            // set certified accessor methods
+            boolean origCertified = src.getCertifiedText();
+            src.setCertifiedText(true);
+            assertTrue(src.getCertifiedText());
+            src.setCertifiedText(origCertified); // set back to orig
+
+            src.setSystemId(filenameToURL(ASTROCAT));
+
+            Document doc = domParser.parse(src);
+            Element result = doc.getDocumentElement();
+            assertEquals(result.getTagName(), "stardb");
+        }
+    }
+
+    /*
+     * Test creating an LSInput instance, and parsing String
+     */
+    @Test
+    public void testLSInputParsingString() throws Exception {
+        DOMImplementationLS impl = (DOMImplementationLS) getDocumentBuilder().getDOMImplementation();
+        String xml = "<?xml version='1.0'?><test>runDocumentLS_Q6</test>";
+
+        LSParser domParser = impl.createLSParser(MODE_SYNCHRONOUS, null);
+        LSSerializer domSerializer = impl.createLSSerializer();
+        // turn off xml decl in serialized string for comparison
+        domSerializer.getDomConfig().setParameter("xml-declaration", Boolean.FALSE);
+        LSInput src = impl.createLSInput();
+        src.setStringData(xml);
+        assertEquals(src.getStringData(), xml);
+
+        Document doc = domParser.parse(src);
+        String result = domSerializer.writeToString(doc);
+
+        assertEquals(result, "<test>runDocumentLS_Q6</test>");
+    }
+
+    /*
+     * Test writing with an LSOutput instance
+     */
+    @Test
+    public void testLSOutput() throws Exception {
+        DocumentBuilder db = getDocumentBuilder();
+        // Create the Document using the supplied builder...
+        Document doc = db.parse(ASTROCAT);
+
+        DOMImplementationLS impl = null;
+
+        impl = (DOMImplementationLS) db.getDOMImplementation();
+        LSSerializer domSerializer = impl.createLSSerializer();
+        MyDOMOutput mydomoutput = new MyDOMOutput();
+        try (OutputStream os = new FileOutputStream("test.out")) {
+            mydomoutput.setByteStream(os);
+            mydomoutput.setEncoding("UTF-8");
+            assertTrue(domSerializer.write(doc, mydomoutput));
+        }
+    }
+
+    private static class MyDOMOutput implements LSOutput {
+        private OutputStream bytestream = null;
+        private String encoding = null;
+        private String sysId = null;
+        private Writer writer = null;
+
+        public OutputStream getByteStream() {
+            return bytestream;
+        }
+
+        public Writer getCharacterStream() {
+            return writer;
+        }
+
+        public String getEncoding() {
+            return encoding;
+        }
+
+        public String getSystemId() {
+            return sysId;
+        }
+
+        public void setByteStream(OutputStream bs) {
+            bytestream = bs;
+        }
+
+        public void setCharacterStream(Writer cs) {
+            writer = cs;
+        }
+
+        public void setEncoding(String enc) {
+            encoding = enc;
+        }
+
+        public void setSystemId(String sysId) {
+            this.sysId = sysId;
+        }
+    }
+
+    private DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        return dbf.newDocumentBuilder();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static javax.xml.XMLConstants.DEFAULT_NS_PREFIX;
+import static javax.xml.XMLConstants.NULL_NS_URI;
+import static org.testng.Assert.assertEquals;
+
+import javax.xml.namespace.QName;
+
+import jaxp.library.JAXPBaseTest;
+
+import org.testng.annotations.Test;
+
+/*
+ * @summary javax.xml.namespace.QName tests
+ */
+public class NamespaceContextTest extends JAXPBaseTest {
+    private static final String PREFIX = "astro";
+    private static final String LOCAL_PART = "stardb";
+    private static final String NS_URI = "http://www.astro.com";
+
+    /*
+     * Test QName(String, String, String) and accessors.
+     */
+    @Test
+    public void testQNameConstructor() {
+        QName qname = new QName(NS_URI, LOCAL_PART, PREFIX);
+        assertEquals(qname.getNamespaceURI(), NS_URI);
+        assertEquals(qname.getLocalPart(), LOCAL_PART);
+        assertEquals(qname.getPrefix(), PREFIX);
+    }
+
+    /*
+     * Construct QName(String localpart), then test for default ns_uri and
+     * prefix constant.
+     */
+    @Test
+    public void testDefaultFields() {
+        QName qname = new QName(LOCAL_PART); // just the local part specified
+        assertEquals(qname.getNamespaceURI(), NULL_NS_URI);
+        assertEquals(qname.getLocalPart(), LOCAL_PART);
+        assertEquals(qname.getPrefix(), DEFAULT_NS_PREFIX);
+    }
+
+    /*
+     * Construct QName(String ns,String localpart), then test for default prefix
+     * constant.
+     */
+    @Test
+    public void testDefaultPrefix() {
+        QName qname = new QName(NS_URI, LOCAL_PART); // no pref
+        assertEquals(qname.getNamespaceURI(), NS_URI);
+        assertEquals(qname.getLocalPart(), LOCAL_PART);
+        assertEquals(qname.getPrefix(), DEFAULT_NS_PREFIX);
+    }
+
+    /*
+     * Round trip testing of QName to String, String to QName and test for
+     * equality.
+     */
+    @Test
+    public void testQNameString() {
+        QName qname = new QName(NS_URI, LOCAL_PART, PREFIX);
+        assertEquals(QName.valueOf(qname.toString()), qname);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import jaxp.library.JAXPBaseTest;
+
+import org.testng.annotations.Test;
+import org.xml.sax.XMLReader;
+
+/*
+ * @summary verify SAX 2.0.1 allows to use null in setters
+ */
+public class SAX201Test extends JAXPBaseTest {
+    @Test
+    public void test() throws Exception {
+        SAXParserFactory spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        XMLReader reader = spf.newSAXParser().getXMLReader();
+        reader.setErrorHandler(null); // SAX 2.0.1 allows
+        reader.setContentHandler(null); // SAX 2.0.1 allows
+        reader.setEntityResolver(null); // SAX 2.0.1 allows
+        reader.setDTDHandler(null); // SAX 2.0.1 allows
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static test.astro.AstroConstants.ASTROCAT;
+import static test.astro.AstroConstants.JAXP_SCHEMA_LANGUAGE;
+import static test.astro.AstroConstants.JAXP_SCHEMA_SOURCE;
+
+import java.io.File;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/*
+ * @summary test parser sets schema related properties to do validation
+ */
+public class SchemaValidationTest extends JAXPFileBaseTest {
+    /*
+     * Only set the schemaLanguage, without setting schemaSource. It should
+     * work.
+     */
+    @Test
+    public void testSchemaValidation() throws Exception {
+        SAXParser sp = getValidatingParser();
+        sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        sp.parse(new File(ASTROCAT), new DefaultHandler());
+    }
+
+    /*
+     * Test SAXException shall be thrown if schemaSource is set but
+     * schemaLanguage is not set.
+     */
+    @Test(expectedExceptions = SAXException.class)
+    public void testSchemaValidationNeg() throws Exception {
+        SAXParser sp = getValidatingParser();
+        sp.setProperty(JAXP_SCHEMA_SOURCE, "catalog.xsd");
+        sp.parse(new File(ASTROCAT), new DefaultHandler());
+    }
+
+    private SAXParser getValidatingParser() throws ParserConfigurationException, SAXException {
+        SAXParserFactory spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        spf.setValidating(true);
+        return spf.newSAXParser();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,169 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static javax.xml.xpath.XPathConstants.DOM_OBJECT_MODEL;
+import static javax.xml.xpath.XPathConstants.NODESET;
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static org.testng.Assert.assertEquals;
+import static test.astro.AstroConstants.ASTROCAT;
+import static test.astro.AstroConstants.JAXP_SCHEMA_LANGUAGE;
+import static test.astro.AstroConstants.JAXP_SCHEMA_SOURCE;
+
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import javax.xml.xpath.XPathVariableResolver;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+/*
+ * @summary test XPath API
+ */
+@Test(singleThreaded = true)
+public class XPathAPITest extends JAXPFileBaseTest {
+    private static final String STARDB_STAR_3_CONSTELLATION = "//astro:stardb/astro:star[3]/astro:constellation";
+    private static final String STARDB_STAR = "//astro:stardb/astro:star";
+    private Document doc;
+    private XPathFactory xpf;
+    private NamespaceContext nsContext;
+
+    @BeforeClass
+    public void setup() throws Exception {
+        DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
+        df.setNamespaceAware(true);
+        df.setValidating(true);
+        df.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        df.setAttribute(JAXP_SCHEMA_SOURCE, "catalog.xsd");
+        DocumentBuilder bldr = df.newDocumentBuilder();
+        doc = bldr.parse(ASTROCAT);
+
+        xpf = XPathFactory.newInstance(DOM_OBJECT_MODEL);
+
+        nsContext = new MyNamespaceContext();
+    }
+
+    @DataProvider(name = "nodelist-evaluator")
+    public Object[][] getNodeListEvaluator() throws MalformedURLException {
+        return new Object[][] { { (XPathEvaluator) expression -> getXPath().evaluate(expression, doc.getDocumentElement(), NODESET) },
+                { (XPathEvaluator) expression -> getXPath().evaluate(expression, createXMLInputSource(), NODESET) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(doc.getDocumentElement(), NODESET) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(createXMLInputSource(), NODESET) } };
+    }
+
+    /*
+     * Test xpath expression evaluations method that returns type indicated by
+     * QName
+     */
+    @Test(dataProvider = "nodelist-evaluator")
+    public void testEvaluateNodeList(XPathEvaluator evaluator) throws Exception {
+        NodeList o = (NodeList) evaluator.evaluate(STARDB_STAR);
+        assertEquals(o.getLength(), 10);
+    }
+
+    @DataProvider(name = "string-evaluator")
+    public Object[][] getStringEvaluator() throws MalformedURLException {
+        return new Object[][] { { (XPathEvaluator) expression -> getXPath().evaluate(expression, doc.getDocumentElement()) },
+                { (XPathEvaluator) expression -> getXPath().evaluate(expression, createXMLInputSource()) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(doc.getDocumentElement()) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(createXMLInputSource()) } };
+    }
+
+    /*
+     * Test xpath expression evaluations method that returns String
+     */
+    @Test(dataProvider = "string-evaluator")
+    public void testEvaluateString(XPathEvaluator evaluator) throws Exception {
+        assertEquals(evaluator.evaluate(STARDB_STAR_3_CONSTELLATION), "Psc");
+    }
+
+    @Test
+    public void testXPathVariableResolver() throws Exception {
+        XPath xpath = getXPath();
+        xpath.setXPathVariableResolver(new MyXPathVariableResolver());
+        assertEquals(xpath.evaluate("//astro:stardb/astro:star[astro:hr=$id]/astro:constellation", doc.getDocumentElement()), "Peg");
+
+    }
+
+    private static class MyXPathVariableResolver implements XPathVariableResolver {
+        public Object resolveVariable(QName vname) {
+            return "4"; // resolve $id as 4, xpath will locate to star[hr=4]
+        }
+    }
+
+    /*
+     * Implementation of a NamespaceContext interface for the Xpath api tests.
+     * Used in xpath.setNamespaceContext(...)
+     */
+    private static class MyNamespaceContext implements NamespaceContext {
+        public String getNamespaceURI(String prefix) {
+            return "astro".equals(prefix) ? "http://www.astro.com/astro" : "";
+        }
+
+        public String getPrefix(String nsURI) {
+            return "http://www.astro.com/astro".equals(nsURI) ? "astro" : "";
+        }
+
+        public Iterator getPrefixes(String nsURI) {
+            ArrayList list = new ArrayList();
+            list.add("astro");
+            return list.iterator();
+        }
+    }
+
+    @FunctionalInterface
+    private interface XPathEvaluator {
+        Object evaluate(String expression) throws XPathExpressionException;
+    }
+
+    private XPath getXPath() {
+        XPath xpath = xpf.newXPath();
+        xpath.setNamespaceContext(nsContext);
+        return xpath;
+    }
+
+    private XPathExpression getXPathExpression(String expression) throws XPathExpressionException {
+        return getXPath().compile(expression);
+    }
+
+    private InputSource createXMLInputSource() {
+        return new InputSource(filenameToURL(ASTROCAT));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/catalog.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,17 @@
+<?xml version="1.1" encoding="UTF-8"?>
+<stardb xmlns="http://www.astro.com/astro" xmlns:astro="http://www.astro.com/astro" xsi:schemaLocation="http://www.astro.com/astro catalog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+   <_test01></_test01>
+   <test-02 xmlns:xsi=""></test-02>
+   <test.03></test.03>
+   <_test-04>T%e!s#t$</_test-04>
+   <star><hr>1</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>09.9</s><dv>0.08608333333333333</dv></ra><dec><sgn/><d>45</d><m>13</m><s>45</s><dv>45.22916666666667</dv></dec><glng>114.44</glng><glat>-16.88</glat><vmag>6.70</vmag><spec>A1Vn</spec></star>
+   <star><hr>2</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>03.8</s><dv>0.08438888888888889</dv></ra><dec><sgn>-</sgn><d>00</d><m>30</m><s>11</s><dv>-0.5030555555555556</dv></dec><glng>98.33</glng><glat>-61.14</glat><vmag>6.29</vmag><spec>gG9</spec></star>
+   <star><hr>3</hr><constellation>Psc</constellation><fullname>33    Psc</fullname><ra><h>00</h><m>05</m><s>20.1</s><dv>0.08891666666666666</dv></ra><dec><sgn>-</sgn><d>05</d><m>42</m><s>27</s><dv>-5.7075000000000005</dv></dec><glng>93.75</glng><glat>-65.93</glat><vmag>4.61</vmag><spec>K0IIIbCN-0.5</spec></star>
+   <star><hr>4</hr><constellation>Peg</constellation><fullname>86    Peg</fullname><ra><h>00</h><m>05</m><s>42.0</s><dv>0.095</dv></ra><dec><sgn/><d>13</d><m>23</m><s>46</s><dv>13.39611111111111</dv></dec><glng>106.19</glng><glat>-47.98</glat><vmag>5.51</vmag><spec>G5III</spec></star>
+   <star><hr>5</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>16.0</s><dv>0.10444444444444445</dv></ra><dec><sgn/><d>58</d><m>26</m><s>12</s><dv>58.43666666666666</dv></dec><glng>117.03</glng><glat>-03.92</glat><vmag>5.96</vmag><spec>G5V</spec></star>
+   <star><hr>6</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>19.0</s><dv>0.10527777777777779</dv></ra><dec><sgn>-</sgn><d>49</d><m>04</m><s>30</s><dv>-49.075</dv></dec><glng>321.61</glng><glat>-66.38</glat><vmag>5.70</vmag><spec>G1IV</spec></star>
+   <star><hr>7</hr><constellation>Cas</constellation><fullname>10    Cas</fullname><ra><h>00</h><m>06</m><s>26.5</s><dv>0.10736111111111112</dv></ra><dec><sgn/><d>64</d><m>11</m><s>46</s><dv>64.19611111111111</dv></dec><glng>118.06</glng><glat>1.75</glat><vmag>5.59</vmag><spec>B9III</spec></star>
+   <star><hr>8</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>36.8</s><dv>0.11022222222222222</dv></ra><dec><sgn/><d>29</d><m>01</m><s>17</s><dv>29.02138888888889</dv></dec><glng>111.26</glng><glat>-32.83</glat><vmag>6.13</vmag><spec>K0V</spec></star>
+   <star><hr>9</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>50.1</s><dv>0.11391666666666667</dv></ra><dec><sgn>-</sgn><d>23</d><m>06</m><s>27</s><dv>-23.1075</dv></dec><glng>52.21</glng><glat>-79.14</glat><vmag>6.18</vmag><spec>A7V</spec></star>
+   <star><hr>10</hr><constellation/><fullname/><ra><h>00</h><m>07</m><s>18.2</s><dv>0.12172222222222222</dv></ra><dec><sgn>-</sgn><d>17</d><m>23</m><s>11</s><dv>-17.386388888888888</dv></dec><glng>74.36</glng><glat>-75.90</glat><vmag>6.19</vmag><spec>A6Vn</spec></star>
+</stardb>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/catalog.xml.bak	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,2 @@
+<?xml version="1.1" encoding="UTF-8"?>
+<stardb xmlns="http://www.astro.com/astro" xmlns:astro="http://www.astro.com/astro" xsi:schemaLocation="http://www.astro.com/astro catalog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><_test01></_test01><test-02 xmlns:xsi=""></test-02><test.03></test.03><_test-04>T%e!s#t$</_test-04><star><hr>1</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>09.9</s><dv>0.08608333333333333</dv></ra><dec><sgn/><d>45</d><m>13</m><s>45</s><dv>45.22916666666667</dv></dec><glng>114.44</glng><glat>-16.88</glat><vmag>6.70</vmag><spec>A1Vn</spec></star><star><hr>2</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>03.8</s><dv>0.08438888888888889</dv></ra><dec><sgn>-</sgn><d>00</d><m>30</m><s>11</s><dv>-0.5030555555555556</dv></dec><glng>98.33</glng><glat>-61.14</glat><vmag>6.29</vmag><spec>gG9</spec></star><star><hr>3</hr><constellation>Psc</constellation><fullname>33    Psc</fullname><ra><h>00</h><m>05</m><s>20.1</s><dv>0.08891666666666666</dv></ra><dec><sgn>-</sgn><d>05</d><m>42</m><s>27</s><dv>-5.7075000000000005</dv></dec><glng>93.75</glng><glat>-65.93</glat><vmag>4.61</vmag><spec>K0IIIbCN-0.5</spec></star><star><hr>4</hr><constellation>Peg</constellation><fullname>86    Peg</fullname><ra><h>00</h><m>05</m><s>42.0</s><dv>0.095</dv></ra><dec><sgn/><d>13</d><m>23</m><s>46</s><dv>13.39611111111111</dv></dec><glng>106.19</glng><glat>-47.98</glat><vmag>5.51</vmag><spec>G5III</spec></star><star><hr>5</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>16.0</s><dv>0.10444444444444445</dv></ra><dec><sgn/><d>58</d><m>26</m><s>12</s><dv>58.43666666666666</dv></dec><glng>117.03</glng><glat>-03.92</glat><vmag>5.96</vmag><spec>G5V</spec></star><star><hr>6</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>19.0</s><dv>0.10527777777777779</dv></ra><dec><sgn>-</sgn><d>49</d><m>04</m><s>30</s><dv>-49.075</dv></dec><glng>321.61</glng><glat>-66.38</glat><vmag>5.70</vmag><spec>G1IV</spec></star><star><hr>7</hr><constellation>Cas</constellation><fullname>10    Cas</fullname><ra><h>00</h><m>06</m><s>26.5</s><dv>0.10736111111111112</dv></ra><dec><sgn/><d>64</d><m>11</m><s>46</s><dv>64.19611111111111</dv></dec><glng>118.06</glng><glat>1.75</glat><vmag>5.59</vmag><spec>B9III</spec></star><star><hr>8</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>36.8</s><dv>0.11022222222222222</dv></ra><dec><sgn/><d>29</d><m>01</m><s>17</s><dv>29.02138888888889</dv></dec><glng>111.26</glng><glat>-32.83</glat><vmag>6.13</vmag><spec>K0V</spec></star><star><hr>9</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>50.1</s><dv>0.11391666666666667</dv></ra><dec><sgn>-</sgn><d>23</d><m>06</m><s>27</s><dv>-23.1075</dv></dec><glng>52.21</glng><glat>-79.14</glat><vmag>6.18</vmag><spec>A7V</spec></star><star><hr>10</hr><constellation/><fullname/><ra><h>00</h><m>07</m><s>18.2</s><dv>0.12172222222222222</dv></ra><dec><sgn>-</sgn><d>17</d><m>23</m><s>11</s><dv>-17.386388888888888</dv></dec><glng>74.36</glng><glat>-75.90</glat><vmag>6.19</vmag><spec>A6Vn</spec></star></stardb>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/catalog.xsd	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,122 @@
+<xs:schema 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://www.astro.com/astro" 
+    xmlns:astro="http://www.astro.com/astro"
+    elementFormDefault="qualified"
+    attributeFormDefault="qualified"
+>
+    <!-- Star Identification String Type  -->
+    <xs:simpleType name="staridType">
+	<xs:restriction base="xs:string">
+	    <xs:maxLength value="4"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <!-- Hour Type -->
+    <xs:simpleType name="hourType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="0.0"/>
+	    <xs:maxInclusive value="24.0"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <!-- Minute Type -->
+    <xs:simpleType name="minuteType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="0.0"/>
+	    <xs:maxInclusive value="60.0"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <!-- Second Type -->
+    <xs:simpleType name="secondType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="0.0"/>
+	    <xs:maxInclusive value="60.0"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="decimalValueType">
+	<xs:restriction base="xs:decimal">
+	</xs:restriction>
+    </xs:simpleType> 
+
+    <xs:simpleType name="degType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="-90.0"/>
+	    <xs:maxInclusive value="90.0"/>
+	</xs:restriction>
+    </xs:simpleType> 
+
+    <xs:simpleType name="vmagType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="-3.0"/>
+	    <xs:maxInclusive value="12.0"/>
+	</xs:restriction>
+    </xs:simpleType> 
+
+
+    <xs:simpleType name="signType">
+	<xs:restriction base="xs:string">
+	    <xs:enumeration value="+"/>
+	    <xs:enumeration value="-"/>
+	    <xs:enumeration value=""/>
+	</xs:restriction>
+    </xs:simpleType> 
+
+    <xs:complexType name="raType">
+	<xs:sequence>
+	    <xs:element name="h"  type="astro:hourType"/>
+	    <xs:element name="m"  type="astro:minuteType"/>
+	    <xs:element name="s"  type="astro:secondType"/>
+	    <xs:element name="dv" type="astro:decimalValueType"/>
+	</xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="decType">
+	<xs:sequence>
+	    <xs:element name="sgn" type="astro:signType"/>
+	    <xs:element name="d"   type="astro:degType"/>
+	    <xs:element name="m"   type="astro:minuteType"/>
+	    <xs:element name="s"   type="astro:secondType"/>
+	    <xs:element name="dv"  type="astro:decimalValueType"/>
+	</xs:sequence>
+    </xs:complexType>
+
+
+    <xs:complexType name="starType">
+	<xs:sequence>
+	    <xs:element name="hr"            type="astro:staridType"/>
+	    <xs:element name="constellation" type="xs:string"/>
+	    <xs:element name="fullname"      type="xs:string"/>
+	    <xs:element name="ra"            type="astro:raType"/>
+	    <xs:element name="dec"           type="astro:decType"/>
+	    <xs:element name="glng"          type="xs:decimal"/>
+	    <xs:element name="glat"          type="xs:decimal"/>
+	    <xs:element name="vmag"          type="astro:vmagType"/>
+	    <xs:element name="spec"          type="xs:string"/>
+	</xs:sequence>
+    </xs:complexType>
+
+
+    <!-- The real part of the catalog starts here -->
+    <xs:element name="stardb">
+       <xs:complexType>
+          <xs:sequence>
+
+	     <!-- for testing purposes -->
+	     <xs:element name="_test01" type="xs:string"
+		minOccurs="0" maxOccurs="1"/>
+	     <xs:element name="test-02" type="xs:string"/>
+	     <xs:element name="test.03" type="xs:string"/>
+	     <xs:element name="_test-04" type="xs:string"/>
+
+	     <!-- astro data elements -->
+             <xs:element name="star" type="astro:starType"
+	        minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+       </xs:complexType>
+    </xs:element>
+    <!-- The real part of the catalog ends here -->
+
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query1.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>7<br>
+<b>Constellation: </b>Cas<br>
+<b>Description: </b>10    Cas<br>
+<b>RA J2000: </b>00:06:26.5<br>
+<b>DEC J2000: </b>64:11:46<br>
+<b>Visual Magnitude: </b>5.59<br>
+<b>Spectral Type: </b>B9III<br>
+<b>Galactic Longitude: </b>118.06<br>
+<b>Galactic Latitude: </b>1.75<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query2.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,15 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>3<br>
+<b>Constellation: </b>Psc<br>
+<b>Description: </b>33    Psc<br>
+<b>RA J2000: </b>00:05:20.1<br>
+<b>DEC J2000: </b>05:42:27<br>
+<b>Visual Magnitude: </b>4.61<br>
+<b>Spectral Type: </b>K0IIIbCN-0.5<br>
+<b>Galactic Longitude: </b>93.75<br>
+<b>Galactic Latitude: </b>-65.93<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query3.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,39 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>2<br>
+<b>Constellation: </b>
+<br>
+<b>Description: </b>
+<br>
+<b>RA J2000: </b>00:05:03.8<br>
+<b>DEC J2000: </b>00:30:11<br>
+<b>Visual Magnitude: </b>6.29<br>
+<b>Spectral Type: </b>gG9<br>
+<b>Galactic Longitude: </b>98.33<br>
+<b>Galactic Latitude: </b>-61.14<br>
+<hr>
+<b>Star Id: </b>4<br>
+<b>Constellation: </b>Peg<br>
+<b>Description: </b>86    Peg<br>
+<b>RA J2000: </b>00:05:42.0<br>
+<b>DEC J2000: </b>13:23:46<br>
+<b>Visual Magnitude: </b>5.51<br>
+<b>Spectral Type: </b>G5III<br>
+<b>Galactic Longitude: </b>106.19<br>
+<b>Galactic Latitude: </b>-47.98<br>
+<hr>
+<b>Star Id: </b>5<br>
+<b>Constellation: </b>
+<br>
+<b>Description: </b>
+<br>
+<b>RA J2000: </b>00:06:16.0<br>
+<b>DEC J2000: </b>58:26:12<br>
+<b>Visual Magnitude: </b>5.96<br>
+<b>Spectral Type: </b>G5V<br>
+<b>Galactic Longitude: </b>117.03<br>
+<b>Galactic Latitude: </b>-03.92<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query4.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,37 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>2<br>
+<b>Constellation: </b>
+<br>
+<b>Description: </b>
+<br>
+<b>RA J2000: </b>00:05:03.8<br>
+<b>DEC J2000: </b>00:30:11<br>
+<b>Visual Magnitude: </b>6.29<br>
+<b>Spectral Type: </b>gG9<br>
+<b>Galactic Longitude: </b>98.33<br>
+<b>Galactic Latitude: </b>-61.14<br>
+<hr>
+<b>Star Id: </b>3<br>
+<b>Constellation: </b>Psc<br>
+<b>Description: </b>33    Psc<br>
+<b>RA J2000: </b>00:05:20.1<br>
+<b>DEC J2000: </b>05:42:27<br>
+<b>Visual Magnitude: </b>4.61<br>
+<b>Spectral Type: </b>K0IIIbCN-0.5<br>
+<b>Galactic Longitude: </b>93.75<br>
+<b>Galactic Latitude: </b>-65.93<br>
+<hr>
+<b>Star Id: </b>4<br>
+<b>Constellation: </b>Peg<br>
+<b>Description: </b>86    Peg<br>
+<b>RA J2000: </b>00:05:42.0<br>
+<b>DEC J2000: </b>13:23:46<br>
+<b>Visual Magnitude: </b>5.51<br>
+<b>Spectral Type: </b>G5III<br>
+<b>Galactic Longitude: </b>106.19<br>
+<b>Galactic Latitude: </b>-47.98<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/dec-ent.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,36 @@
+<!-- This is the external entity version of dec.xsl 
+     in which the top level template has been removed
+     and referenced as an external entity
+--> 
+     
+<!DOCTYPE xsl:transform [
+  <!ENTITY toplevel SYSTEM "http://astro.com/stylesheets/toptemplate">
+]>
+
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- dec between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="dec_min_deg" select="0.0"/>
+	<xsl:param name="dec_max_deg" select="1.0"/>
+	
+	<!-- introduce the external entity -->
+	&toplevel;          
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:dec/astro:dv) &gt;= $dec_min_deg) and
+	                  (number(astro:dec/astro:dv) &lt;= $dec_max_deg))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/dec.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,32 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- dec between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="dec_min_deg" select="0.0"/>
+	<xsl:param name="dec_max_deg" select="1.0"/>
+	
+	<xsl:template match="astro:stardb">
+	   <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	          <xsl:apply-templates/>
+	   </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:dec/astro:dv) &gt;= $dec_min_deg) and
+	                  (number(astro:dec/astro:dv) &lt;= $dec_max_deg))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/dec_frag.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,26 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!-- dec_frag.xsl = fragment used in radec.xsl --> 
+	
+	<xsl:output method="xml"/>
+	
+	<xsl:param name="dec_min_deg" select="-5.75"/>
+	<xsl:param name="dec_max_deg" select="14.0"/>
+	
+	
+	<xsl:template match="astro:star" mode="RA_PASSED" >
+	   <xsl:if test="(
+	                  (number(astro:dec/astro:dv) &gt;= $dec_min_deg) and
+	                  (number(astro:dec/astro:dv) &lt;= $dec_max_deg))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/html.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,38 @@
+<xsl:transform
+  xmlns=""
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  
+	<xsl:strip-space elements="*"/>
+	
+	<xsl:output method="html"/>
+	
+	<xsl:template match="astro:stardb">
+	   <html>
+	   <h1>Bright Star Catalog Extract</h1>
+	   <body>
+	      <xsl:apply-templates/>
+	   </body>
+	   </html>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <b>Star Id: </b><xsl:value-of select="astro:hr"/><br/>
+	   <b>Constellation: </b><xsl:value-of select="astro:constellation"/><br/>
+	   <b>Description: </b><xsl:value-of select="astro:fullname"/><br/>
+	   <b>RA J2000: </b><xsl:value-of select="astro:ra/astro:h"/><xsl:text>:</xsl:text><xsl:value-of select="astro:ra/astro:m"/><xsl:text>:</xsl:text><xsl:value-of select="astro:ra/astro:s"/><br/>
+	   <b>DEC J2000: </b><xsl:value-of select="astro:ra/astro:sgn"/><xsl:value-of select="astro:dec/astro:d"/><xsl:text>:</xsl:text><xsl:value-of select="astro:dec/astro:m"/><xsl:text>:</xsl:text><xsl:value-of select="astro:dec/astro:s"/><br/>
+	   <b>Visual Magnitude: </b><xsl:value-of select="astro:vmag"/><br/>
+	   <b>Spectral Type: </b><xsl:value-of select="astro:spec"/><br/>
+	   <b>Galactic Longitude: </b><xsl:value-of select="astro:glng"/><br/>
+	   <b>Galactic Latitude: </b><xsl:value-of select="astro:glat"/><br/>
+	   <hr></hr>
+	</xsl:template>
+	
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra-ent.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,29 @@
+<!DOCTYPE xsl:transform [
+  <!ENTITY toplevel SYSTEM "http://astro.com/stylesheets/toptemplate">
+]>
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- ra between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="ra_min_hr" select="0.106"/>
+	<xsl:param name="ra_max_hr" select="0.108"/>
+	
+	&toplevel;
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra-uri.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,27 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- ra between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="ra_min_hr" select="0.106"/>
+	<xsl:param name="ra_max_hr" select="0.108"/>
+	
+	<!-- will use the uri resolver to resolve to  'toptemplate.xsl' -->
+	<xsl:include href="http://astro.com/stylesheets/topleveltemplate"/>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,32 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- ra between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="ra_min_hr" select="0.106"/>
+	<xsl:param name="ra_max_hr" select="0.108"/>
+	
+	<xsl:template match="astro:stardb">
+	      <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	          <xsl:apply-templates/>
+	      </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra_frag.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,26 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!-- ra_frag = fragment used in radec.xsl -->
+	
+	<xsl:output method="xml"/>
+	
+	<xsl:param name="ra_min_hr" select="0.084"/>
+	<xsl:param name="ra_max_hr" select="0.096"/>
+	
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:apply-templates select="." mode="RA_PASSED"/> 
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/radec.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,28 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!-- radec.xsl = filters on both RA and DEC using modes -->
+	
+	<xsl:output method="xml"/>
+	
+	<!-- include the fragments for ra and dec filtering -->
+	
+	<xsl:include href="ra_frag.xsl"/>
+	<xsl:include href="dec_frag.xsl"/>
+	
+	<xsl:template match="astro:stardb">
+	      <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+	          <xsl:apply-templates/>
+	      </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/stellartype.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,29 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- search stars of a particular type --> 
+	<xsl:param name="type" select="G"/>
+	
+	<xsl:template match="astro:stardb">
+	   <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+	          <xsl:apply-templates/>
+	   </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(contains(astro:spec,$type))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/toptemplate.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,17 @@
+
+<!--
+<xsl:transform
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+-->
+
+<xsl:template match="astro:stardb">
+      <stardb xmlns="http://www.astro.com/astro"
+      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+          <xsl:apply-templates/>
+      </stardb>
+</xsl:template>
+
+<!--
+</xsl:transform>
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/toptemplateinc.xsl	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,24 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!--
+	 - toptemplateinc.xsl = toptemplate used in an xsl:include element
+	 -        which demands that this is a complete stylesheet.
+	 -        The related toptemplate.xsl is not a complete stylesheet
+	 -        as it is used in ext entity references.  
+	-->
+	
+	<xsl:template match="astro:stardb">
+	      <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+	          <xsl:apply-templates/>
+	      </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/org/w3c/dom/ptests/DOMTestUtil.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom.ptests;
+
+import static jaxp.library.JAXPTestUtilities.FILE_SEP;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/*
+ * This class defines the path constant and common method
+ */
+public class DOMTestUtil {
+    /*
+     * XML source file directory.
+     */
+    public static final String XML_DIR = getPathByClassName(DOMTestUtil.class, ".." + FILE_SEP + "xmlfiles");
+
+    /*
+     * Golden validation files directory.
+     */
+    public static final String GOLDEN_DIR = getPathByClassName(DOMTestUtil.class, ".." + FILE_SEP + "xmlfiles" + FILE_SEP + "out");
+
+    /*
+     * Error Message for DOMException being expected.
+     */
+    public static final String DOMEXCEPTION_EXPECTED = "Should throw DOMException";
+
+    /*
+     * Create DOM Document from an xml file.
+     */
+    public static Document createDOM(String xmlFileName) throws SAXException, IOException, ParserConfigurationException {
+        return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(XML_DIR + xmlFileName));
+    }
+
+    /*
+     * Create DOM Document from an xml file with setNamespaceAware(true).
+     */
+    public static Document createDOMWithNS(String xmlFileName) throws IOException, SAXException, ParserConfigurationException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        return dbf.newDocumentBuilder().parse(new File(XML_DIR + xmlFileName));
+    }
+
+    /*
+     * Create a new DOM Document.
+     */
+    public static Document createNewDocument() throws ParserConfigurationException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        return db.newDocument();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/AbstractFilterFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static test.astro.AstroConstants.HTMLXSL;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.sax.TransformerHandler;
+
+import org.xml.sax.SAXException;
+
+public abstract class AbstractFilterFactory implements FilterFactory {
+    @Override
+    public TransformerHandler newRAFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        TransformerHandler retval = getTransformerHandler(getRAXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("ra_min_hr", String.valueOf(min));
+        xformer.setParameter("ra_max_hr", String.valueOf(max));
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newDECFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        TransformerHandler retval = getTransformerHandler(getDECXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("dec_min_deg", String.valueOf(min));
+        xformer.setParameter("dec_max_deg", String.valueOf(max));
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newRADECFilter(double rmin, double rmax, double dmin, double dmax) throws TransformerConfigurationException, SAXException,
+            ParserConfigurationException, IOException {
+        TransformerHandler retval = getTransformerHandler(getRADECXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("ra_min_hr", String.valueOf(rmin));
+        xformer.setParameter("ra_max_hr", String.valueOf(rmax));
+        xformer.setParameter("dec_min_deg", String.valueOf(dmin));
+        xformer.setParameter("dec_max_deg", String.valueOf(dmax));
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newStellarTypeFilter(String type) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        TransformerHandler retval = getTransformerHandler(getStellarXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("type", type);
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newHTMLOutput() throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException {
+        return getTransformerHandler(HTMLXSL);
+    }
+
+    abstract protected TransformerHandler getTransformerHandler(String xslFileName) throws SAXException, ParserConfigurationException,
+            TransformerConfigurationException, IOException;
+
+    abstract protected String getRAXsl();
+
+    abstract protected String getDECXsl();
+
+    abstract protected String getRADECXsl();
+
+    abstract protected String getStellarXsl();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/AstroConstants.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static java.io.File.separator;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
+
+public class AstroConstants {
+    // Query parameters :
+
+    public static final double RA_MIN = 0.0; // hours
+    public static final double RA_MAX = 24.0; // hours
+    public static final double DEC_MIN = -90.000; // degrees
+    public static final double DEC_MAX = 90.000; // degrees
+
+    // Stylesheet source paths:
+
+    public static final String XSLPATH = getPathByClassName(AstroConstants.class, "xmlfiles" + separator + "xsl");
+    public static final String RAXSL = XSLPATH + "ra.xsl";
+    public static final String DECXSL = XSLPATH + "dec.xsl";
+    public static final String RADECXSL = XSLPATH + "radec.xsl";
+    public static final String STYPEXSL = XSLPATH + "stellartype.xsl";
+    public static final String HTMLXSL = XSLPATH + "html.xsl";
+
+    public static final String RAENTXSL = XSLPATH + "ra-ent.xsl";
+    public static final String DECENTXSL = XSLPATH + "dec-ent.xsl";
+    public static final String RAURIXSL = XSLPATH + "ra-uri.xsl";
+    public static final String TOPTEMPLXSL = XSLPATH + "toptemplate.xsl";
+    public static final String TOPTEMPLINCXSL = XSLPATH + "toptemplateinc.xsl";
+
+    // Catalog references
+
+    public static final String ASTROCAT = getPathByClassName(AstroConstants.class, "xmlfiles") + "catalog.xml";
+
+
+    public static final String GOLDEN_DIR = getPathByClassName(AstroConstants.class, "xmlfiles" + separator + "gold");
+    public static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+    public static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/AstroProcessor.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,279 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static test.astro.AstroConstants.DEC_MAX;
+import static test.astro.AstroConstants.DEC_MIN;
+import static test.astro.AstroConstants.JAXP_SCHEMA_LANGUAGE;
+import static test.astro.AstroConstants.JAXP_SCHEMA_SOURCE;
+import static test.astro.AstroConstants.RA_MAX;
+import static test.astro.AstroConstants.RA_MIN;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
+
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
+
+/*
+ * AstroProcessor is to carry out the user's query with filters and produce a table of
+ * star records that match the criterion, and finally output with HTML format.
+ */
+public class AstroProcessor {
+    private String catalogFileName;
+
+    private FilterFactory ffact;
+    private InputSourceFactory isfact;
+
+    private SAXParserFactory spf;
+
+    /*
+     * Constructor for the Main astro class.
+     *
+     * @param fFactClass the class of the FilterFactory implementation
+     *
+     * @param catalogfilename the name of the XML input document (database)
+     *
+     * @param isFactClass the class of the Input Source Factory implementation
+     */
+    public AstroProcessor(Class<FilterFactory> fFactClass, String catalogFileName, Class<InputSourceFactory> isFactClass) throws Exception {
+        // create the Filter Factory instance...
+
+        ffact = fFactClass.newInstance();
+
+        // create the Input Source Instance
+
+        isfact = isFactClass.newInstance();
+
+        spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        spf.setValidating(true);
+
+        // All XML Readers are required to recognize these two:
+        spf.setFeature("http://xml.org/sax/features/namespaces", true);
+        spf.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
+
+        // Other features...
+        spf.setFeature("http://xml.org/sax/features/validation", true);
+        spf.setFeature("http://apache.org/xml/features/validation/schema", true);
+        spf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
+
+        this.catalogFileName = catalogFileName;
+    }
+
+    /*
+     * Sets the star stellar type query.
+     *
+     * @param arg stellar type string, can be a substring.
+     */
+    public TransformerHandler getStellarTypeFilter(String arg) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        String stellarType = null;
+        if (arg != null && arg.length() != 0) {
+            stellarType = arg; // set value of query
+        } else {
+            throw new IllegalArgumentException("\n  Stellar type string of length zero found.");
+        }
+
+        return ffact.newStellarTypeFilter(stellarType);
+    }
+
+    /*
+     * Sets the right ascension parameters for a query. Parameters are validated
+     * to be in the range of 0h and 24h inclusive.
+     *
+     * @param min minimum right ascension in hours.
+     *
+     * @param max maximum right ascension in hours.
+     */
+    public TransformerHandler getRAFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        double raMin = RA_MIN; // hours
+        double raMax = RA_MAX; // hours
+        if (min < max) {
+            if ((min >= RA_MIN && min <= RA_MAX) && (max >= RA_MIN && max <= RA_MAX)) {
+                raMin = min; // set value of query
+                raMax = max; // set value of query
+
+            }
+        } else {
+            throw new IllegalArgumentException("min must be less than max.\n" + "min=" + min + ", max=" + max);
+        }
+
+        return ffact.newRAFilter(raMin, raMax);
+    }
+
+    /*
+     * Sets the right ascension and dec parameters for a query. Parameters are
+     * validated to be in the range of ra 0h and 24h and dec -90 to +90
+     * inclusive.
+     *
+     * @param rmin minimum right ascension in hours.
+     *
+     * @param rmax maximum right ascension in hours.
+     *
+     * @param dmin minimum declination in degs.
+     *
+     * @param dmax maximum declination in degs.
+     */
+    public TransformerHandler getRADECFilter(double rmin, double rmax, double dmin, double dmax) throws TransformerConfigurationException, SAXException,
+            ParserConfigurationException, IOException {
+        double raMin = RA_MIN; // hours
+        double raMax = RA_MAX; // hours
+        double decMin = DEC_MIN; // degrees
+        double decMax = DEC_MAX; // degrees
+        if (rmin < rmax && dmin < dmax) {
+            if ((rmin >= RA_MIN && rmin <= RA_MAX) && (rmax >= RA_MIN && rmax <= RA_MAX)) {
+                raMin = rmin; // set value of query
+                raMax = rmax; // set value of query
+            }
+            if ((dmin >= DEC_MIN && dmin <= DEC_MAX) && (dmax >= DEC_MIN && dmax <= DEC_MAX)) {
+                decMin = dmin; // set value of query
+                decMax = dmax; // set value of query
+            }
+
+        } else {
+            throw new IllegalArgumentException("min must be less than max.\n" + "rmin=" + rmin + ", rmax=" + rmax + ", dmin=" + dmin + ", dmax=" + dmax);
+        }
+
+        return ffact.newRADECFilter(raMin, raMax, decMin, decMax);
+    }
+
+    /*
+     * Sets the declination parameters for a query. Parameters are validated to
+     * be in the range of -90 and +90 degrees inclusive.
+     *
+     * @param min minimum declination in degrees.
+     *
+     * @param max maximum declination in degrees.
+     */
+    public TransformerHandler getDecFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        double decMin = DEC_MIN; // degrees
+        double decMax = DEC_MAX; // degrees
+        if (min < max) {
+            if ((min >= DEC_MIN && min <= DEC_MAX) && (max >= DEC_MIN && max <= DEC_MAX)) {
+                decMin = min; // set value of query
+                decMax = max; // set value of query
+            }
+        } else {
+            throw new IllegalArgumentException("min must be less than max.\n" + "min=" + min + ", max=" + max);
+        }
+
+        return ffact.newDECFilter(decMin, decMax);
+    }
+
+    /*
+     * Runs the filter process against the astronomical database.
+     *
+     * @throws Exception
+     */
+    public void process(String outputfile, TransformerHandler... filters) throws Exception {
+        XMLReader catparser = getXMLReader();
+
+        File catalogfile = new File(catalogFileName);
+        InputSource catsrc = isfact.newInputSource(catalogfile.getPath());
+
+        TransformerHandler outfilter = ffact.newHTMLOutput();
+        // create an array from the Vector of filters...
+
+        // hook the filters up to each other, there may be zero filters
+        int nfilters = filters.length;
+        if (nfilters != 0) {
+            TransformerHandler prev = null;
+            for (int i = 0; i < filters.length; i++) {
+                TransformerHandler curr = filters[i];
+                if (prev != null) {
+                    prev.setResult(new SAXResult(curr));
+                }
+                prev = curr;
+            }
+            // hook up the last filter to the output filter
+            prev.setResult(new SAXResult(outfilter));
+            // hook up the catalog parser to the first filter...
+            catparser.setContentHandler(filters[0]);
+        } else {
+            // There are no query filters,
+            // hook up the catalog parser directly to output filter...
+            catparser.setContentHandler(outfilter);
+        }
+        // hook up the output filter to the output file or std out
+        if (outputfile != null) {
+            outfilter.setResult(new StreamResult(outputfile));
+        } else {
+            outfilter.setResult(new StreamResult(System.out));
+        }
+
+        catparser.parse(catsrc);
+    }
+
+    private XMLReader getXMLReader() throws Exception {
+        SAXParser parser = spf.newSAXParser();
+        parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        parser.setProperty(JAXP_SCHEMA_SOURCE, "catalog.xsd");
+        XMLReader catparser = parser.getXMLReader();
+        catparser.setErrorHandler(new CatalogErrorHandler());
+        return catparser;
+    }
+
+    /*
+     * Error Handler for the parsing of the XML astronomical catalog.
+     */
+    private static class CatalogErrorHandler implements ErrorHandler {
+        private String getParseExceptionInfo(SAXParseException spe) {
+            String systemId = spe.getSystemId();
+            if (systemId == null) {
+                systemId = "null";
+            }
+            String info = "Catalog URI=" + systemId + " Line=" + spe.getLineNumber() + ": " + spe.getMessage();
+            return info;
+        }
+
+        public void warning(SAXParseException spe) throws SAXException {
+            String message = "Warning: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+
+        public void error(SAXParseException spe) throws SAXException {
+            String message = "Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+
+        public void fatalError(SAXParseException spe) throws SAXException {
+            String message = "Fatal Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/DOMFilterFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RAXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+
+import java.io.IOException;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/*
+ * Implementation of the filter factory interface that utilizes DOM
+ * sources rather than Stream or SAX sources. This factory utilizes a
+ * DocumentBuilder to read in the stylesheets and create the DOM used
+ * to create the filters for the query pipeline.
+ *
+ */
+public class DOMFilterFactoryImpl extends SourceFilterFactory {
+    @Override
+    protected Source getSource(String xslFileName) throws SAXException, ParserConfigurationException, IOException {
+        Document document = getStylesheetDOM(xslFileName);
+        return new DOMSource(document);
+    }
+
+
+    @Override
+    protected String getRAXsl() {
+        return RAXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+
+    private Document getStylesheetDOM(String xslfilename) throws SAXException, IOException, ParserConfigurationException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        return dbf.newDocumentBuilder().parse(filenameToURL(xslfilename));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/DOML3InputSourceFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static org.w3c.dom.ls.DOMImplementationLS.MODE_SYNCHRONOUS;
+import static org.w3c.dom.traversal.NodeFilter.SHOW_ELEMENT;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.ls.DOMImplementationLS;
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSParser;
+import org.w3c.dom.ls.LSParserFilter;
+import org.w3c.dom.ls.LSSerializer;
+import org.w3c.dom.ls.LSSerializerFilter;
+import org.xml.sax.InputSource;
+
+/*
+ * A specialized implementation of an Input Source factory that utilizes
+ * DOM Level 3 implementations to build a Document (DOM) from the
+ * astro input file (XML) and then will serialize the DOM. The serialized DOM
+ * of the astro input file is then used to create the sax InputSource
+ * and set it's system id. It is then returned to the caller.
+ *
+ */
+public class DOML3InputSourceFactoryImpl implements InputSourceFactory {
+    public InputSource newInputSource(String filename) throws Exception {
+        // Create DOMImplementationLS, and DOM L3 LSParser
+        DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
+        DocumentBuilder bldr = fact.newDocumentBuilder();
+        DOMImplementationLS impl = (DOMImplementationLS) bldr.getDOMImplementation();
+        LSParser domparser = impl.createLSParser(MODE_SYNCHRONOUS, null);
+        domparser.setFilter(new MyDOMBuilderFilter());
+
+        // Parse the xml document to create the DOM Document using
+        // the DOM L3 LSParser and a LSInput (formerly LSInputSource)
+        Document doc = null;
+        LSInput src = impl.createLSInput();
+        // register the input file with the input source...
+        String systemId = filenameToURL(filename);
+        src.setSystemId(systemId);
+        try (Reader reader = new FileReader(filename)) {
+            src.setCharacterStream(reader);
+            src.setEncoding("UTF-8");
+            doc = domparser.parse(src);
+        }
+
+        // Use DOM L3 LSSerializer (previously called a DOMWriter)
+        // to serialize the xml doc DOM to a file stream.
+        String tmpCatalog = Files.createTempFile(Paths.get("").toAbsolutePath(), "catalog.xml", null).toString();
+
+        LSSerializer domserializer = impl.createLSSerializer();
+        domserializer.setFilter(new MyDOMWriterFilter());
+        domserializer.getNewLine();
+        DOMConfiguration config = domserializer.getDomConfig();
+        config.setParameter("xml-declaration", Boolean.TRUE);
+        String result = domserializer.writeToString(doc);
+        try (FileWriter os = new FileWriter(tmpCatalog, false)) {
+            os.write(result);
+            os.flush();
+        }
+
+        // Return the Input Source created from the Serialized DOM L3 Document.
+        InputSource catsrc = new InputSource(new InputStreamReader(new ByteArrayInputStream(Files.readAllBytes(Paths.get(tmpCatalog)))));
+        catsrc.setSystemId(systemId);
+        return catsrc;
+    }
+
+    /*
+     * Implementation of a DOM L3 DOM Builder Filter. The filter is capable of
+     * examining nodes as they are available during the parse. This
+     * implementation both rejects (filters) and modifies particular nodes
+     * during the parse of the document. As such, the document in memory will
+     * become a subset of the document on the stream in accordance with the DOM
+     * Level 3 Load and Save Specification, v1.0, sect. 1.3 Load Interfaces.
+     */
+    private static class MyDOMBuilderFilter implements LSParserFilter {
+
+        /*
+         * Filter the DOM. Define element(s) and their children that should be
+         * efficiently skipped thereby filtering them out of the stream.
+         */
+        @Override
+        public short startElement(Element e) {
+            return "_test01".equals(e.getTagName()) ? FILTER_REJECT : FILTER_ACCEPT;
+        }
+
+        /*
+         * Modify the DOM 'in situ'. Find a particular Node and change the Node
+         * value of its child, allow other nodes to pass through unchanged.
+         */
+        @Override
+        public short acceptNode(Node n) {
+            String localname = n.getLocalName();
+            if (localname.equals("_test-04")) {
+                Node child = n.getFirstChild();
+                String text = child.getNodeValue();
+                if (text.equals("T%e!s#t$")) {
+                    child.setNodeValue("T%E!S#T$");
+                }
+            }
+            return FILTER_ACCEPT;
+        }
+
+        /*
+         * Tells the DOMBuilder what types of nodes to show to the filter.
+         */
+        @Override
+        public int getWhatToShow() {
+            return SHOW_ELEMENT;
+        }
+    }
+
+    /*
+     * Implementation of a DOM Serializer Filter (previously called a DOM Writer
+     * Filter) which is a specialization of the NodeFilter interface.
+     */
+    private static class MyDOMWriterFilter implements LSSerializerFilter {
+        public MyDOMWriterFilter() {
+        }
+
+        /*
+         * Must implement method from NodeFilter interface
+         */
+        @Override
+        public short acceptNode(Node node) {
+            return FILTER_ACCEPT;
+        }
+
+        /*
+         * Tells the DOMBuilder what types of nodes to show to the filter.
+         */
+        @Override
+        public int getWhatToShow() {
+            return SHOW_ELEMENT;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/FilterFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.TransformerConfigurationException;
+
+import org.xml.sax.SAXException;
+
+/*
+ * Defines the interface for all concrete implementations of a Filter
+ * Factory.
+ */
+public interface FilterFactory {
+    /*
+     * Allows only the stars between right ascension (R.A.) of min and max to
+     * pass. Filters out all stars that are not in that range of right
+     * ascension. Units of right ascension are hours (h), range of parameters is
+     * 0h to 24h.
+     *
+     * @param min minimum R.A.
+     *
+     * @param max maxmimum R.A.
+     */
+    TransformerHandler newRAFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+
+    /*
+     * Allows only the stars between declination (DEC) of min and max to pass.
+     * Filters out all stars that are not in that range of declination. Units of
+     * declination are degrees (degs), range of parameters is -90 and +90 degs.
+     *
+     * @param min minimum DEC
+     *
+     * @param max maxmimum DEC
+     */
+    TransformerHandler newDECFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+
+    /*
+     * Combines the usage of newRAFilter and newDECFilter into one.
+     *
+     * @param rmin minimum R.A.
+     *
+     * @param rmax maxmimum R.A.
+     *
+     * @param dmin minimum DEC
+     *
+     * @param dmax maxmimum DEC
+     */
+    TransformerHandler newRADECFilter(double rmin, double rmax, double dmin, double dmax) throws TransformerConfigurationException, SAXException,
+            ParserConfigurationException, IOException;
+
+    TransformerHandler newStellarTypeFilter(String type) throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+
+    TransformerHandler newHTMLOutput() throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/InputSourceFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import org.xml.sax.InputSource;
+
+/*
+ * Interface for all input source factory objects. The default implementation
+ * 'InputSourceFactoryImpl' is provided as a straight forward factory
+ * class that creates a new sax input source from a filename.
+ *
+ */
+public interface InputSourceFactory {
+    /*
+     * Creates a new sax InputSource object from a filename.
+     * Also sets the system id of the input source.
+     * @param file filename of the XML input to create the input source.
+     */
+    InputSource newInputSource(String file) throws Exception;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/InputSourceFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+
+import org.xml.sax.InputSource;
+
+/*
+ * Default implementation of a input source factory. This is the most
+ * straight forward way to create a sax input source and set it's
+ * system id.
+ *
+ */
+public class InputSourceFactoryImpl implements InputSourceFactory {
+    public InputSourceFactoryImpl() {
+    }
+
+    public InputSource newInputSource(String filename) {
+        InputSource catSrc = new InputSource(filename);
+        catSrc.setSystemId(filenameToURL(filename));
+        return catSrc;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/SAXFilterFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECENTXSL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RAENTXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+import static test.astro.AstroConstants.TOPTEMPLXSL;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Source;
+import javax.xml.transform.sax.SAXSource;
+
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+/*
+ * Implementation of the filter factory interface that utilizes SAX
+ * sources rather than Stream sources. This factory utilizes a
+ * SAX parser factory and XMLReader to read in the stylesheets used
+ * to create the filters for the query pipeline.
+ * The XMLReader has been equipped with an entity resolver
+ * SAXFilterFactoryEntityResolver, it is used to resolve external
+ * entities in two specialized stylesheets, ra-ent.xsl (derived from
+ * ra.xsl) and dec-ent.xsl (derived from dec.xsl).
+ *
+ */
+public class SAXFilterFactoryImpl extends SourceFilterFactory {
+    private EntityResolver entityResolver;
+
+    public SAXFilterFactoryImpl() {
+        super();
+        entityResolver = new SAXFilterFactoryEntityResolver();
+    }
+
+    @Override
+    protected Source getSource(String xslFileName) throws SAXException, ParserConfigurationException {
+        SAXSource saxsource = new SAXSource(new InputSource(filenameToURL(xslFileName)));
+        saxsource.setXMLReader(getXMLReader());
+        return saxsource;
+    }
+
+    @Override
+    protected String getRAXsl() {
+        return RAENTXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECENTXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+
+    /*
+     * Entity resolver implementation that is used in the SAXFilterFactory
+     * implementation for handling external entities that appear in two
+     * specialized stylesheets, 'ra-ent.xsl' and 'dec-ent.xsl'. Both of these
+     * stylesheets contain an external entity reference to the top level
+     * stylesheet template, which is stored in a separate file,
+     * 'toptemplate.xsl'.
+     */
+    private static class SAXFilterFactoryEntityResolver implements EntityResolver {
+        public InputSource resolveEntity(String publicid, String sysId) {
+            if (sysId.equals("http://astro.com/stylesheets/toptemplate")) {
+                InputSource retval = new InputSource(TOPTEMPLXSL);
+                retval.setSystemId(filenameToURL(TOPTEMPLXSL));
+                return retval;
+            } else {
+                return null; // use default behavior
+            }
+        }
+    }
+
+    private XMLReader getXMLReader() throws SAXException, ParserConfigurationException {
+        SAXParserFactory pfactory = SAXParserFactory.newInstance();
+        pfactory.setNamespaceAware(true);
+        // pfactory.setValidating(true);
+        XMLReader xmlreader = pfactory.newSAXParser().getXMLReader();
+        // entity resolver is used in stylesheets ra-ent.xsl,
+        // dec-ent.xsl. Other stylehsheets will not use it
+        // since they do not contain ext entities.
+        xmlreader.setEntityResolver(entityResolver);
+        return xmlreader;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/SourceFilterFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+
+import org.xml.sax.SAXException;
+
+public abstract class SourceFilterFactory extends AbstractFilterFactory {
+    @Override
+    protected TransformerHandler getTransformerHandler(String xslFileName) throws SAXException, ParserConfigurationException,
+            TransformerConfigurationException, IOException {
+        return getFactory().newTransformerHandler(getSource(xslFileName));
+    }
+
+    abstract protected Source getSource(String xslFileName) throws SAXException, ParserConfigurationException, IOException;
+
+    private SAXTransformerFactory getFactory() {
+        return (SAXTransformerFactory) TransformerFactory.newInstance();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/StreamFilterFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RADECXSL;
+import static test.astro.AstroConstants.RAXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+
+public class StreamFilterFactoryImpl extends SourceFilterFactory {
+    @Override
+    protected Source getSource(String xslFileName) {
+        return new StreamSource(filenameToURL(xslFileName));
+    }
+
+    @Override
+    protected String getRAXsl() {
+        return RAXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return RADECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/libs/test/astro/TemplatesFilterFactoryImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RAURIXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+import static test.astro.AstroConstants.TOPTEMPLINCXSL;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TemplatesHandler;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamSource;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+/*
+ * Implementation of the filter factory interface that utilizes
+ * a TemplatesHandler and creates Templates from the stylesheets.
+ * The Templates objects are then used to create a TransformerHandler
+ * a.k.a Filter which is returned to the caller.
+ * This factory uses a Uri resolver which is registered with the
+ * Transformer factory.
+ *
+ */
+public class TemplatesFilterFactoryImpl extends AbstractFilterFactory {
+    private final URIResolver uriResolver = new TemplatesFilterFactoryURIResolver();
+
+    @Override
+    protected String getRAXsl() {
+        return RAURIXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+
+    @Override
+    protected TransformerHandler getTransformerHandler(String xslFileName) throws SAXException, ParserConfigurationException,
+            TransformerConfigurationException, IOException {
+        SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance();
+        factory.setURIResolver(uriResolver);
+
+        TemplatesHandler templatesHandler = factory.newTemplatesHandler();
+
+        SAXParserFactory pFactory = SAXParserFactory.newInstance();
+        pFactory.setNamespaceAware(true);
+
+        XMLReader xmlreader = pFactory.newSAXParser().getXMLReader();
+
+        // create the stylesheet input source
+        InputSource xslSrc = new InputSource(xslFileName);
+
+        xslSrc.setSystemId(filenameToURL(xslFileName));
+        // hook up the templates handler as the xsl content handler
+        xmlreader.setContentHandler(templatesHandler);
+        // call parse on the xsl input source
+
+        xmlreader.parse(xslSrc);
+
+        // extract the Templates object created from the xsl input source
+        return factory.newTransformerHandler(templatesHandler.getTemplates());
+    }
+
+    /*
+     * Uri resolver used to resolve stylesheet used by the Templates filter
+     * factory.
+     */
+    private static class TemplatesFilterFactoryURIResolver implements URIResolver {
+        public Source resolve(String href, String base) throws TransformerException {
+            if ("http://astro.com/stylesheets/topleveltemplate".equals(href)) {
+                StreamSource ss = new StreamSource(TOPTEMPLINCXSL);
+                ss.setSystemId(filenameToURL(TOPTEMPLINCXSL));
+                return ss;
+            } else {
+                return null;
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/unittest/org/w3c/dom/DOMXPathTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/*
+ * @bug 8042244
+ * @summary Verifies that the experimental DOM L3 XPath implementation is no longer available.
+ */
+public class DOMXPathTest {
+    /*
+       Verifies that DOMImplementation::hasFeature returns false and getFeature
+       returns null for DOM L3 XPath.
+     */
+    @Test
+    public void test() throws ParserConfigurationException {
+        DOMImplementation domImpl = DocumentBuilderFactory.newInstance()
+                .newDocumentBuilder()
+                .getDOMImplementation();
+
+        Assert.assertFalse(domImpl.hasFeature("+XPath", "3.0"));
+        Assert.assertEquals(domImpl.getFeature("+XPath", "3.0"), null);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/unittest/org/w3c/dom/JdkXmlDomTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 org.w3c.dom;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/*
+ * @bug 8078139
+ * @summary Verifies that jdk.xml.dom classes are loaded by the ext class loader.
+ */
+public class JdkXmlDomTest {
+    @Test
+    public void test() throws ClassNotFoundException {
+        ClassLoader cl = ClassLoader.getSystemClassLoader().getParent();
+        Class<?> cls = Class.forName("org.w3c.dom.xpath.XPathEvaluator", false, cl);
+
+        Assert.assertTrue(cls.getClassLoader() != null);
+    }
+}
--- a/jaxws/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -305,3 +305,5 @@
 17c4241395e97312bd75e7acd693ffcdd41ae993 jdk9-b57
 1e06b36bb396c0495e0774f1c6b0356d03847659 jdk9-b58
 8a9ebae410bc388668fc203e559b5407bde757eb jdk9-b59
+f31835b59035377a220efc5a248b90f090ee1689 jdk9-b60
+77f44848c44c003205490bf5ab88035233b65418 jdk9-b61
--- a/jaxws/src/java.activation/share/classes/javax/activation/ActivationDataFlavor.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/ActivationDataFlavor.java	Mon Apr 27 09:17:39 2015 -0700
@@ -31,10 +31,10 @@
 
 /**
  * The ActivationDataFlavor class is a special subclass of
- * <code>java.awt.datatransfer.DataFlavor</code>. It allows the JAF to
+ * {@code java.awt.datatransfer.DataFlavor}. It allows the JAF to
  * set all three values stored by the DataFlavor class via a new
- * constructor. It also contains improved MIME parsing in the <code>equals
- * </code> method. Except for the improved parsing, its semantics are
+ * constructor. It also contains improved MIME parsing in the {@code equals}
+ * method. Except for the improved parsing, its semantics are
  * identical to that of the JDK's DataFlavor class.
  *
  * @since 1.6
@@ -70,7 +70,6 @@
      * representationClass = representationClass<br>
      * mimeType            = mimeType<br>
      * humanName           = humanName
-     * <p>
      *
      * @param representationClass the class used in this DataFlavor
      * @param mimeType the MIME type of the data represented by this class
@@ -98,7 +97,7 @@
      * otherwise:
      * <p>
      * representationClass = InputStream<p>
-     * mimeType = mimeType<p>
+     * mimeType = mimeType
      *
      * @param representationClass the class used in this DataFlavor
      * @param humanPresentableName the human presentable name of the flavor
@@ -175,7 +174,7 @@
 
     /**
      * Compares the DataFlavor passed in with this DataFlavor; calls
-     * the <code>isMimeTypeEqual</code> method.
+     * the {@code isMimeTypeEqual} method.
      *
      * @param dataFlavor        the DataFlavor to compare with
      * @return                  true if the MIME type and representation class
--- a/jaxws/src/java.activation/share/classes/javax/activation/CommandInfo.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/CommandInfo.java	Mon Apr 27 09:17:39 2015 -0700
@@ -85,10 +85,10 @@
      * Return the instantiated JavaBean component.
      * <p>
      * Begin by instantiating the component with
-     * <code>Beans.instantiate()</code>.
+     * {@code Beans.instantiate()}.
      * <p>
-     * If the bean implements the <code>javax.activation.CommandObject</code>
-     * interface, call its <code>setCommandContext</code> method.
+     * If the bean implements the {@code javax.activation.CommandObject}
+     * interface, call its {@code setCommandContext} method.
      * <p>
      * If the DataHandler parameter is null, then the bean is
      * instantiated with no data. NOTE: this may be useful
@@ -102,7 +102,7 @@
      * this method will check if it implements the
      * java.io.Externalizable interface. If it does, the bean's
      * readExternal method will be called if an InputStream
-     * can be acquired from the DataHandler.<p>
+     * can be acquired from the DataHandler.
      *
      * @param dh        The DataHandler that describes the data to be
      *                  passed to the command.
--- a/jaxws/src/java.activation/share/classes/javax/activation/CommandMap.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/CommandMap.java	Mon Apr 27 09:17:39 2015 -0700
@@ -46,7 +46,6 @@
 
     /**
      * Get the default CommandMap.
-     * <p>
      *
      * <ul>
      * <li> In cases where a CommandMap instance has been previously set
@@ -54,7 +53,7 @@
      *  return the CommandMap.
      * <li>
      *  In cases where no CommandMap has been set, the CommandMap
-     *       creates an instance of <code>MailcapCommandMap</code> and
+     *       creates an instance of {@code MailcapCommandMap} and
      *       set that to the default, returning its value.
      *
      * </ul>
@@ -77,7 +76,7 @@
 
     /**
      * Set the default CommandMap. Reset the CommandMap to the default by
-     * calling this method with <code>null</code>.
+     * calling this method with {@code null}.
      *
      * @param commandMap The new default CommandMap.
      * @exception SecurityException if the caller doesn't have permission
@@ -118,10 +117,10 @@
      * Get the preferred command list from a MIME Type. The actual semantics
      * are determined by the implementation of the CommandMap. <p>
      *
-     * The <code>DataSource</code> provides extra information, such as
+     * The {@code DataSource} provides extra information, such as
      * the file name, that a CommandMap implementation may use to further
      * refine the list of commands that are returned.  The implementation
-     * in this class simply calls the <code>getPreferredCommands</code>
+     * in this class simply calls the {@code getPreferredCommands}
      * method that ignores this argument.
      *
      * @param mimeType  the MIME type
@@ -146,10 +145,10 @@
      * Get all the available commands for this type. This method
      * should return all the possible commands for this MIME type. <p>
      *
-     * The <code>DataSource</code> provides extra information, such as
+     * The {@code DataSource} provides extra information, such as
      * the file name, that a CommandMap implementation may use to further
      * refine the list of commands that are returned.  The implementation
-     * in this class simply calls the <code>getAllCommands</code>
+     * in this class simply calls the {@code getAllCommands}
      * method that ignores this argument.
      *
      * @param mimeType  the MIME type
@@ -173,10 +172,10 @@
     /**
      * Get the default command corresponding to the MIME type. <p>
      *
-     * The <code>DataSource</code> provides extra information, such as
+     * The {@code DataSource} provides extra information, such as
      * the file name, that a CommandMap implementation may use to further
      * refine the command that is chosen.  The implementation
-     * in this class simply calls the <code>getCommand</code>
+     * in this class simply calls the {@code getCommand}
      * method that ignores this argument.
      *
      * @param mimeType  the MIME type
@@ -206,10 +205,10 @@
      * The mechanism and semantics for determining this are determined
      * by the implementation of the particular CommandMap. <p>
      *
-     * The <code>DataSource</code> provides extra information, such as
+     * The {@code DataSource} provides extra information, such as
      * the file name, that a CommandMap implementation may use to further
      * refine the choice of DataContentHandler.  The implementation
-     * in this class simply calls the <code>createDataContentHandler</code>
+     * in this class simply calls the {@code createDataContentHandler}
      * method that ignores this argument.
      *
      * @param mimeType  the MIME type
--- a/jaxws/src/java.activation/share/classes/javax/activation/CommandObject.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/CommandObject.java	Mon Apr 27 09:17:39 2015 -0700
@@ -34,7 +34,7 @@
  * data they should operate on.  JavaBeans that don't implement
  * this interface may be used as well.  Such commands may obtain
  * the data using the Externalizable interface, or using an
- * application-specific method.<p>
+ * application-specific method.
  *
  * @since 1.6
  */
@@ -44,7 +44,7 @@
      * Initialize the Command with the verb it is requested to handle
      * and the DataHandler that describes the data it will
      * operate on. <b>NOTE:</b> it is acceptable for the caller
-     * to pass <i>null</i> as the value for <code>DataHandler</code>.
+     * to pass <i>null</i> as the value for {@code DataHandler}.
      *
      * @param verb The Command Verb this object refers to.
      * @param dh The DataHandler.
--- a/jaxws/src/java.activation/share/classes/javax/activation/DataHandler.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/DataHandler.java	Mon Apr 27 09:17:39 2015 -0700
@@ -54,11 +54,11 @@
  *
  * <b>DataHandler and CommandMaps</b><p>
  * The DataHandler keeps track of the current CommandMap that it uses to
- * service requests for commands (<code>getCommand</code>,
- * <code>getAllCommands</code>, <code>getPreferredCommands</code>).
+ * service requests for commands ({@code getCommand, getAllCommands,
+ * getPreferredCommands}).
  * Each instance of a DataHandler may have a CommandMap associated with
- * it using the <code>setCommandMap</code> method.  If a CommandMap was
- * not set, DataHandler calls the <code>getDefaultCommandMap</code>
+ * it using the {@code setCommandMap} method.  If a CommandMap was
+ * not set, DataHandler calls the {@code getDefaultCommandMap}
  * method in CommandMap and uses the value it returns. See
  * <i>CommandMap</i> for more information. <p>
  *
@@ -105,7 +105,7 @@
     private String shortType = null;
 
     /**
-     * Create a <code>DataHandler</code> instance referencing the
+     * Create a {@code DataHandler} instance referencing the
      * specified DataSource.  The data exists in a byte stream form.
      * The DataSource will provide an InputStream to access the data.
      *
@@ -118,7 +118,7 @@
     }
 
     /**
-     * Create a <code>DataHandler</code> instance representing an object
+     * Create a {@code DataHandler} instance representing an object
      * of this MIME type.  This constructor is
      * used when the application already has an in-memory representation
      * of the data in the form of a Java Object.
@@ -133,8 +133,8 @@
     }
 
     /**
-     * Create a <code>DataHandler</code> instance referencing a URL.
-     * The DataHandler internally creates a <code>URLDataSource</code>
+     * Create a {@code DataHandler} instance referencing a URL.
+     * The DataHandler internally creates a {@code URLDataSource}
      * instance to represent the URL.
      *
      * @param url       a URL object
@@ -181,7 +181,7 @@
     /**
      * Return the name of the data object. If this DataHandler
      * was created with a DataSource, this method calls through
-     * to the <code>DataSource.getName</code> method, otherwise it
+     * to the {@code DataSource.getName} method, otherwise it
      * returns <i>null</i>.
      *
      * @return  the name of the object
@@ -211,7 +211,7 @@
      * Get the InputStream for this object. <p>
      *
      * For DataHandlers instantiated with a DataSource, the DataHandler
-     * calls the <code>DataSource.getInputStream</code> method and
+     * calls the {@code DataSource.getInputStream} method and
      * returns the result to the caller.
      * <p>
      * For DataHandlers instantiated with an Object, the DataHandler
@@ -219,11 +219,11 @@
      * the DataHandler can not find a DataContentHandler for this MIME
      * type, it throws an UnsupportedDataTypeException.  If it is
      * successful, it creates a pipe and a thread.  The thread uses the
-     * DataContentHandler's <code>writeTo</code> method to write the
+     * DataContentHandler's {@code writeTo} method to write the
      * stream data into one end of the pipe.  The other end of the pipe
      * is returned to the caller.  Because a thread is created to copy
      * the data, IOExceptions that may occur during the copy can not be
-     * propagated back to the caller. The result is an empty stream.<p>
+     * propagated back to the caller. The result is an empty stream.
      *
      * @return  the InputStream representing this data
      * @exception IOException   if an I/O error occurs
@@ -281,7 +281,7 @@
     }
 
     /**
-     * Write the data to an <code>OutputStream</code>.<p>
+     * Write the data to an {@code OutputStream}.<p>
      *
      * If the DataHandler was created with a DataSource, writeTo
      * retrieves the InputStream and copies the bytes from the
@@ -290,7 +290,7 @@
      * If the DataHandler was created with an object, writeTo
      * retrieves the DataContentHandler for the object's type.
      * If the DataContentHandler was found, it calls the
-     * <code>writeTo</code> method on the <code>DataContentHandler</code>.
+     * {@code writeTo} method on the {@code DataContentHandler}.
      *
      * @param os        the OutputStream to write to
      * @exception IOException   if an I/O error occurs
@@ -322,8 +322,8 @@
      * Get an OutputStream for this DataHandler to allow overwriting
      * the underlying data.
      * If the DataHandler was created with a DataSource, the
-     * DataSource's <code>getOutputStream</code> method is called.
-     * Otherwise, <code>null</code> is returned.
+     * DataSource's {@code getOutputStream} method is called.
+     * Otherwise, {@code null} is returned.
      *
      * @return the OutputStream
      *
@@ -348,12 +348,12 @@
      * The DataHandler attempts to find a DataContentHandler that
      * corresponds to the MIME type of the data. If one is located,
      * the DataHandler calls the DataContentHandler's
-     * <code>getTransferDataFlavors</code> method. <p>
+     * {@code getTransferDataFlavors} method. <p>
      *
      * If a DataContentHandler can <i>not</i> be located, and if the
      * DataHandler was created with a DataSource (or URL), one
      * DataFlavor is returned that represents this object's MIME type
-     * and the <code>java.io.InputStream</code> class.  If the
+     * and the {@code java.io.InputStream} class.  If the
      * DataHandler was created with an object and a MIME type,
      * getTransferDataFlavors returns one DataFlavor that represents
      * this object's MIME type and the object's class.
@@ -381,7 +381,7 @@
      * for this object.<p>
      *
      * This method iterates through the DataFlavors returned from
-     * <code>getTransferDataFlavors</code>, comparing each with
+     * {@code getTransferDataFlavors}, comparing each with
      * the specified flavor.
      *
      * @param flavor    the requested flavor for the data
@@ -407,10 +407,10 @@
      *
      * The DataHandler attempts to locate a DataContentHandler
      * for this MIME type. If one is found, the passed in DataFlavor
-     * and the type of the data are passed to its <code>getTransferData</code>
+     * and the type of the data are passed to its {@code getTransferData}
      * method. If the DataHandler fails to locate a DataContentHandler
      * and the flavor specifies this object's MIME type and the
-     * <code>java.io.InputStream</code> class, this object's InputStream
+     * {@code java.io.InputStream} class, this object's InputStream
      * is returned.
      * Otherwise it throws an UnsupportedFlavorException. <p>
      *
@@ -438,10 +438,10 @@
 
     /**
      * Set the CommandMap for use by this DataHandler.
-     * Setting it to <code>null</code> causes the CommandMap to revert
+     * Setting it to {@code null} causes the CommandMap to revert
      * to the CommandMap returned by the
-     * <code>CommandMap.getDefaultCommandMap</code> method.
-     * Changing the CommandMap, or setting it to <code>null</code>,
+     * {@code CommandMap.getDefaultCommandMap} method.
+     * Changing the CommandMap, or setting it to {@code null},
      * clears out any data cached from the previous CommandMap.
      *
      * @param commandMap        the CommandMap to use in this DataHandler
@@ -460,7 +460,7 @@
 
     /**
      * Return the <i>preferred</i> commands for this type of data.
-     * This method calls the <code>getPreferredCommands</code> method
+     * This method calls the {@code getPreferredCommands} method
      * in the CommandMap associated with this instance of DataHandler.
      * This method returns an array that represents a subset of
      * available commands. In cases where multiple commands for the
@@ -484,7 +484,7 @@
      * This method returns an array containing all commands
      * for the type of data represented by this DataHandler. The
      * MIME type for the underlying data represented by this DataHandler
-     * is used to call through to the <code>getAllCommands</code> method
+     * is used to call through to the {@code getAllCommands} method
      * of the CommandMap associated with this DataHandler.
      *
      * @return  the CommandInfo objects representing all the commands
@@ -502,7 +502,7 @@
      * Get the command <i>cmdName</i>. Use the search semantics as
      * defined by the CommandMap installed in this DataHandler. The
      * MIME type for the underlying data represented by this DataHandler
-     * is used to call through to the <code>getCommand</code> method
+     * is used to call through to the {@code getCommand} method
      * of the CommandMap associated with this DataHandler.
      *
      * @param cmdName   the command name
@@ -527,7 +527,7 @@
      * If the DataHandler was instantiated with a DataSource,
      * this method uses a DataContentHandler to return the content
      * object for the data represented by this DataHandler. If no
-     * <code>DataContentHandler</code> can be found for the
+     * {@code DataContentHandler} can be found for the
      * the type of this data, the DataHandler returns an
      * InputStream for the data.
      *
@@ -547,9 +547,9 @@
      * and instantiates the corresponding command, usually
      * a JavaBean component.
      * <p>
-     * This method calls the CommandInfo's <code>getCommandObject</code>
-     * method with the <code>ClassLoader</code> used to load
-     * the <code>javax.activation.DataHandler</code> class itself.
+     * This method calls the CommandInfo's {@code getCommandObject}
+     * method with the {@code ClassLoader} used to load
+     * the {@code javax.activation.DataHandler} class itself.
      *
      * @param cmdinfo   the CommandInfo corresponding to a command
      * @return  the instantiated command object
@@ -701,16 +701,16 @@
     }
 
     /**
-     * Returns an <code>InputStream</code> representing this object.
-     * @return  the <code>InputStream</code>
+     * Returns an {@code InputStream} representing this object.
+     * @return  the {@code InputStream}
      */
     public InputStream getInputStream() throws IOException {
         return dataHandler.getInputStream();
     }
 
     /**
-     * Returns the <code>OutputStream</code> for this object.
-     * @return  the <code>OutputStream</code>
+     * Returns the {@code OutputStream} for this object.
+     * @return  the {@code OutputStream}
      */
     public OutputStream getOutputStream() throws IOException {
         return dataHandler.getOutputStream();
@@ -754,7 +754,7 @@
     }
 
     /**
-     * Return the DataFlavors for this <code>DataContentHandler</code>.
+     * Return the DataFlavors for this {@code DataContentHandler}.
      * @return  the DataFlavors
      */
     public DataFlavor[] getTransferDataFlavors() {
@@ -842,7 +842,7 @@
     }
 
     /**
-     * Return the DataFlavors for this <code>DataContentHandler</code>.
+     * Return the DataFlavors for this {@code DataContentHandler}.
      * @return  the DataFlavors
      */
     public synchronized DataFlavor[] getTransferDataFlavors() {
--- a/jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java	Mon Apr 27 09:17:39 2015 -0700
@@ -45,14 +45,13 @@
  * system for mailcap file entries. When requests are made
  * to search for commands in the MailcapCommandMap, it searches
  * mailcap files in the following order:
- * <p>
  * <ol>
  * <li> Programatically added entries to the MailcapCommandMap instance.
- * <li> The file <code>.mailcap</code> in the user's home directory.
- * <li> The file &lt;<i>java.home</i>&gt;<code>/lib/mailcap</code>.
- * <li> The file or resources named <code>META-INF/mailcap</code>.
- * <li> The file or resource named <code>META-INF/mailcap.default</code>
- * (usually found only in the <code>activation.jar</code> file).
+ * <li> The file {@code .mailcap} in the user's home directory.
+ * <li> The file {@literal <}<i>java.home</i>{@literal >}{@code /lib/mailcap}.
+ * <li> The file or resources named {@code META-INF/mailcap}.
+ * <li> The file or resource named {@code META-INF/mailcap.default}
+ * (usually found only in the {@code activation.jar} file).
  * </ol>
  * <p>
  * <b>Mailcap file format:</b><p>
@@ -70,46 +69,43 @@
  *
  * When a mailcap file is
  * parsed, the MailcapCommandMap recognizes certain parameter signatures,
- * specifically those parameter names that begin with <code>x-java-</code>.
+ * specifically those parameter names that begin with {@code x-java-}.
  * The MailcapCommandMap uses this signature to find
  * command entries for inclusion into its registries.
- * Parameter names with the form <code>x-java-&lt;name></code>
+ * Parameter names with the form {@code x-java-<name>}
  * are read by the MailcapCommandMap as identifying a command
- * with the name <i>name</i>. When the <i>name</i> is <code>
- * content-handler</code> the MailcapCommandMap recognizes the class
+ * with the name <i>name</i>. When the <i>name</i> is {@code
+ * content-handler} the MailcapCommandMap recognizes the class
  * signified by this parameter as a <i>DataContentHandler</i>.
  * All other commands are handled generically regardless of command
  * name. The command implementation is specified by a fully qualified
  * class name of a JavaBean(tm) component. For example; a command for viewing
- * some data can be specified as: <code>x-java-view=com.foo.ViewBean</code>.<p>
+ * some data can be specified as: {@code x-java-view=com.foo.ViewBean}.<p>
  *
- * When the command name is <code>fallback-entry</code>, the value of
- * the command may be <code>true</code> or <code>false</code>.  An
+ * When the command name is {@code fallback-entry}, the value of
+ * the command may be {@code true} or {@code false}.  An
  * entry for a MIME type that includes a parameter of
- * <code>x-java-fallback-entry=true</code> defines fallback commands
+ * {@code x-java-fallback-entry=true} defines fallback commands
  * for that MIME type that will only be used if no non-fallback entry
- * can be found.  For example, an entry of the form <code>text/*; ;
- * x-java-fallback-entry=true; x-java-view=com.sun.TextViewer</code>
+ * can be found.  For example, an entry of the form {@code text/*; ;
+ * x-java-fallback-entry=true; x-java-view=com.sun.TextViewer}
  * specifies a view command to be used for any text MIME type.  This
  * view command would only be used if a non-fallback view command for
  * the MIME type could not be found.<p>
  *
  * MailcapCommandMap aware mailcap files have the
- * following general form:<p>
- * <code>
- * # Comments begin with a '#' and continue to the end of the line.<br>
- * &lt;mime type>; ; &lt;parameter list><br>
- * # Where a parameter list consists of one or more parameters,<br>
- * # where parameters look like: x-java-view=com.sun.TextViewer<br>
- * # and a parameter list looks like: <br>
+ * following general form:
+ * <pre>{@code
+ * # Comments begin with a '#' and continue to the end of the line.
+ * <mime type>; ; <parameter list>
+ * # Where a parameter list consists of one or more parameters,
+ * # where parameters look like: x-java-view=com.sun.TextViewer
+ * # and a parameter list looks like:
  * text/plain; ; x-java-view=com.sun.TextViewer; x-java-edit=com.sun.TextEdit
- * <br>
- * # Note that mailcap entries that do not contain 'x-java' parameters<br>
- * # and comply to RFC 1524 are simply ignored:<br>
- * image/gif; /usr/dt/bin/sdtimage %s<br>
- *
- * </code>
- * <p>
+ * # Note that mailcap entries that do not contain 'x-java' parameters
+ * # and comply to RFC 1524 are simply ignored:
+ * image/gif; /usr/dt/bin/sdtimage %s
+ * }</pre>
  *
  * @author Bart Calder
  * @author Bill Shannon
@@ -451,7 +447,7 @@
     }
 
     /**
-     * Get the command corresponding to <code>cmdName</code> for the MIME type.
+     * Get the command corresponding to {@code cmdName} for the MIME type.
      *
      * @param mimeType  the MIME type
      * @param cmdName   the command name
--- a/jaxws/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java	Mon Apr 27 09:17:39 2015 -0700
@@ -33,33 +33,32 @@
 
 /**
  * This class extends FileTypeMap and provides data typing of files
- * via their file extension. It uses the <code>.mime.types</code> format. <p>
+ * via their file extension. It uses the {@code .mime.types} format. <p>
  *
  * <b>MIME types file search order:</b><p>
  * The MimetypesFileTypeMap looks in various places in the user's
  * system for MIME types file entries. When requests are made
  * to search for MIME types in the MimetypesFileTypeMap, it searches
  * MIME types files in the following order:
- * <p>
  * <ol>
  * <li> Programmatically added entries to the MimetypesFileTypeMap instance.
- * <li> The file <code>.mime.types</code> in the user's home directory.
- * <li> The file &lt;<i>java.home</i>&gt;<code>/lib/mime.types</code>.
- * <li> The file or resources named <code>META-INF/mime.types</code>.
- * <li> The file or resource named <code>META-INF/mimetypes.default</code>
- * (usually found only in the <code>activation.jar</code> file).
+ * <li> The file {@code .mime.types} in the user's home directory.
+ * <li> The file {@literal <}<i>java.home</i>{@literal >}{@code /lib/mime.types}.
+ * <li> The file or resources named {@code META-INF/mime.types}.
+ * <li> The file or resource named {@code META-INF/mimetypes.default}
+ * (usually found only in the {@code activation.jar} file).
  * </ol>
  * <p>
- * <b>MIME types file format:</b><p>
+ * <b>MIME types file format:</b>
  *
- * <code>
- * # comments begin with a '#'<br>
- * # the format is &lt;mime type> &lt;space separated file extensions><br>
- * # for example:<br>
- * text/plain    txt text TXT<br>
- * # this would map file.txt, file.text, and file.TXT to<br>
- * # the mime type "text/plain"<br>
- * </code>
+ * <pre>{@code
+ * # comments begin with a '#'
+ * # the format is <mime type> <space separated file extensions>
+ * # for example:
+ * text/plain    txt text TXT
+ * # this would map file.txt, file.text, and file.TXT to
+ * # the mime type "text/plain"
+ * }</pre>
  *
  * @author Bart Calder
  * @author Bill Shannon
@@ -277,7 +276,7 @@
     /**
      * Return the MIME type of the file object.
      * The implementation in this class calls
-     * <code>getContentType(f.getName())</code>.
+     * {@code getContentType(f.getName())}.
      *
      * @param f the file
      * @return  the file's MIME type
--- a/jaxws/src/java.annotations.common/share/classes/javax/annotation/PostConstruct.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.annotations.common/share/classes/javax/annotation/PostConstruct.java	Mon Apr 27 09:17:39 2015 -0700
@@ -39,7 +39,6 @@
  * method can be annotated with this annotation. The method on which the
  * PostConstruct annotation is applied MUST fulfill all of the following
  * criteria:
- * <p>
  * <ul>
  * <li>The method MUST NOT have any parameters except in the case of
  * interceptors in which case it takes an InvocationContext object as
--- a/jaxws/src/java.annotations.common/share/classes/javax/annotation/PreDestroy.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.annotations.common/share/classes/javax/annotation/PreDestroy.java	Mon Apr 27 09:17:39 2015 -0700
@@ -38,7 +38,6 @@
  * except the application client container in Java EE 5. The method on which
  * the PreDestroy annotation is applied MUST fulfill all of the following
  * criteria:
- * <p>
  * <ul>
  * <li>The method MUST NOT have any parameters except in the case of
  * interceptors in which case it takes an InvocationContext object as
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ClassFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ClassFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -30,6 +30,8 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.ref.WeakReference;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Map;
 import java.util.WeakHashMap;
 import java.util.logging.Level;
@@ -85,19 +87,25 @@
         if(consRef!=null)
             cons = consRef.get();
         if(cons==null) {
-            try {
-                cons = clazz.getDeclaredConstructor(emptyClass);
-            } catch (NoSuchMethodException e) {
-                logger.log(Level.INFO,"No default constructor found on "+clazz,e);
-                NoSuchMethodError exp;
-                if(clazz.getDeclaringClass()!=null && !Modifier.isStatic(clazz.getModifiers())) {
-                    exp = new NoSuchMethodError(Messages.NO_DEFAULT_CONSTRUCTOR_IN_INNER_CLASS.format(clazz.getName()));
-                } else {
-                    exp = new NoSuchMethodError(e.getMessage());
+            cons = AccessController.doPrivileged(new PrivilegedAction<Constructor<T>>() {
+                @Override
+                public Constructor<T> run() {
+                    try {
+                        return clazz.getDeclaredConstructor(emptyClass);
+                    } catch (NoSuchMethodException e) {
+                        logger.log(Level.INFO,"No default constructor found on "+clazz,e);
+                        NoSuchMethodError exp;
+                        if(clazz.getDeclaringClass()!=null && !Modifier.isStatic(clazz.getModifiers())) {
+                            exp = new NoSuchMethodError(Messages.NO_DEFAULT_CONSTRUCTOR_IN_INNER_CLASS
+                                                                .format(clazz.getName()));
+                        } else {
+                            exp = new NoSuchMethodError(e.getMessage());
+                        }
+                        exp.initCause(e);
+                        throw exp;
+                    }
                 }
-                exp.initCause(e);
-                throw exp;
-            }
+            });
 
             int classMod = clazz.getModifiers();
 
--- a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/DatatypeConverterInterface.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/DatatypeConverterInterface.java	Mon Apr 27 09:17:39 2015 -0700
@@ -38,19 +38,16 @@
  * functionality.  Calling this api repeatedly will have no effect - the
  * DatatypeConverter instance passed into the first invocation is the one that
  * will be used from then on.
- * </p>
  *
  * <p>
  * This interface defines the parse and print methods. There is one
  * parse and print method for each XML schema datatype specified in the
  * the default binding Table 5-1 in the JAXB specification.
- * </p>
  *
  * <p>
  * The parse and print methods defined here are invoked by the static parse
  * and print methods defined in the {@link DatatypeConverter DatatypeConverter}
  * class.
- * </p>
  *
  * <p>
  * A parse method for a XML schema datatype must be capable of converting any
@@ -60,21 +57,23 @@
  * If an error is encountered during conversion, then an IllegalArgumentException
  * or a subclass of IllegalArgumentException must be thrown by the method.
  *
- * </p>
- *
  * <p>
  * A print method for a XML schema datatype can output any lexical
  * representation that is valid with respect to the XML schema datatype.
  * If an error is encountered during conversion, then an IllegalArgumentException,
  * or a subclass of IllegalArgumentException must be thrown by the method.
- * </p>
  *
+ * <p>
  * The prefix xsd: is used to refer to XML schema datatypes
  * <a href="http://www.w3.org/TR/xmlschema-2/"> XML Schema Part2: Datatypes
  * specification.</a>
  *
- * <p>
- * @author <ul><li>Sekhar Vajjhala, Sun Microsystems, Inc.</li><li>Joe Fialli, Sun Microsystems Inc.</li><li>Kohsuke Kawaguchi, Sun Microsystems, Inc.</li><li>Ryan Shoemaker,Sun Microsystems Inc.</li></ul>
+ * @author <ul>
+ *         <li>Sekhar Vajjhala, Sun Microsystems, Inc.</li>
+ *         <li>Joe Fialli, Sun Microsystems Inc.</li>
+ *         <li>Kohsuke Kawaguchi, Sun Microsystems, Inc.</li>
+ *         <li>Ryan Shoemaker,Sun Microsystems Inc.</li>
+ *         </ul>
  * @see DatatypeConverter
  * @see ParseConversionEvent
  * @see PrintConversionEvent
@@ -83,7 +82,6 @@
 
 public interface DatatypeConverterInterface {
     /**
-     * <p>
      * Convert the string argument into a string.
      * @param lexicalXSDString
      *     A lexical representation of the XML Schema datatype xsd:string
@@ -93,91 +91,83 @@
     public String parseString( String lexicalXSDString );
 
     /**
-     * <p>
      * Convert the string argument into a BigInteger value.
      * @param lexicalXSDInteger
      *     A string containing a lexical representation of
      *     xsd:integer.
      * @return
      *     A BigInteger value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDInteger</code> is not a valid string representation of a {@link java.math.BigInteger} value.
+     * @throws NumberFormatException {@code lexicalXSDInteger} is not a valid string representation of a {@link java.math.BigInteger} value.
      */
     public java.math.BigInteger parseInteger( String lexicalXSDInteger );
 
     /**
-     * <p>
      * Convert the string argument into an int value.
      * @param lexicalXSDInt
      *     A string containing a lexical representation of
      *     xsd:int.
      * @return
      *     An int value represented byte the string argument.
-     * @throws NumberFormatException <code>lexicalXSDInt</code> is not a valid string representation of an <code>int</code> value.
+     * @throws NumberFormatException {@code lexicalXSDInt} is not a valid string representation of an {@code int} value.
      */
     public int parseInt( String lexicalXSDInt );
 
     /**
-     * <p>
      * Converts the string argument into a long value.
      * @param lexicalXSDLong
      *     A string containing lexical representation of
      *     xsd:long.
      * @return
      *     A long value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDLong</code> is not a valid string representation of a <code>long</code> value.
+     * @throws NumberFormatException {@code lexicalXSDLong} is not a valid string representation of a {@code long} value.
      */
     public long parseLong( String lexicalXSDLong );
 
     /**
-     * <p>
      * Converts the string argument into a short value.
      * @param lexicalXSDShort
      *     A string containing lexical representation of
      *     xsd:short.
      * @return
      *     A short value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDShort</code> is not a valid string representation of a <code>short</code> value.
+     * @throws NumberFormatException {@code lexicalXSDShort} is not a valid string representation of a {@code short} value.
      */
     public short parseShort( String lexicalXSDShort );
 
     /**
-     * <p>
      * Converts the string argument into a BigDecimal value.
      * @param lexicalXSDDecimal
      *     A string containing lexical representation of
      *     xsd:decimal.
      * @return
      *     A BigDecimal value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDDecimal</code> is not a valid string representation of {@link java.math.BigDecimal}.
+     * @throws NumberFormatException {@code lexicalXSDDecimal} is not a valid string representation of {@link java.math.BigDecimal}.
      */
     public java.math.BigDecimal parseDecimal( String lexicalXSDDecimal );
 
     /**
-     * <p>
      * Converts the string argument into a float value.
      * @param lexicalXSDFloat
      *     A string containing lexical representation of
      *     xsd:float.
      * @return
      *     A float value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDFloat</code> is not a valid string representation of a <code>float</code> value.
+     * @throws NumberFormatException {@code lexicalXSDFloat} is not a valid string representation of a {@code float} value.
      */
     public float parseFloat( String lexicalXSDFloat );
 
     /**
-     * <p>
      * Converts the string argument into a double value.
      * @param lexicalXSDDouble
      *     A string containing lexical representation of
      *     xsd:double.
      * @return
      *     A double value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDDouble</code> is not a valid string representation of a <code>double</code> value.
+     * @throws NumberFormatException {@code lexicalXSDDouble} is not a valid string representation of a {@code double} value.
      */
     public double parseDouble( String lexicalXSDDouble );
 
     /**
-     * <p>
      * Converts the string argument into a boolean value.
      * @param lexicalXSDBoolean
      *     A string containing lexical representation of
@@ -189,20 +179,18 @@
     public boolean parseBoolean( String lexicalXSDBoolean );
 
     /**
-     * <p>
      * Converts the string argument into a byte value.
      * @param lexicalXSDByte
      *     A string containing lexical representation of
      *     xsd:byte.
      * @return
      *     A byte value represented by the string argument.
-     * @throws NumberFormatException <code>lexicalXSDByte</code> does not contain a parseable byte.
+     * @throws NumberFormatException {@code lexicalXSDByte} does not contain a parseable byte.
      * @throws IllegalArgumentException if string parameter does not conform to lexical value space defined in XML Schema Part 2: Datatypes for xsd:byte.
      */
     public byte parseByte( String lexicalXSDByte );
 
     /**
-     * <p>
      * Converts the string argument into a QName value.
      *
      * <p>
@@ -222,7 +210,6 @@
                                              javax.xml.namespace.NamespaceContext nsc);
 
     /**
-     * <p>
      * Converts the string argument into a Calendar value.
      * @param lexicalXSDDateTime
      *     A string containing lexical representation of
@@ -234,7 +221,6 @@
     public java.util.Calendar parseDateTime( String lexicalXSDDateTime );
 
     /**
-     * <p>
      * Converts the string argument into an array of bytes.
      * @param lexicalXSDBase64Binary
      *     A string containing lexical representation
@@ -246,7 +232,6 @@
     public byte[] parseBase64Binary( String lexicalXSDBase64Binary );
 
     /**
-     * <p>
      * Converts the string argument into an array of bytes.
      * @param lexicalXSDHexBinary
      *     A string containing lexical representation of
@@ -258,7 +243,6 @@
     public byte[] parseHexBinary( String lexicalXSDHexBinary );
 
     /**
-     * <p>
      * Converts the string argument into a long value.
      * @param lexicalXSDUnsignedInt
      *     A string containing lexical representation
@@ -270,7 +254,6 @@
     public long parseUnsignedInt( String lexicalXSDUnsignedInt );
 
     /**
-     * <p>
      * Converts the string argument into an int value.
      * @param lexicalXSDUnsignedShort
      *     A string containing lexical
@@ -282,7 +265,6 @@
     public int parseUnsignedShort( String lexicalXSDUnsignedShort );
 
     /**
-     * <p>
      * Converts the string argument into a Calendar value.
      * @param lexicalXSDTime
      *     A string containing lexical representation of
@@ -294,7 +276,6 @@
     public java.util.Calendar parseTime( String lexicalXSDTime );
 
     /**
-     * <p>
      * Converts the string argument into a Calendar value.
      * @param lexicalXSDDate
      *     A string containing lexical representation of
@@ -306,7 +287,6 @@
     public java.util.Calendar parseDate( String lexicalXSDDate );
 
     /**
-     * <p>
      * Return a string containing the lexical representation of the
      * simple type.
      * @param lexicalXSDAnySimpleType
@@ -319,7 +299,6 @@
     public String parseAnySimpleType( String lexicalXSDAnySimpleType );
 
     /**
-     * <p>
      * Converts the string argument into a string.
      * @param val
      *     A string value.
@@ -329,7 +308,6 @@
     public String printString( String val );
 
     /**
-     * <p>
      * Converts a BigInteger value into a string.
      * @param val
      *     A BigInteger value
@@ -340,7 +318,6 @@
     public String printInteger( java.math.BigInteger val );
 
     /**
-     * <p>
      * Converts an int value into a string.
      * @param val
      *     An int value
@@ -351,7 +328,6 @@
 
 
     /**
-     * <p>
      * Converts a long value into a string.
      * @param val
      *     A long value
@@ -361,7 +337,6 @@
     public String printLong( long val );
 
     /**
-     * <p>
      * Converts a short value into a string.
      * @param val
      *     A short value
@@ -371,7 +346,6 @@
     public String printShort( short val );
 
     /**
-     * <p>
      * Converts a BigDecimal value into a string.
      * @param val
      *     A BigDecimal value
@@ -382,7 +356,6 @@
     public String printDecimal( java.math.BigDecimal val );
 
     /**
-     * <p>
      * Converts a float value into a string.
      * @param val
      *     A float value
@@ -392,7 +365,6 @@
     public String printFloat( float val );
 
     /**
-     * <p>
      * Converts a double value into a string.
      * @param val
      *     A double value
@@ -402,7 +374,6 @@
     public String printDouble( double val );
 
     /**
-     * <p>
      * Converts a boolean value into a string.
      * @param val
      *     A boolean value
@@ -412,7 +383,6 @@
     public String printBoolean( boolean val );
 
     /**
-     * <p>
      * Converts a byte value into a string.
      * @param val
      *     A byte value
@@ -422,7 +392,6 @@
     public String printByte( byte val );
 
     /**
-     * <p>
      * Converts a QName instance into a string.
      * @param val
      *     A QName value
@@ -437,7 +406,6 @@
                               javax.xml.namespace.NamespaceContext nsc );
 
     /**
-     * <p>
      * Converts a Calendar value into a string.
      * @param val
      *     A Calendar value
@@ -448,7 +416,6 @@
     public String printDateTime( java.util.Calendar val );
 
     /**
-     * <p>
      * Converts an array of bytes into a string.
      * @param val
      *     an array of bytes
@@ -459,7 +426,6 @@
     public String printBase64Binary( byte[] val );
 
     /**
-     * <p>
      * Converts an array of bytes into a string.
      * @param val
      *     an array of bytes
@@ -470,7 +436,6 @@
     public String printHexBinary( byte[] val );
 
     /**
-     * <p>
      * Converts a long value into a string.
      * @param val
      *     A long value
@@ -480,7 +445,6 @@
     public String printUnsignedInt( long val );
 
     /**
-     * <p>
      * Converts an int value into a string.
      * @param val
      *     An int value
@@ -490,7 +454,6 @@
     public String printUnsignedShort( int val );
 
     /**
-     * <p>
      * Converts a Calendar value into a string.
      * @param val
      *     A Calendar value
@@ -501,7 +464,6 @@
     public String printTime( java.util.Calendar val );
 
     /**
-     * <p>
      * Converts a Calendar value into a string.
      * @param val
      *     A Calendar value
@@ -512,7 +474,6 @@
     public String printDate( java.util.Calendar val );
 
     /**
-     * <p>
      * Converts a string value into a string.
      * @param val
      *     A string value
--- a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/JAXBPermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/JAXBPermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -40,7 +40,6 @@
  * The following table lists all the possible {@code JAXBPermission} target names,
  * and for each provides a description of what the permission allows
  * and a discussion of the risks of granting code the permission.
- * <P>
  *
  * <table border=1 cellpadding=5 summary="Permission target name, what the permission allows, and associated risks">
  * <tr>
--- a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/annotation/XmlElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/annotation/XmlElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -36,7 +36,7 @@
 /**
  * Maps a JavaBean property to a XML element derived from property name.
  *
- * <p> <b>Usage</b> </p>
+ * <p> <b>Usage</b>
  * <p>
  * <tt>@XmlElement</tt> annotation can be used with the following program
  * elements:
@@ -44,8 +44,6 @@
  *   <li> a JavaBean property </li>
  *   <li> non static, non transient field </li>
  *   <li> within {@link XmlElements}
- * <p>
- *
  * </ul>
  *
  * The usage is subject to the following constraints:
@@ -79,7 +77,7 @@
  * <pre>
  *     //Example: Code fragment
  *     public class USPrice {
- *         &#64;XmlElement(name="itemprice")
+ *        {@literal @}XmlElement(name="itemprice")
  *         public java.math.BigDecimal price;
  *     }
  * {@code
@@ -95,10 +93,9 @@
  *
  * <b> Example 2: </b> Map a field to a nillable element.
  *   <pre>
- *
  *     //Example: Code fragment
  *     public class USPrice {
- *         &#64;XmlElement(nillable=true)
+ *        {@literal @}XmlElement(nillable=true)
  *         public java.math.BigDecimal price;
  *     }
  * {@code
@@ -113,10 +110,9 @@
  * <p>
  * <b> Example 3: </b> Map a field to a nillable, required element.
  *   <pre>
- *
  *     //Example: Code fragment
  *     public class USPrice {
- *         &#64;XmlElement(nillable=true, required=true)
+ *        {@literal @}XmlElement(nillable=true, required=true)
  *         public java.math.BigDecimal price;
  *     }
  * {@code
@@ -134,7 +130,6 @@
  * <p>
  * See Example 6 in @{@link XmlType}.
  *
- * <p>
  * @author Sekhar Vajjhala, Sun Microsystems, Inc.
  * @since 1.6, JAXB 2.0
  */
--- a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/attachment/AttachmentMarshaller.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/attachment/AttachmentMarshaller.java	Mon Apr 27 09:17:39 2015 -0700
@@ -29,22 +29,22 @@
 import javax.xml.bind.Marshaller;
 
 /**
- * <p>Enable JAXB marshalling to optimize storage of binary data.</p>
+ * <p>Enable JAXB marshalling to optimize storage of binary data.
  *
  * <p>This API enables an efficient cooperative creation of optimized
  * binary data formats between a JAXB marshalling process and a MIME-based package
  * processor. A JAXB implementation marshals the root body of a MIME-based package,
  * delegating the creation of referenceable MIME parts to
- * the MIME-based package processor that implements this abstraction.</p>
+ * the MIME-based package processor that implements this abstraction.
  *
  * <p>XOP processing is enabled when {@link #isXOPPackage()} is true.
  *    See {@link #addMtomAttachment(DataHandler, String, String)} for details.
- * </p>
+ *
  *
  * <p>WS-I Attachment Profile 1.0 is supported by
  * {@link #addSwaRefAttachment(DataHandler)} being called by the
  * marshaller for each JAXB property related to
- * {http://ws-i.org/profiles/basic/1.1/xsd}swaRef.</p>
+ * {http://ws-i.org/profiles/basic/1.1/xsd}swaRef.
  *
  *
  * @author Marc Hadley
@@ -60,33 +60,33 @@
 public abstract class AttachmentMarshaller {
 
     /**
-     * <p>Consider MIME content <code>data</code> for optimized binary storage as an attachment.
+     * <p>Consider MIME content {@code data} for optimized binary storage as an attachment.
      *
      * <p>
      * This method is called by JAXB marshal process when {@link #isXOPPackage()} is
-     * <code>true</code>, for each element whose datatype is "base64Binary", as described in
+     * {@code true}, for each element whose datatype is "base64Binary", as described in
      * Step 3 in
      * <a href="http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages">Creating XOP Packages</a>.
      *
      * <p>
-     * The method implementor determines whether <code>data</code> shall be attached separately
+     * The method implementor determines whether {@code data} shall be attached separately
      * or inlined as base64Binary data. If the implementation chooses to optimize the storage
-     * of the binary data as a MIME part, it is responsible for attaching <code>data</code> to the
+     * of the binary data as a MIME part, it is responsible for attaching {@code data} to the
      * MIME-based package, and then assigning an unique content-id, cid, that identifies
      * the MIME part within the MIME message. This method returns the cid,
      * which enables the JAXB marshaller to marshal a XOP element that refers to that cid in place
      * of marshalling the binary data. When the method returns null, the JAXB marshaller
-     * inlines <code>data</code> as base64binary data.
+     * inlines {@code data} as base64binary data.
      *
      * <p>
      * The caller of this method is required to meet the following constraint.
-     * If the element infoset item containing <code>data</code> has the attribute
-     * <code>xmime:contentType</code> or if the JAXB property/field representing
-     * <code>data</code>is annotated with a known MIME type,
-     * <code>data.getContentType()</code> should be set to that MIME type.
+     * If the element infoset item containing {@code data} has the attribute
+     * {@code xmime:contentType} or if the JAXB property/field representing
+     * {@code data} is annotated with a known MIME type,
+     * {@code data.getContentType()} should be set to that MIME type.
      *
      * <p>
-     * The <code>elementNamespace</code> and <code>elementLocalName</code>
+     * The {@code elementNamespace} and {@code elementLocalName}
      * parameters provide the
      * context that contains the binary data. This information could
      * be used by the MIME-based package processor to determine if the
@@ -101,7 +101,7 @@
      *      The local name of the element. Always a non-null valid string.
      *
      * @return
-     *     a valid content-id URI (see <a href="http://www.w3.org/TR/xop10/#RFC2387">RFC 2387</a>) that identifies the attachment containing <code>data</code>.
+     *     a valid content-id URI (see <a href="http://www.w3.org/TR/xop10/#RFC2387">RFC 2387</a>) that identifies the attachment containing {@code data}.
      *     Otherwise, null if the attachment was not added and should instead be inlined in the message.
      *
      * @see <a href="http://www.w3.org/TR/2005/REC-xop10-20050125/">XML-binary Optimized Packaging</a>
@@ -110,12 +110,12 @@
     public abstract String addMtomAttachment(DataHandler data, String elementNamespace, String elementLocalName);
 
     /**
-     * <p>Consider binary <code>data</code> for optimized binary storage as an attachment.
+     * <p>Consider binary {@code data} for optimized binary storage as an attachment.
      *
-     * <p>Since content type is not known, the attachment's MIME content type must be set to "application/octet-stream".</p>
+     * <p>Since content type is not known, the attachment's MIME content type must be set to "application/octet-stream".
      *
      * <p>
-     * The <code>elementNamespace</code> and <code>elementLocalName</code>
+     * The {@code elementNamespace} and {@code elementLocalName}
      * parameters provide the
      * context that contains the binary data. This information could
      * be used by the MIME-based package processor to determine if the
@@ -146,21 +146,21 @@
      *      The local name of the element. Always a non-null valid string.
      *
      * @return content-id URI, cid, to the attachment containing
-     *         <code>data</code> or null if data should be inlined.
+     *         {@code data} or null if data should be inlined.
      *
      * @see #addMtomAttachment(DataHandler, String, String)
      */
     public abstract String addMtomAttachment(byte[] data, int offset, int length, String mimeType, String elementNamespace, String elementLocalName);
 
     /**
-     * <p>Read-only property that returns true if JAXB marshaller should enable XOP creation.</p>
+     * <p>Read-only property that returns true if JAXB marshaller should enable XOP creation.
      *
      * <p>This value must not change during the marshalling process. When this
-     * value is true, the <code>addMtomAttachment(...)</code> method
+     * value is true, the {@code addMtomAttachment(...)} method
      * is invoked when the appropriate binary datatypes are encountered by
-     * the marshal process.</p>
+     * the marshal process.
      *
-     * <p>Marshaller.marshal() must throw IllegalStateException if this value is <code>true</code>
+     * <p>Marshaller.marshal() must throw IllegalStateException if this value is {@code true}
      * and the XML content to be marshalled violates Step 1 in
      * <a href="http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages">Creating XOP Pacakges</a>
      * http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages.
@@ -168,18 +168,18 @@
      * [namespace name] of "http://www.w3.org/2004/08/xop/include" and a [local name] of Include"</i>
      *
      * <p>When this method returns true and during the marshal process
-     * at least one call to <code>addMtomAttachment(...)</code> returns
+     * at least one call to {@code addMtomAttachment(...)} returns
      * a content-id, the MIME-based package processor must label the
      * root part with the application/xop+xml media type as described in
      * Step 5 of
-     * <a href="http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages">Creating XOP Pacakges</a>.<p>
+     * <a href="http://www.w3.org/TR/2005/REC-xop10-20050125/#creating_xop_packages">Creating XOP Pacakges</a>.
      *
      * @return true when MIME context is a XOP Package.
      */
     public boolean isXOPPackage() { return false; }
 
    /**
-    * <p>Add MIME <code>data</code> as an attachment and return attachment's content-id, cid.</p>
+    * <p>Add MIME {@code data} as an attachment and return attachment's content-id, cid.
     *
     * <p>
     * This method is called by JAXB marshal process for each element/attribute typed as
@@ -188,7 +188,7 @@
     * MIME attachment, and generating a content-id, cid, that uniquely identifies the attachment
     * within the MIME-based package.
     *
-    * <p>Caller inserts the returned content-id, cid, into the XML content being marshalled.</p>
+    * <p>Caller inserts the returned content-id, cid, into the XML content being marshalled.
     *
     * @param data
     *       represents the data to be attached. Must be non-null.
--- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/pipe/Engine.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/pipe/Engine.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -108,7 +108,8 @@
         }
 
         public Thread newThread(Runnable r) {
-            Thread t = new Thread(null, r, namePrefix + threadNumber.getAndIncrement(), 0);
+            Thread t = ThreadHelper.createNewThread(r);
+            t.setName(namePrefix + threadNumber.getAndIncrement());
             if (!t.isDaemon()) {
                 t.setDaemon(true);
             }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/pipe/ThreadHelper.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.ws.api.pipe;
+
+import java.lang.reflect.Constructor;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * Simple utility class to instantiate correct Thread instance
+ * depending on runtime context (jdk/non-jdk usage)
+ *
+ * @author miroslav.kos@oracle.com
+ */
+final class ThreadHelper {
+
+    private static final String SAFE_THREAD_NAME = "sun.misc.ManagedLocalsThread";
+    private static final Constructor THREAD_CONSTRUCTOR;
+
+    // no instantiating wanted
+    private ThreadHelper() {
+    }
+
+    static {
+        THREAD_CONSTRUCTOR = AccessController.doPrivileged(
+                new PrivilegedAction<Constructor> () {
+                    @Override
+                    public Constructor run() {
+                        try {
+                            Class cls = Class.forName(SAFE_THREAD_NAME);
+                            if (cls != null) {
+                                return cls.getConstructor(Runnable.class);
+                            }
+                        } catch (ClassNotFoundException ignored) {
+                        } catch (NoSuchMethodException ignored) {
+                        }
+                        return null;
+                    }
+                }
+        );
+    }
+
+    static Thread createNewThread(final Runnable r) {
+        if (isJDKInternal()) {
+            return AccessController.doPrivileged(
+                    new PrivilegedAction<Thread>() {
+                        @Override
+                        public Thread run() {
+                            try {
+                                return (Thread) THREAD_CONSTRUCTOR.newInstance(r);
+                            } catch (Exception e) {
+                                return new Thread(r);
+                            }
+                        }
+                    }
+            );
+        } else {
+            return new Thread(r);
+        }
+    }
+
+    private static boolean isJDKInternal() {
+        String className = ThreadHelper.class.getName();
+        return className.contains(".internal.");
+    }
+}
--- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -894,15 +894,6 @@
         return wsdlService;
     }
 
-    static class DaemonThreadFactory implements ThreadFactory {
-        @Override
-        public Thread newThread(Runnable r) {
-            Thread daemonThread = new Thread(r);
-            daemonThread.setDaemon(Boolean.TRUE);
-            return daemonThread;
-        }
-    }
-
     protected static final WebServiceFeature[] EMPTY_FEATURES = new WebServiceFeature[0];
 
     private static ClassLoader getDelegatingLoader(ClassLoader loader1, ClassLoader loader2) {
--- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/spi/db/BindingHelper.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/spi/db/BindingHelper.java	Mon Apr 27 09:17:39 2015 -0700
@@ -36,9 +36,6 @@
 //TODO DOMHeader DOMMessage SAAJMessage StatefulInstanceResolver
 import com.sun.xml.internal.bind.unmarshaller.DOMScanner;
 
-//TODO MtomCodec
-import com.sun.xml.internal.bind.v2.runtime.output.Encoded;
-
 //TODO ExceptionBean
 import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
 
--- a/jaxws/src/java.xml.ws/share/classes/javax/jws/soap/InitParam.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/jws/soap/InitParam.java	Mon Apr 27 09:17:39 2015 -0700
@@ -27,7 +27,7 @@
 
 /**
  * @since 1.6
- * @Deprecated
+ * @deprecated
  */
 @Deprecated public @interface InitParam {
     String name();
--- a/jaxws/src/java.xml.ws/share/classes/javax/jws/soap/SOAPMessageHandler.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/jws/soap/SOAPMessageHandler.java	Mon Apr 27 09:17:39 2015 -0700
@@ -27,7 +27,7 @@
 
 /**
  * @since 1.6
- * @Deprecated
+ * @deprecated
  */
 @Deprecated public @interface SOAPMessageHandler {
     String name() default "";
--- a/jaxws/src/java.xml.ws/share/classes/javax/jws/soap/SOAPMessageHandlers.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/jws/soap/SOAPMessageHandlers.java	Mon Apr 27 09:17:39 2015 -0700
@@ -29,7 +29,7 @@
 
 /**
  * @since 1.6
- * @Deprecated
+ * @deprecated
  */
 @Retention(value=RetentionPolicy.RUNTIME)
 @Target({TYPE})
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/AttachmentPart.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/AttachmentPart.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,54 +32,53 @@
 import javax.activation.DataHandler;
 
 /**
- * A single attachment to a <code>SOAPMessage</code> object. A <code>SOAPMessage</code>
- * object may contain zero, one, or many <code>AttachmentPart</code> objects.
- * Each <code>AttachmentPart</code> object consists of two parts,
+ * A single attachment to a {@code SOAPMessage} object. A {@code SOAPMessage}
+ * object may contain zero, one, or many {@code AttachmentPart} objects.
+ * Each {@code AttachmentPart} object consists of two parts,
  * application-specific content and associated MIME headers. The
  * MIME headers consists of name/value pairs that can be used to
  * identify and describe the content.
  * <p>
- * An <code>AttachmentPart</code> object must conform to certain standards.
+ * An {@code AttachmentPart} object must conform to certain standards.
  * <OL>
  * <LI>It must conform to <a href="http://www.ietf.org/rfc/rfc2045.txt">
  *     MIME [RFC2045] standards</a>
  * <LI>It MUST contain content
  * <LI>The header portion MUST include the following header:
  *  <UL>
- *   <LI><code>Content-Type</code><br>
+ *   <LI>{@code Content-Type}<br>
  *       This header identifies the type of data in the content of an
- *       <code>AttachmentPart</code> object and MUST conform to [RFC2045].
+ *       {@code AttachmentPart} object and MUST conform to [RFC2045].
  *       The following is an example of a Content-Type header:
  *       <PRE>
  *       Content-Type:  application/xml
  *       </PRE>
- *       The following line of code, in which <code>ap</code> is an
- *       <code>AttachmentPart</code> object, sets the header shown in
+ *       The following line of code, in which {@code ap} is an
+ *       {@code AttachmentPart} object, sets the header shown in
  *       the previous example.
  *       <PRE>
  *       ap.setMimeHeader("Content-Type", "application/xml");
  *       </PRE>
- * <p>
  *  </UL>
  * </OL>
  * <p>
- * There are no restrictions on the content portion of an <code>
- * AttachmentPart</code> object. The content may be anything from a
+ * There are no restrictions on the content portion of an {@code
+ * AttachmentPart} object. The content may be anything from a
  * simple plain text object to a complex XML document or image file.
  *
  * <p>
- * An <code>AttachmentPart</code> object is created with the method
- * <code>SOAPMessage.createAttachmentPart</code>. After setting its MIME headers,
- *  the <code>AttachmentPart</code> object is added to the message
- * that created it with the method <code>SOAPMessage.addAttachmentPart</code>.
+ * An {@code AttachmentPart} object is created with the method
+ * {@code SOAPMessage.createAttachmentPart}. After setting its MIME headers,
+ *  the {@code AttachmentPart} object is added to the message
+ * that created it with the method {@code SOAPMessage.addAttachmentPart}.
  *
  * <p>
- * The following code fragment, in which <code>m</code> is a
- * <code>SOAPMessage</code> object and <code>contentStringl</code> is a
- * <code>String</code>, creates an instance of <code>AttachmentPart</code>,
- * sets the <code>AttachmentPart</code> object with some content and
- * header information, and adds the <code>AttachmentPart</code> object to
- * the <code>SOAPMessage</code> object.
+ * The following code fragment, in which {@code m} is a
+ * {@code SOAPMessage} object and {@code contentStringl} is a
+ * {@code String}, creates an instance of {@code AttachmentPart},
+ * sets the {@code AttachmentPart} object with some content and
+ * header information, and adds the {@code AttachmentPart} object to
+ * the {@code SOAPMessage} object.
  * <PRE>
  *     AttachmentPart ap1 = m.createAttachmentPart();
  *     ap1.setContent(contentString1, "text/plain");
@@ -89,7 +88,7 @@
  *
  * <p>
  * The following code fragment creates and adds a second
- * <code>AttachmentPart</code> instance to the same message. <code>jpegData</code>
+ * {@code AttachmentPart} instance to the same message. {@code jpegData}
  * is a binary byte buffer representing the jpeg file.
  * <PRE>
  *     AttachmentPart ap2 = m.createAttachmentPart();
@@ -98,19 +97,19 @@
  *     m.addAttachmentPart(ap2);
  * </PRE>
  * <p>
- * The <code>getContent</code> method retrieves the contents and header from
- * an <code>AttachmentPart</code> object. Depending on the
- * <code>DataContentHandler</code> objects present, the returned
- * <code>Object</code> can either be a typed Java object corresponding
- * to the MIME type or an <code>InputStream</code> object that contains the
+ * The {@code getContent} method retrieves the contents and header from
+ * an {@code AttachmentPart} object. Depending on the
+ * {@code DataContentHandler} objects present, the returned
+ * {@code Object} can either be a typed Java object corresponding
+ * to the MIME type or an {@code InputStream} object that contains the
  * content as bytes.
  * <PRE>
  *     String content1 = ap1.getContent();
  *     java.io.InputStream content2 = ap2.getContent();
  * </PRE>
  *
- * The method <code>clearContent</code> removes all the content from an
- * <code>AttachmentPart</code> object but does not affect its header information.
+ * The method {@code clearContent} removes all the content from an
+ * {@code AttachmentPart} object but does not affect its header information.
  * <PRE>
  *     ap1.clearContent();
  * </PRE>
@@ -120,10 +119,10 @@
 
 public abstract class AttachmentPart {
     /**
-     * Returns the number of bytes in this <code>AttachmentPart</code>
+     * Returns the number of bytes in this {@code AttachmentPart}
      * object.
      *
-     * @return the size of this <code>AttachmentPart</code> object in bytes
+     * @return the size of this {@code AttachmentPart} object in bytes
      *         or -1 if the size cannot be determined
      * @exception SOAPException if the content of this attachment is
      *            corrupted of if there was an exception while trying
@@ -132,52 +131,52 @@
     public abstract int getSize() throws SOAPException;
 
     /**
-     * Clears out the content of this <code>AttachmentPart</code> object.
+     * Clears out the content of this {@code AttachmentPart} object.
      * The MIME header portion is left untouched.
      */
     public abstract void clearContent();
 
     /**
-     * Gets the content of this <code>AttachmentPart</code> object as a Java
+     * Gets the content of this {@code AttachmentPart} object as a Java
      * object. The type of the returned Java object depends on (1) the
-     * <code>DataContentHandler</code> object that is used to interpret the bytes
-     * and (2) the <code>Content-Type</code> given in the header.
+     * {@code DataContentHandler} object that is used to interpret the bytes
+     * and (2) the {@code Content-Type} given in the header.
      * <p>
      * For the MIME content types "text/plain", "text/html" and "text/xml", the
-     * <code>DataContentHandler</code> object does the conversions to and
+     * {@code DataContentHandler} object does the conversions to and
      * from the Java types corresponding to the MIME types.
-     * For other MIME types,the <code>DataContentHandler</code> object
-     * can return an <code>InputStream</code> object that contains the content data
+     * For other MIME types,the {@code DataContentHandler} object
+     * can return an {@code InputStream} object that contains the content data
      * as raw bytes.
      * <p>
      * A SAAJ-compliant implementation must, as a minimum, return a
-     * <code>java.lang.String</code> object corresponding to any content
-     * stream with a <code>Content-Type</code> value of
-     * <code>text/plain</code>, a
-     * <code>javax.xml.transform.stream.StreamSource</code> object corresponding to a
-     * content stream with a <code>Content-Type</code> value of
-     * <code>text/xml</code>, a <code>java.awt.Image</code> object
+     * {@code java.lang.String} object corresponding to any content
+     * stream with a {@code Content-Type} value of
+     * {@code text/plain}, a
+     * {@code javax.xml.transform.stream.StreamSource} object corresponding to a
+     * content stream with a {@code Content-Type} value of
+     * {@code text/xml}, a {@code java.awt.Image} object
      * corresponding to a content stream with a
-     * <code>Content-Type</code> value of <code>image/gif</code> or
-     * <code>image/jpeg</code>.  For those content types that an
-     * installed <code>DataContentHandler</code> object does not understand, the
-     * <code>DataContentHandler</code> object is required to return a
-     * <code>java.io.InputStream</code> object with the raw bytes.
+     * {@code Content-Type} value of {@code image/gif} or
+     * {@code image/jpeg}.  For those content types that an
+     * installed {@code DataContentHandler} object does not understand, the
+     * {@code DataContentHandler} object is required to return a
+     * {@code java.io.InputStream} object with the raw bytes.
      *
-     * @return a Java object with the content of this <code>AttachmentPart</code>
+     * @return a Java object with the content of this {@code AttachmentPart}
      *         object
      *
      * @exception SOAPException if there is no content set into this
-     *            <code>AttachmentPart</code> object or if there was a data
+     *            {@code AttachmentPart} object or if there was a data
      *            transformation error
      */
     public abstract Object getContent() throws SOAPException;
 
     /**
-     * Gets the content of this <code>AttachmentPart</code> object as an
-     * InputStream as if a call had been made to <code>getContent</code> and no
-     * <code>DataContentHandler</code> had been registered for the
-     * <code>content-type</code> of this <code>AttachmentPart</code>.
+     * Gets the content of this {@code AttachmentPart} object as an
+     * InputStream as if a call had been made to {@code getContent} and no
+     * {@code DataContentHandler} had been registered for the
+     * {@code content-type} of this {@code AttachmentPart}.
      *<p>
      * Note that reading from the returned InputStream would result in consuming
      * the data in the stream. It is the responsibility of the caller to reset
@@ -185,11 +184,11 @@
      * of the raw attachment content is required then the {@link #getRawContentBytes} API
      * should be used instead.
      *
-     * @return an <code>InputStream</code> from which the raw data contained by
-     *      the <code>AttachmentPart</code> can be accessed.
+     * @return an {@code InputStream} from which the raw data contained by
+     *      the {@code AttachmentPart} can be accessed.
      *
      * @throws SOAPException if there is no content set into this
-     *      <code>AttachmentPart</code> object or if there was a data
+     *      {@code AttachmentPart} object or if there was a data
      *      transformation error.
      *
      * @since 1.6, SAAJ 1.3
@@ -198,16 +197,16 @@
     public abstract InputStream getRawContent() throws SOAPException;
 
     /**
-     * Gets the content of this <code>AttachmentPart</code> object as a
-     * byte[] array as if a call had been made to <code>getContent</code> and no
-     * <code>DataContentHandler</code> had been registered for the
-     * <code>content-type</code> of this <code>AttachmentPart</code>.
+     * Gets the content of this {@code AttachmentPart} object as a
+     * byte[] array as if a call had been made to {@code getContent} and no
+     * {@code DataContentHandler} had been registered for the
+     * {@code content-type} of this {@code AttachmentPart}.
      *
-     * @return a <code>byte[]</code> array containing the raw data of the
-     *      <code>AttachmentPart</code>.
+     * @return a {@code byte[]} array containing the raw data of the
+     *      {@code AttachmentPart}.
      *
      * @throws SOAPException if there is no content set into this
-     *      <code>AttachmentPart</code> object or if there was a data
+     *      {@code AttachmentPart} object or if there was a data
      *      transformation error.
      *
      * @since 1.6, SAAJ 1.3
@@ -215,16 +214,16 @@
     public abstract byte[] getRawContentBytes() throws SOAPException;
 
     /**
-     * Returns an <code>InputStream</code> which can be used to obtain the
-     * content of <code>AttachmentPart</code>  as Base64 encoded
+     * Returns an {@code InputStream} which can be used to obtain the
+     * content of {@code AttachmentPart}  as Base64 encoded
      * character data, this method would base64 encode the raw bytes
      * of the attachment and return.
      *
-     * @return an <code>InputStream</code> from which the Base64 encoded
-     *       <code>AttachmentPart</code> can be read.
+     * @return an {@code InputStream} from which the Base64 encoded
+     *       {@code AttachmentPart} can be read.
      *
      * @throws SOAPException if there is no content set into this
-     *      <code>AttachmentPart</code> object or if there was a data
+     *      {@code AttachmentPart} object or if there was a data
      *      transformation error.
      *
      * @since 1.6, SAAJ 1.3
@@ -233,11 +232,11 @@
 
     /**
      * Sets the content of this attachment part to that of the given
-     * <code>Object</code> and sets the value of the <code>Content-Type</code>
+     * {@code Object} and sets the value of the {@code Content-Type}
      * header to the given type. The type of the
-     * <code>Object</code> should correspond to the value given for the
-     * <code>Content-Type</code>. This depends on the particular
-     * set of <code>DataContentHandler</code> objects in use.
+     * {@code Object} should correspond to the value given for the
+     * {@code Content-Type}. This depends on the particular
+     * set of {@code DataContentHandler} objects in use.
      *
      *
      * @param object the Java object that makes up the content for
@@ -247,7 +246,7 @@
      *
      * @exception IllegalArgumentException may be thrown if the contentType
      *            does not match the type of the content object, or if there
-     *            was no <code>DataContentHandler</code> object for this
+     *            was no {@code DataContentHandler} object for this
      *            content object
      *
      * @see #getContent
@@ -256,31 +255,31 @@
 
     /**
      * Sets the content of this attachment part to that contained by the
-     * <code>InputStream</code> <code>content</code> and sets the value of the
-     * <code>Content-Type</code> header to the value contained in
-     * <code>contentType</code>.
+     * {@code InputStream} {@code content} and sets the value of the
+     * {@code Content-Type} header to the value contained in
+     * {@code contentType}.
      * <P>
      *  A subsequent call to getSize() may not be an exact measure
      *  of the content size.
      *
      * @param content the raw data to add to the attachment part
-     * @param contentType the value to set into the <code>Content-Type</code>
+     * @param contentType the value to set into the {@code Content-Type}
      * header
      *
      * @exception SOAPException if an there is an error in setting the content
-     * @exception NullPointerException if <code>content</code> is null
+     * @exception NullPointerException if {@code content} is null
      * @since 1.6, SAAJ 1.3
      */
     public abstract void setRawContent(InputStream content, String contentType) throws SOAPException;
 
     /**
      * Sets the content of this attachment part to that contained by the
-     * <code>byte[]</code> array <code>content</code> and sets the value of the
-     * <code>Content-Type</code> header to the value contained in
-     * <code>contentType</code>.
+     * {@code byte[]} array {@code content} and sets the value of the
+     * {@code Content-Type} header to the value contained in
+     * {@code contentType}.
      *
      * @param content the raw data to add to the attachment part
-     * @param contentType the value to set into the <code>Content-Type</code>
+     * @param contentType the value to set into the {@code Content-Type}
      * header
      * @param offset the offset in the byte array of the content
      * @param len the number of bytes that form the content
@@ -296,20 +295,20 @@
 
     /**
      * Sets the content of this attachment part from the Base64 source
-     * <code>InputStream</code>  and sets the value of the
-     * <code>Content-Type</code> header to the value contained in
-     * <code>contentType</code>, This method would first decode the base64
+     * {@code InputStream}  and sets the value of the
+     * {@code Content-Type} header to the value contained in
+     * {@code contentType}, This method would first decode the base64
      * input and write the resulting raw bytes to the attachment.
      * <P>
      *  A subsequent call to getSize() may not be an exact measure
      *  of the content size.
      *
      * @param content the base64 encoded data to add to the attachment part
-     * @param contentType the value to set into the <code>Content-Type</code>
+     * @param contentType the value to set into the {@code Content-Type}
      * header
      *
      * @exception SOAPException if an there is an error in setting the content
-     * @exception NullPointerException if <code>content</code> is null
+     * @exception NullPointerException if {@code content} is null
      *
      * @since 1.6, SAAJ 1.3
      */
@@ -318,30 +317,30 @@
 
 
     /**
-     * Gets the <code>DataHandler</code> object for this <code>AttachmentPart</code>
+     * Gets the {@code DataHandler} object for this {@code AttachmentPart}
      * object.
      *
-     * @return the <code>DataHandler</code> object associated with this
-     *         <code>AttachmentPart</code> object
+     * @return the {@code DataHandler} object associated with this
+     *         {@code AttachmentPart} object
      *
      * @exception SOAPException if there is no data in
-     * this <code>AttachmentPart</code> object
+     * this {@code AttachmentPart} object
      */
     public abstract DataHandler getDataHandler()
         throws SOAPException;
 
     /**
-     * Sets the given <code>DataHandler</code> object as the data handler
-     * for this <code>AttachmentPart</code> object. Typically, on an incoming
+     * Sets the given {@code DataHandler} object as the data handler
+     * for this {@code AttachmentPart} object. Typically, on an incoming
      * message, the data handler is automatically set. When
      * a message is being created and populated with content, the
-     * <code>setDataHandler</code> method can be used to get data from
+     * {@code setDataHandler} method can be used to get data from
      * various data sources into the message.
      *
-     * @param dataHandler the <code>DataHandler</code> object to be set
+     * @param dataHandler the {@code DataHandler} object to be set
      *
      * @exception IllegalArgumentException if there was a problem with
-     *            the specified <code>DataHandler</code> object
+     *            the specified {@code DataHandler} object
      */
     public abstract void setDataHandler(DataHandler dataHandler);
 
@@ -349,8 +348,8 @@
     /**
      * Gets the value of the MIME header whose name is "Content-ID".
      *
-     * @return a <code>String</code> giving the value of the
-     *          "Content-ID" header or <code>null</code> if there
+     * @return a {@code String} giving the value of the
+     *          "Content-ID" header or {@code null} if there
      *          is none
      * @see #setContentId
      */
@@ -364,8 +363,8 @@
     /**
      * Gets the value of the MIME header whose name is "Content-Location".
      *
-     * @return a <code>String</code> giving the value of the
-     *          "Content-Location" header or <code>null</code> if there
+     * @return a {@code String} giving the value of the
+     *          "Content-Location" header or {@code null} if there
      *          is none
      */
     public String getContentLocation() {
@@ -378,8 +377,8 @@
     /**
      * Gets the value of the MIME header whose name is "Content-Type".
      *
-     * @return a <code>String</code> giving the value of the
-     *          "Content-Type" header or <code>null</code> if there
+     * @return a {@code String} giving the value of the
+     *          "Content-Type" header or {@code null} if there
      *          is none
      */
     public String getContentType() {
@@ -392,11 +391,11 @@
     /**
      * Sets the MIME header whose name is "Content-ID" with the given value.
      *
-     * @param contentId a <code>String</code> giving the value of the
+     * @param contentId a {@code String} giving the value of the
      *          "Content-ID" header
      *
      * @exception IllegalArgumentException if there was a problem with
-     *            the specified <code>contentId</code> value
+     *            the specified {@code contentId} value
      * @see #getContentId
      */
     public void setContentId(String contentId)
@@ -409,7 +408,7 @@
      * Sets the MIME header whose name is "Content-Location" with the given value.
      *
      *
-     * @param contentLocation a <code>String</code> giving the value of the
+     * @param contentLocation a {@code String} giving the value of the
      *          "Content-Location" header
      * @exception IllegalArgumentException if there was a problem with
      *            the specified content location
@@ -422,7 +421,7 @@
     /**
      * Sets the MIME header whose name is "Content-Type" with the given value.
      *
-     * @param contentType a <code>String</code> giving the value of the
+     * @param contentType a {@code String} giving the value of the
      *          "Content-Type" header
      *
      * @exception IllegalArgumentException if there was a problem with
@@ -449,10 +448,10 @@
 
     /**
      * Gets all the values of the header identified by the given
-     * <code>String</code>.
+     * {@code String}.
      *
      * @param name the name of the header; example: "Content-Type"
-     * @return a <code>String</code> array giving the value for the
+     * @return a {@code String} array giving the value for the
      *         specified header
      * @see #setMimeHeader
      */
@@ -466,9 +465,9 @@
      *
      * Note that RFC822 headers can only contain US-ASCII characters.
      *
-     * @param   name    a <code>String</code> giving the name of the header
+     * @param   name    a {@code String} giving the name of the header
      *                  for which to search
-     * @param   value   a <code>String</code> giving the value to be set for
+     * @param   value   a {@code String} giving the value to be set for
      *                  the header whose name matches the given name
      *
      * @exception IllegalArgumentException if there was a problem with
@@ -479,13 +478,13 @@
 
     /**
      * Adds a MIME header with the specified name and value to this
-     * <code>AttachmentPart</code> object.
+     * {@code AttachmentPart} object.
      * <p>
      * Note that RFC822 headers can contain only US-ASCII characters.
      *
-     * @param   name    a <code>String</code> giving the name of the header
+     * @param   name    a {@code String} giving the name of the header
      *                  to be added
-     * @param   value   a <code>String</code> giving the value of the header
+     * @param   value   a {@code String} giving the value of the header
      *                  to be added
      *
      * @exception IllegalArgumentException if there was a problem with
@@ -494,35 +493,35 @@
     public abstract void addMimeHeader(String name, String value);
 
     /**
-     * Retrieves all the headers for this <code>AttachmentPart</code> object
-     * as an iterator over the <code>MimeHeader</code> objects.
+     * Retrieves all the headers for this {@code AttachmentPart} object
+     * as an iterator over the {@code MimeHeader} objects.
      *
-     * @return  an <code>Iterator</code> object with all of the Mime
-     *          headers for this <code>AttachmentPart</code> object
+     * @return  an {@code Iterator} object with all of the Mime
+     *          headers for this {@code AttachmentPart} object
      */
     public abstract Iterator getAllMimeHeaders();
 
     /**
-     * Retrieves all <code>MimeHeader</code> objects that match a name in
+     * Retrieves all {@code MimeHeader} objects that match a name in
      * the given array.
      *
-     * @param names a <code>String</code> array with the name(s) of the
+     * @param names a {@code String} array with the name(s) of the
      *        MIME headers to be returned
      * @return  all of the MIME headers that match one of the names in the
-     *           given array as an <code>Iterator</code> object
+     *           given array as an {@code Iterator} object
      */
     public abstract Iterator getMatchingMimeHeaders(String[] names);
 
     /**
-     * Retrieves all <code>MimeHeader</code> objects whose name does
+     * Retrieves all {@code MimeHeader} objects whose name does
      * not match a name in the given array.
      *
-     * @param names a <code>String</code> array with the name(s) of the
+     * @param names a {@code String} array with the name(s) of the
      *        MIME headers not to be returned
-     * @return  all of the MIME headers in this <code>AttachmentPart</code> object
+     * @return  all of the MIME headers in this {@code AttachmentPart} object
      *          except those that match one of the names in the
      *           given array.  The nonmatching MIME headers are returned as an
-     *           <code>Iterator</code> object.
+     *           {@code Iterator} object.
      */
     public abstract Iterator getNonMatchingMimeHeaders(String[] names);
 }
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/Name.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/Name.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,52 +32,50 @@
  * to get the URI of the namespace.
  * <P>
  * The following is an example of a namespace declaration in an element.
- * <PRE>
- *   &lt;wombat:GetLastTradePrice xmlns:wombat="http://www.wombat.org/trader"&gt;
- * </PRE>
+ * {@code <wombat:GetLastTradePrice xmlns:wombat="http://www.wombat.org/trader">}
  * ("xmlns" stands for "XML namespace".)
  * The following
- * shows what the methods in the <code>Name</code> interface will return.
+ * shows what the methods in the {@code Name} interface will return.
  * <UL>
- *  <LI><code>getQualifiedName</code> will return "prefix:LocalName" =
+ *  <LI>{@code getQualifiedName} will return "prefix:LocalName" =
  *      "WOMBAT:GetLastTradePrice"
- *  <LI><code>getURI</code> will return "http://www.wombat.org/trader"
- *  <LI><code>getLocalName</code> will return "GetLastTracePrice"
- *  <LI><code>getPrefix</code> will return "WOMBAT"
+ *  <LI>{@code getURI} will return "http://www.wombat.org/trader"
+ *  <LI>{@code getLocalName} will return "GetLastTracePrice"
+ *  <LI>{@code getPrefix} will return "WOMBAT"
  * </UL>
  * <P>
  * XML namespaces are used to disambiguate SOAP identifiers from
  * application-specific identifiers.
  * <P>
- * <code>Name</code> objects are created using the method
- * <code>SOAPEnvelope.createName</code>, which has two versions.
- * One method creates <code>Name</code> objects with
+ * {@code Name} objects are created using the method
+ * {@code SOAPEnvelope.createName}, which has two versions.
+ * One method creates {@code Name} objects with
  * a local name, a namespace prefix, and a namespace URI.
- *  and the second creates <code>Name</code> objects with just a local name.
+ *  and the second creates {@code Name} objects with just a local name.
  * The following line of
- * code, in which <i>se</i> is a <code>SOAPEnvelope</code> object, creates a new
- * <code>Name</code> object with all three.
+ * code, in which <i>se</i> is a {@code SOAPEnvelope} object, creates a new
+ * {@code Name} object with all three.
  * <PRE>
  *     Name name = se.createName("GetLastTradePrice", "WOMBAT",
  *                                "http://www.wombat.org/trader");
  * </PRE>
- * The following line of code gives an example of how a <code>Name</code> object
- * can be used. The variable <i>element</i> is a <code>SOAPElement</code> object.
- * This code creates a new <code>SOAPElement</code> object with the given name and
+ * The following line of code gives an example of how a {@code Name} object
+ * can be used. The variable <i>element</i> is a {@code SOAPElement} object.
+ * This code creates a new {@code SOAPElement} object with the given name and
  * adds it to <i>element</i>.
  * <PRE>
  *     element.addChildElement(name);
  * </PRE>
  * <P>
- * The <code>Name</code> interface may be deprecated in a future release of SAAJ
- * in favor of <code>javax.xml.namespace.QName<code>
+ * The {@code Name} interface may be deprecated in a future release of SAAJ
+ * in favor of {@code javax.xml.namespace.QName}
  * @see SOAPEnvelope#createName(String, String, String) SOAPEnvelope.createName
  * @see SOAPFactory#createName(String, String, String) SOAPFactory.createName
  * @since 1.6
  */
 public interface Name {
     /**
-     * Gets the local name part of the XML name that this <code>Name</code>
+     * Gets the local name part of the XML name that this {@code Name}
      * object represents.
      *
      * @return a string giving the local name
@@ -86,16 +84,16 @@
 
     /**
      * Gets the namespace-qualified name of the XML name that this
-     * <code>Name</code> object represents.
+     * {@code Name} object represents.
      *
      * @return the namespace-qualified name as a string
      */
     String getQualifiedName();
 
     /**
-     * Returns the prefix that was specified when this <code>Name</code> object
+     * Returns the prefix that was specified when this {@code Name} object
      * was initialized. This prefix is associated with the namespace for the XML
-     * name that this <code>Name</code> object represents.
+     * name that this {@code Name} object represents.
      *
      * @return the prefix as a string
      */
@@ -103,7 +101,7 @@
 
     /**
      * Returns the URI of the namespace for the XML
-     * name that this <code>Name</code> object represents.
+     * name that this {@code Name} object represents.
      *
      * @return the URI as a string
      */
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPBody.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPBody.java	Mon Apr 27 09:17:39 2015 -0700
@@ -36,10 +36,10 @@
  * element in a SOAP message. A SOAP body element consists of XML data
  * that affects the way the application-specific content is processed.
  * <P>
- * A <code>SOAPBody</code> object contains <code>SOAPBodyElement</code>
+ * A {@code SOAPBody} object contains {@code SOAPBodyElement}
  * objects, which have the content for the SOAP body.
- * A <code>SOAPFault</code> object, which carries status and/or
- * error information, is an example of a <code>SOAPBodyElement</code> object.
+ * A {@code SOAPFault} object, which carries status and/or
+ * error information, is an example of a {@code SOAPBodyElement} object.
  *
  * @see SOAPFault
  * @since 1.6
@@ -47,47 +47,47 @@
 public interface SOAPBody extends SOAPElement {
 
     /**
-     * Creates a new <code>SOAPFault</code> object and adds it to
-     * this <code>SOAPBody</code> object. The new <code>SOAPFault</code> will
+     * Creates a new {@code SOAPFault} object and adds it to
+     * this {@code SOAPBody} object. The new {@code SOAPFault} will
      * have default values set for the mandatory child elements. The type of
-     * the <code>SOAPFault</code> will be a SOAP 1.1 or a SOAP 1.2 <code>SOAPFault</code>
-     * depending on the <code>protocol</code> specified while creating the
-     * <code>MessageFactory</code> instance.
+     * the {@code SOAPFault} will be a SOAP 1.1 or a SOAP 1.2 {@code SOAPFault}
+     * depending on the {@code protocol} specified while creating the
+     * {@code MessageFactory} instance.
      * <p>
-     * A <code>SOAPBody</code> may contain at most one <code>SOAPFault</code>
+     * A {@code SOAPBody} may contain at most one {@code SOAPFault}
      * child element.
      *
-     * @return the new <code>SOAPFault</code> object
+     * @return the new {@code SOAPFault} object
      * @exception SOAPException if there is a SOAP error
      */
     public SOAPFault addFault() throws SOAPException;
 
 
     /**
-     * Creates a new <code>SOAPFault</code> object and adds it to
-     * this <code>SOAPBody</code> object. The type of the
-     * <code>SOAPFault</code> will be a SOAP 1.1  or a SOAP 1.2
-     * <code>SOAPFault</code> depending on the <code>protocol</code>
-     * specified while creating the <code>MessageFactory</code> instance.
+     * Creates a new {@code SOAPFault} object and adds it to
+     * this {@code SOAPBody} object. The type of the
+     * {@code SOAPFault} will be a SOAP 1.1  or a SOAP 1.2
+     * {@code SOAPFault} depending on the {@code protocol}
+     * specified while creating the {@code MessageFactory} instance.
      * <p>
-     * For SOAP 1.2 the <code>faultCode</code> parameter is the value of the
-     * <i>Fault/Code/Value</i> element  and the <code>faultString</code> parameter
+     * For SOAP 1.2 the {@code faultCode} parameter is the value of the
+     * <i>Fault/Code/Value</i> element  and the {@code faultString} parameter
      * is the value of the <i>Fault/Reason/Text</i> element. For SOAP 1.1
-     * the <code>faultCode</code> parameter is the value of the <code>faultcode</code>
-     * element and the <code>faultString</code> parameter is the value of the <code>faultstring</code>
+     * the {@code faultCode} parameter is the value of the {@code faultcode}
+     * element and the {@code faultString} parameter is the value of the {@code faultstring}
      * element.
      * <p>
-     * A <code>SOAPBody</code> may contain at most one <code>SOAPFault</code>
+     * A {@code SOAPBody} may contain at most one {@code SOAPFault}
      * child element.
      *
-     * @param faultCode a <code>Name</code> object giving the fault
+     * @param faultCode a {@code Name} object giving the fault
      *         code to be set; must be one of the fault codes defined in the Version
      *         of SOAP specification in use
-     * @param faultString a <code>String</code> giving an explanation of
+     * @param faultString a {@code String} giving an explanation of
      *         the fault
      * @param locale a {@link java.util.Locale} object indicating
-     *         the native language of the <code>faultString</code>
-     * @return the new <code>SOAPFault</code> object
+     *         the native language of the {@code faultString}
+     * @return the new {@code SOAPFault} object
      * @exception SOAPException if there is a SOAP error
      * @see SOAPFault#setFaultCode
      * @see SOAPFault#setFaultString
@@ -96,32 +96,32 @@
     public SOAPFault addFault(Name faultCode, String faultString, Locale locale) throws SOAPException;
 
     /**
-     * Creates a new <code>SOAPFault</code> object and adds it to this
-     * <code>SOAPBody</code> object. The type of the <code>SOAPFault</code>
-     * will be a SOAP 1.1 or a SOAP 1.2 <code>SOAPFault</code> depending on
-     * the <code>protocol</code> specified while creating the <code>MessageFactory</code>
+     * Creates a new {@code SOAPFault} object and adds it to this
+     * {@code SOAPBody} object. The type of the {@code SOAPFault}
+     * will be a SOAP 1.1 or a SOAP 1.2 {@code SOAPFault} depending on
+     * the {@code protocol} specified while creating the {@code MessageFactory}
      * instance.
      * <p>
-     * For SOAP 1.2 the <code>faultCode</code> parameter is the value of the
-     * <i>Fault/Code/Value</i> element  and the <code>faultString</code> parameter
+     * For SOAP 1.2 the {@code faultCode} parameter is the value of the
+     * <i>Fault/Code/Value</i> element  and the {@code faultString} parameter
      * is the value of the <i>Fault/Reason/Text</i> element. For SOAP 1.1
-     * the <code>faultCode</code> parameter is the value of the <code>faultcode</code>
-     * element and the <code>faultString</code> parameter is the value of the <code>faultstring</code>
+     * the {@code faultCode} parameter is the value of the {@code faultcode}
+     * element and the {@code faultString} parameter is the value of the {@code faultstring}
      * element.
      * <p>
-     * A <code>SOAPBody</code> may contain at most one <code>SOAPFault</code>
+     * A {@code SOAPBody} may contain at most one {@code SOAPFault}
      * child element.
      *
      * @param faultCode
-     *            a <code>QName</code> object giving the fault code to be
+     *            a {@code QName} object giving the fault code to be
      *            set; must be one of the fault codes defined in the version
      *            of SOAP specification in use.
      * @param faultString
-     *            a <code>String</code> giving an explanation of the fault
+     *            a {@code String} giving an explanation of the fault
      * @param locale
      *            a {@link java.util.Locale Locale} object indicating the
-     *            native language of the <code>faultString</code>
-     * @return the new <code>SOAPFault</code> object
+     *            native language of the {@code faultString}
+     * @return the new {@code SOAPFault} object
      * @exception SOAPException
      *                if there is a SOAP error
      * @see SOAPFault#setFaultCode
@@ -134,33 +134,33 @@
         throws SOAPException;
 
     /**
-     * Creates a new  <code>SOAPFault</code> object and adds it to this
-     * <code>SOAPBody</code> object. The type of the <code>SOAPFault</code>
-     * will be a SOAP 1.1 or a SOAP 1.2 <code>SOAPFault</code> depending on
-     * the <code>protocol</code> specified while creating the <code>MessageFactory</code>
+     * Creates a new  {@code SOAPFault} object and adds it to this
+     * {@code SOAPBody} object. The type of the {@code SOAPFault}
+     * will be a SOAP 1.1 or a SOAP 1.2 {@code SOAPFault} depending on
+     * the {@code protocol} specified while creating the {@code MessageFactory}
      * instance.
      * <p>
-     * For SOAP 1.2 the <code>faultCode</code> parameter is the value of the
-     * <i>Fault/Code/Value</i> element  and the <code>faultString</code> parameter
+     * For SOAP 1.2 the {@code faultCode} parameter is the value of the
+     * <i>Fault/Code/Value</i> element  and the {@code faultString} parameter
      * is the value of the <i>Fault/Reason/Text</i> element. For SOAP 1.1
-     * the <code>faultCode</code> parameter is the value of the <i>faultcode</i>
-     * element and the <code>faultString</code> parameter is the value of the <i>faultstring</i>
+     * the {@code faultCode} parameter is the value of the <i>faultcode</i>
+     * element and the {@code faultString} parameter is the value of the <i>faultstring</i>
      * element.
      * <p>
-     * In case of a SOAP 1.2 fault, the default value for the mandatory <code>xml:lang</code>
+     * In case of a SOAP 1.2 fault, the default value for the mandatory {@code xml:lang}
      * attribute on the <i>Fault/Reason/Text</i> element will be set to
-     * <code>java.util.Locale.getDefault()</code>
+     * {@code java.util.Locale.getDefault()}
      * <p>
-     * A <code>SOAPBody</code> may contain at most one <code>SOAPFault</code>
+     * A {@code SOAPBody} may contain at most one {@code SOAPFault}
      * child element.
      *
      * @param faultCode
-     *            a <code>Name</code> object giving the fault code to be set;
+     *            a {@code Name} object giving the fault code to be set;
      *            must be one of the fault codes defined in the version of SOAP
      *            specification in use
      * @param faultString
-     *            a <code>String</code> giving an explanation of the fault
-     * @return the new <code>SOAPFault</code> object
+     *            a {@code String} giving an explanation of the fault
+     * @return the new {@code SOAPFault} object
      * @exception SOAPException
      *                if there is a SOAP error
      * @see SOAPFault#setFaultCode
@@ -171,33 +171,33 @@
         throws SOAPException;
 
     /**
-     * Creates a new <code>SOAPFault</code> object and adds it to this <code>SOAPBody</code>
-     * object. The type of the <code>SOAPFault</code>
-     * will be a SOAP 1.1 or a SOAP 1.2 <code>SOAPFault</code> depending on
-     * the <code>protocol</code> specified while creating the <code>MessageFactory</code>
+     * Creates a new {@code SOAPFault} object and adds it to this {@code SOAPBody}
+     * object. The type of the {@code SOAPFault}
+     * will be a SOAP 1.1 or a SOAP 1.2 {@code SOAPFault} depending on
+     * the {@code protocol} specified while creating the {@code MessageFactory}
      * instance.
      * <p>
-     * For SOAP 1.2 the <code>faultCode</code> parameter is the value of the
-     * <i>Fault/Code/Value</i> element  and the <code>faultString</code> parameter
+     * For SOAP 1.2 the {@code faultCode} parameter is the value of the
+     * <i>Fault/Code/Value</i> element  and the {@code faultString} parameter
      * is the value of the <i>Fault/Reason/Text</i> element. For SOAP 1.1
-     * the <code>faultCode</code> parameter is the value of the <i>faultcode</i>
-     * element and the <code>faultString</code> parameter is the value of the <i>faultstring</i>
+     * the {@code faultCode} parameter is the value of the <i>faultcode</i>
+     * element and the {@code faultString} parameter is the value of the <i>faultstring</i>
      * element.
      * <p>
-     * In case of a SOAP 1.2 fault, the default value for the mandatory <code>xml:lang</code>
+     * In case of a SOAP 1.2 fault, the default value for the mandatory {@code xml:lang}
      * attribute on the <i>Fault/Reason/Text</i> element will be set to
-     * <code>java.util.Locale.getDefault()</code>
+     * {@code java.util.Locale.getDefault()}
      * <p>
-     * A <code>SOAPBody</code> may contain at most one <code>SOAPFault</code>
+     * A {@code SOAPBody} may contain at most one {@code SOAPFault}
      * child element
      *
      * @param faultCode
-     *            a <code>QName</code> object giving the fault code to be
+     *            a {@code QName} object giving the fault code to be
      *            set; must be one of the fault codes defined in the version
      *            of  SOAP specification in use
      * @param faultString
-     *            a <code>String</code> giving an explanation of the fault
-     * @return the new <code>SOAPFault</code> object
+     *            a {@code String} giving an explanation of the fault
+     * @return the new {@code SOAPFault} object
      * @exception SOAPException
      *                if there is a SOAP error
      * @see SOAPFault#setFaultCode
@@ -209,32 +209,32 @@
         throws SOAPException;
 
     /**
-     * Indicates whether a <code>SOAPFault</code> object exists in this
-     * <code>SOAPBody</code> object.
+     * Indicates whether a {@code SOAPFault} object exists in this
+     * {@code SOAPBody} object.
      *
-     * @return <code>true</code> if a <code>SOAPFault</code> object exists
-     *         in this <code>SOAPBody</code> object; <code>false</code>
+     * @return {@code true} if a {@code SOAPFault} object exists
+     *         in this {@code SOAPBody} object; {@code false}
      *         otherwise
      */
     public boolean hasFault();
 
     /**
-     * Returns the <code>SOAPFault</code> object in this <code>SOAPBody</code>
+     * Returns the {@code SOAPFault} object in this {@code SOAPBody}
      * object.
      *
-     * @return the <code>SOAPFault</code> object in this <code>SOAPBody</code>
+     * @return the {@code SOAPFault} object in this {@code SOAPBody}
      *         object if present, null otherwise.
      */
     public SOAPFault getFault();
 
     /**
-     * Creates a new <code>SOAPBodyElement</code> object with the specified
-     * name and adds it to this <code>SOAPBody</code> object.
+     * Creates a new {@code SOAPBodyElement} object with the specified
+     * name and adds it to this {@code SOAPBody} object.
      *
      * @param name
-     *            a <code>Name</code> object with the name for the new <code>SOAPBodyElement</code>
+     *            a {@code Name} object with the name for the new {@code SOAPBodyElement}
      *            object
-     * @return the new <code>SOAPBodyElement</code> object
+     * @return the new {@code SOAPBodyElement} object
      * @exception SOAPException
      *                if a SOAP error occurs
      * @see SOAPBody#addBodyElement(javax.xml.namespace.QName)
@@ -243,13 +243,13 @@
 
 
     /**
-     * Creates a new <code>SOAPBodyElement</code> object with the specified
-     * QName and adds it to this <code>SOAPBody</code> object.
+     * Creates a new {@code SOAPBodyElement} object with the specified
+     * QName and adds it to this {@code SOAPBody} object.
      *
      * @param qname
-     *            a <code>QName</code> object with the qname for the new
-     *            <code>SOAPBodyElement</code> object
-     * @return the new <code>SOAPBodyElement</code> object
+     *            a {@code QName} object with the qname for the new
+     *            {@code SOAPBodyElement} object
+     * @return the new {@code SOAPBodyElement} object
      * @exception SOAPException
      *                if a SOAP error occurs
      * @see SOAPBody#addBodyElement(Name)
@@ -259,20 +259,20 @@
 
     /**
      * Adds the root node of the DOM <code>{@link org.w3c.dom.Document}</code>
-     * to this <code>SOAPBody</code> object.
+     * to this {@code SOAPBody} object.
      * <p>
-     * Calling this method invalidates the <code>document</code> parameter.
-     * The client application should discard all references to this <code>Document</code>
-     * and its contents upon calling <code>addDocument</code>. The behavior
+     * Calling this method invalidates the {@code document} parameter.
+     * The client application should discard all references to this {@code Document}
+     * and its contents upon calling {@code addDocument}. The behavior
      * of an application that continues to use such references is undefined.
      *
      * @param document
-     *            the <code>Document</code> object whose root node will be
-     *            added to this <code>SOAPBody</code>.
-     * @return the <code>SOAPBodyElement</code> that represents the root node
+     *            the {@code Document} object whose root node will be
+     *            added to this {@code SOAPBody}.
+     * @return the {@code SOAPBodyElement} that represents the root node
      *         that was added.
      * @exception SOAPException
-     *                if the <code>Document</code> cannot be added
+     *                if the {@code Document} cannot be added
      * @since 1.6, SAAJ 1.2
      */
     public SOAPBodyElement addDocument(org.w3c.dom.Document document)
@@ -280,16 +280,16 @@
 
     /**
      * Creates a new DOM <code>{@link org.w3c.dom.Document}</code> and sets
-     * the first child of this <code>SOAPBody</code> as it's document
-     * element. The child <code>SOAPElement</code> is removed as part of the
+     * the first child of this {@code SOAPBody} as it's document
+     * element. The child {@code SOAPElement} is removed as part of the
      * process.
      *
      * @return the <code>{@link org.w3c.dom.Document}</code> representation
-     *         of the <code>SOAPBody</code> content.
+     *         of the {@code SOAPBody} content.
      *
      * @exception SOAPException
-     *                if there is not exactly one child <code>SOAPElement</code> of the <code>
-     *              <code>SOAPBody</code>.
+     *            if there is not exactly one child {@code SOAPElement} of the
+     *            {@code SOAPBody}.
      *
      * @since 1.6, SAAJ 1.3
      */
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElement.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElement.java	Mon Apr 27 09:17:39 2015 -0700
@@ -38,7 +38,7 @@
  * Methods in this interface that are required to return SAAJ specific objects
  * may "silently" replace nodes in the tree as required to successfully return
  * objects of the correct type. See {@link #getChildElements()} and
- * {@link <a HREF="package-summary.html#package_description">javax.xml.soap<a>}
+ * {@link <a HREF="package-summary.html#package_description">javax.xml.soap</a>}
  * for details.
  *
  * @since 1.6
@@ -46,115 +46,115 @@
 public interface SOAPElement extends Node, org.w3c.dom.Element {
 
     /**
-     * Creates a new <code>SOAPElement</code> object initialized with the
-     * given <code>Name</code> object and adds the new element to this
-     * <code>SOAPElement</code> object.
+     * Creates a new {@code SOAPElement} object initialized with the
+     * given {@code Name} object and adds the new element to this
+     * {@code SOAPElement} object.
      * <P>
      * This method may be deprecated in a future release of SAAJ in favor of
      * addChildElement(javax.xml.namespace.QName)
      *
-     * @param name a <code>Name</code> object with the XML name for the
+     * @param name a {@code Name} object with the XML name for the
      *        new element
      *
-     * @return the new <code>SOAPElement</code> object that was created
+     * @return the new {@code SOAPElement} object that was created
      * @exception SOAPException if there is an error in creating the
-     *                          <code>SOAPElement</code> object
+     *                          {@code SOAPElement} object
      * @see SOAPElement#addChildElement(javax.xml.namespace.QName)
      */
     public SOAPElement addChildElement(Name name) throws SOAPException;
 
     /**
-     * Creates a new <code>SOAPElement</code> object initialized with the given
-     * <code>QName</code> object and adds the new element to this <code>SOAPElement</code>
+     * Creates a new {@code SOAPElement} object initialized with the given
+     * {@code QName} object and adds the new element to this {@code SOAPElement}
      *  object. The  <i>namespace</i>, <i>localname</i> and <i>prefix</i> of the new
-     * <code>SOAPElement</code> are all taken  from the <code>qname</code> argument.
+     * {@code SOAPElement} are all taken  from the {@code qname} argument.
      *
-     * @param qname a <code>QName</code> object with the XML name for the
+     * @param qname a {@code QName} object with the XML name for the
      *        new element
      *
-     * @return the new <code>SOAPElement</code> object that was created
+     * @return the new {@code SOAPElement} object that was created
      * @exception SOAPException if there is an error in creating the
-     *                          <code>SOAPElement</code> object
+     *                          {@code SOAPElement} object
      * @see SOAPElement#addChildElement(Name)
      * @since 1.6, SAAJ 1.3
      */
     public SOAPElement addChildElement(QName qname) throws SOAPException;
 
     /**
-     * Creates a new <code>SOAPElement</code> object initialized with the
+     * Creates a new {@code SOAPElement} object initialized with the
      * specified local name and adds the new element to this
-     * <code>SOAPElement</code> object.
-     * The new  <code>SOAPElement</code> inherits any in-scope default namespace.
+     * {@code SOAPElement} object.
+     * The new  {@code SOAPElement} inherits any in-scope default namespace.
      *
-     * @param localName a <code>String</code> giving the local name for
+     * @param localName a {@code String} giving the local name for
      *          the element
-     * @return the new <code>SOAPElement</code> object that was created
+     * @return the new {@code SOAPElement} object that was created
      * @exception SOAPException if there is an error in creating the
-     *                          <code>SOAPElement</code> object
+     *                          {@code SOAPElement} object
      */
     public SOAPElement addChildElement(String localName) throws SOAPException;
 
     /**
-     * Creates a new <code>SOAPElement</code> object initialized with the
+     * Creates a new {@code SOAPElement} object initialized with the
      * specified local name and prefix and adds the new element to this
-     * <code>SOAPElement</code> object.
+     * {@code SOAPElement} object.
      *
-     * @param localName a <code>String</code> giving the local name for
+     * @param localName a {@code String} giving the local name for
      *        the new element
-     * @param prefix a <code>String</code> giving the namespace prefix for
+     * @param prefix a {@code String} giving the namespace prefix for
      *        the new element
      *
-     * @return the new <code>SOAPElement</code> object that was created
-     * @exception SOAPException if the <code>prefix</code> is not valid in the
-     *         context of this <code>SOAPElement</code> or  if there is an error in creating the
-     *                          <code>SOAPElement</code> object
+     * @return the new {@code SOAPElement} object that was created
+     * @exception SOAPException if the {@code prefix} is not valid in the
+     *         context of this {@code SOAPElement} or  if there is an error in creating the
+     *                          {@code SOAPElement} object
      */
     public SOAPElement addChildElement(String localName, String prefix)
         throws SOAPException;
 
     /**
-     * Creates a new <code>SOAPElement</code> object initialized with the
+     * Creates a new {@code SOAPElement} object initialized with the
      * specified local name, prefix, and URI and adds the new element to this
-     * <code>SOAPElement</code> object.
+     * {@code SOAPElement} object.
      *
-     * @param localName a <code>String</code> giving the local name for
+     * @param localName a {@code String} giving the local name for
      *        the new element
-     * @param prefix a <code>String</code> giving the namespace prefix for
+     * @param prefix a {@code String} giving the namespace prefix for
      *        the new element
-     * @param uri a <code>String</code> giving the URI of the namespace
+     * @param uri a {@code String} giving the URI of the namespace
      *        to which the new element belongs
      *
-     * @return the new <code>SOAPElement</code> object that was created
+     * @return the new {@code SOAPElement} object that was created
      * @exception SOAPException if there is an error in creating the
-     *                          <code>SOAPElement</code> object
+     *                          {@code SOAPElement} object
      */
     public SOAPElement addChildElement(String localName, String prefix,
                                        String uri)
         throws SOAPException;
 
     /**
-     * Add a <code>SOAPElement</code> as a child of this
-     * <code>SOAPElement</code> instance. The <code>SOAPElement</code>
+     * Add a {@code SOAPElement} as a child of this
+     * {@code SOAPElement} instance. The {@code SOAPElement}
      * is expected to be created by a
-     * <code>SOAPFactory</code>. Callers should not rely on the
+     * {@code SOAPFactory}. Callers should not rely on the
      * element instance being added as is into the XML
      * tree. Implementations could end up copying the content
-     * of the <code>SOAPElement</code> passed into an instance of
-     * a different <code>SOAPElement</code> implementation. For
-     * instance if <code>addChildElement()</code> is called on a
-     * <code>SOAPHeader</code>, <code>element</code> will be copied
-     * into an instance of a <code>SOAPHeaderElement</code>.
+     * of the {@code SOAPElement} passed into an instance of
+     * a different {@code SOAPElement} implementation. For
+     * instance if {@code addChildElement()} is called on a
+     * {@code SOAPHeader}, {@code element} will be copied
+     * into an instance of a {@code SOAPHeaderElement}.
      *
-     * <P>The fragment rooted in <code>element</code> is either added
+     * <P>The fragment rooted in {@code element} is either added
      * as a whole or not at all, if there was an error.
      *
-     * <P>The fragment rooted in <code>element</code> cannot contain
+     * <P>The fragment rooted in {@code element} cannot contain
      * elements named "Envelope", "Header" or "Body" and in the SOAP
      * namespace. Any namespace prefixes present in the fragment
      * should be fully resolved using appropriate namespace
      * declarations within the fragment itself.
      *
-     * @param element the <code>SOAPElement</code> to be added as a
+     * @param element the {@code SOAPElement} to be added as a
      *                new child
      *
      * @exception SOAPException if there was an error in adding this
@@ -167,10 +167,10 @@
         throws SOAPException;
 
     /**
-     * Detaches all children of this <code>SOAPElement</code>.
+     * Detaches all children of this {@code SOAPElement}.
      * <p>
      * This method is useful for rolling back the construction of partially
-     * completed <code>SOAPHeaders</code> and <code>SOAPBodys</code> in
+     * completed {@code SOAPHeaders} and {@code SOAPBodys} in
      * preparation for sending a fault when an error condition is detected. It
      * is also useful for recycling portions of a document within a SOAP
      * message.
@@ -180,33 +180,33 @@
     public abstract void removeContents();
 
     /**
-     * Creates a new <code>Text</code> object initialized with the given
-     * <code>String</code> and adds it to this <code>SOAPElement</code> object.
+     * Creates a new {@code Text} object initialized with the given
+     * {@code String} and adds it to this {@code SOAPElement} object.
      *
-     * @param text a <code>String</code> object with the textual content to be added
+     * @param text a {@code String} object with the textual content to be added
      *
-     * @return the <code>SOAPElement</code> object into which
-     *         the new <code>Text</code> object was inserted
+     * @return the {@code SOAPElement} object into which
+     *         the new {@code Text} object was inserted
      * @exception SOAPException if there is an error in creating the
-     *                    new <code>Text</code> object or if it is not legal to
+     *                    new {@code Text} object or if it is not legal to
      *                      attach it as a child to this
-     *                      <code>SOAPElement</code>
+     *                      {@code SOAPElement}
      */
     public SOAPElement addTextNode(String text) throws SOAPException;
 
     /**
      * Adds an attribute with the specified name and value to this
-     * <code>SOAPElement</code> object.
+     * {@code SOAPElement} object.
      *
-     * @param name a <code>Name</code> object with the name of the attribute
-     * @param value a <code>String</code> giving the value of the attribute
-     * @return the <code>SOAPElement</code> object into which the attribute was
+     * @param name a {@code Name} object with the name of the attribute
+     * @param value a {@code String} giving the value of the attribute
+     * @return the {@code SOAPElement} object into which the attribute was
      *         inserted
      *
      * @exception SOAPException if there is an error in creating the
      *                          Attribute, or it is invalid to set
-                                an attribute with <code>Name</code>
-                                 <code>name</code> on this SOAPElement.
+                                an attribute with {@code Name}
+                                 {@code name} on this SOAPElement.
      * @see SOAPElement#addAttribute(javax.xml.namespace.QName, String)
      */
     public SOAPElement addAttribute(Name name, String value)
@@ -214,17 +214,17 @@
 
     /**
      * Adds an attribute with the specified name and value to this
-     * <code>SOAPElement</code> object.
+     * {@code SOAPElement} object.
      *
-     * @param qname a <code>QName</code> object with the name of the attribute
-     * @param value a <code>String</code> giving the value of the attribute
-     * @return the <code>SOAPElement</code> object into which the attribute was
+     * @param qname a {@code QName} object with the name of the attribute
+     * @param value a {@code String} giving the value of the attribute
+     * @return the {@code SOAPElement} object into which the attribute was
      *         inserted
      *
      * @exception SOAPException if there is an error in creating the
      *                          Attribute, or it is invalid to set
-                                an attribute with <code>QName</code>
-                                <code>qname</code> on this SOAPElement.
+                                an attribute with {@code QName}
+                                {@code qname} on this SOAPElement.
      * @see SOAPElement#addAttribute(Name, String)
      * @since 1.6, SAAJ 1.3
      */
@@ -233,11 +233,11 @@
 
     /**
      * Adds a namespace declaration with the specified prefix and URI to this
-     * <code>SOAPElement</code> object.
+     * {@code SOAPElement} object.
      *
-     * @param prefix a <code>String</code> giving the prefix of the namespace
-     * @param uri a <code>String</code> giving the uri of the namespace
-     * @return the <code>SOAPElement</code> object into which this
+     * @param prefix a {@code String} giving the prefix of the namespace
+     * @param uri a {@code String} giving the uri of the namespace
+     * @return the {@code SOAPElement} object into which this
      *          namespace declaration was inserted.
      *
      * @exception SOAPException if there is an error in creating the
@@ -249,8 +249,8 @@
     /**
      * Returns the value of the attribute with the specified name.
      *
-     * @param name a <code>Name</code> object with the name of the attribute
-     * @return a <code>String</code> giving the value of the specified
+     * @param name a {@code Name} object with the name of the attribute
+     * @return a {@code String} giving the value of the specified
      *         attribute, Null if there is no such attribute
      * @see SOAPElement#getAttributeValue(javax.xml.namespace.QName)
      */
@@ -259,8 +259,8 @@
     /**
      * Returns the value of the attribute with the specified qname.
      *
-     * @param qname a <code>QName</code> object with the qname of the attribute
-     * @return a <code>String</code> giving the value of the specified
+     * @param qname a {@code QName} object with the qname of the attribute
+     * @return a {@code String} giving the value of the specified
      *         attribute, Null if there is no such attribute
      * @see SOAPElement#getAttributeValue(Name)
      * @since 1.6, SAAJ 1.3
@@ -268,11 +268,11 @@
     public String getAttributeValue(QName qname);
 
     /**
-     * Returns an <code>Iterator</code> over all of the attribute
-     * <code>Name</code> objects in this
-     * <code>SOAPElement</code> object. The iterator can be used to get
+     * Returns an {@code Iterator} over all of the attribute
+     * {@code Name} objects in this
+     * {@code SOAPElement} object. The iterator can be used to get
      * the attribute names, which can then be passed to the method
-     * <code>getAttributeValue</code> to retrieve the value of each
+     * {@code getAttributeValue} to retrieve the value of each
      * attribute.
      *
      * @see SOAPElement#getAllAttributesAsQNames()
@@ -281,10 +281,10 @@
     public Iterator getAllAttributes();
 
     /**
-     * Returns an <code>Iterator</code> over all of the attributes
-     * in this <code>SOAPElement</code>  as <code>QName</code> objects.
+     * Returns an {@code Iterator} over all of the attributes
+     * in this {@code SOAPElement}  as {@code QName} objects.
      * The iterator can be used to get the attribute QName, which can then
-     * be passed to the method <code>getAttributeValue</code> to retrieve
+     * be passed to the method {@code getAttributeValue} to retrieve
      * the value of each attribute.
      *
      * @return an iterator over the QNames of the attributes
@@ -297,94 +297,94 @@
     /**
      * Returns the URI of the namespace that has the given prefix.
      *
-     * @param prefix a <code>String</code> giving the prefix of the namespace
+     * @param prefix a {@code String} giving the prefix of the namespace
      *        for which to search
-     * @return a <code>String</code> with the uri of the namespace that has
+     * @return a {@code String} with the uri of the namespace that has
      *        the given prefix
      */
     public String getNamespaceURI(String prefix);
 
     /**
-     * Returns an <code>Iterator</code> over the namespace prefix
-     * <code>String</code>s declared by this element. The prefixes returned by
+     * Returns an {@code Iterator} over the namespace prefix
+     * {@code String}s declared by this element. The prefixes returned by
      * this iterator can be passed to the method
-     * <code>getNamespaceURI</code> to retrieve the URI of each namespace.
+     * {@code getNamespaceURI} to retrieve the URI of each namespace.
      *
      * @return an iterator over the namespace prefixes in this
-     *         <code>SOAPElement</code> object
+     *         {@code SOAPElement} object
      */
     public Iterator getNamespacePrefixes();
 
     /**
-     * Returns an <code>Iterator</code> over the namespace prefix
-     * <code>String</code>s visible to this element. The prefixes returned by
+     * Returns an {@code Iterator} over the namespace prefix
+     * {@code String}s visible to this element. The prefixes returned by
      * this iterator can be passed to the method
-     * <code>getNamespaceURI</code> to retrieve the URI of each namespace.
+     * {@code getNamespaceURI} to retrieve the URI of each namespace.
      *
      * @return an iterator over the namespace prefixes are within scope of this
-     *         <code>SOAPElement</code> object
+     *         {@code SOAPElement} object
      *
      * @since 1.6, SAAJ 1.2
      */
     public Iterator getVisibleNamespacePrefixes();
 
     /**
-     * Creates a <code>QName</code> whose namespace URI is the one associated
-     * with the parameter, <code>prefix</code>, in the context of this
-     * <code>SOAPElement</code>. The remaining elements of the new
-     * <code>QName</code> are taken directly from the parameters,
-     * <code>localName</code> and <code>prefix</code>.
+     * Creates a {@code QName} whose namespace URI is the one associated
+     * with the parameter, {@code prefix}, in the context of this
+     * {@code SOAPElement}. The remaining elements of the new
+     * {@code QName} are taken directly from the parameters,
+     * {@code localName} and {@code prefix}.
      *
      * @param localName
-     *          a <code>String</code> containing the local part of the name.
+     *          a {@code String} containing the local part of the name.
      * @param prefix
-     *          a <code>String</code> containing the prefix for the name.
+     *          a {@code String} containing the prefix for the name.
      *
-     * @return a <code>QName</code> with the specified <code>localName</code>
-     *          and <code>prefix</code>, and with a namespace that is associated
-     *          with the <code>prefix</code> in the context of this
-     *          <code>SOAPElement</code>. This namespace will be the same as
+     * @return a {@code QName} with the specified {@code localName}
+     *          and {@code prefix}, and with a namespace that is associated
+     *          with the {@code prefix} in the context of this
+     *          {@code SOAPElement}. This namespace will be the same as
      *          the one that would be returned by
      *          <code>{@link #getNamespaceURI(String)}</code> if it were given
-     *          <code>prefix</code> as it's parameter.
+     *          {@code prefix} as it's parameter.
      *
-     * @exception SOAPException if the <code>QName</code> cannot be created.
+     * @exception SOAPException if the {@code QName} cannot be created.
      *
      * @since 1.6, SAAJ 1.3
      */
     public QName createQName(String localName, String prefix)
         throws SOAPException;
     /**
-     * Returns the name of this <code>SOAPElement</code> object.
+     * Returns the name of this {@code SOAPElement} object.
      *
-     * @return a <code>Name</code> object with the name of this
-     *         <code>SOAPElement</code> object
+     * @return a {@code Name} object with the name of this
+     *         {@code SOAPElement} object
      */
     public Name getElementName();
 
     /**
-     * Returns the qname of this <code>SOAPElement</code> object.
+     * Returns the qname of this {@code SOAPElement} object.
      *
-     * @return a <code>QName</code> object with the qname of this
-     *         <code>SOAPElement</code> object
+     * @return a {@code QName} object with the qname of this
+     *         {@code SOAPElement} object
      * @see SOAPElement#getElementName()
      * @since 1.6, SAAJ 1.3
      */
     public QName getElementQName();
 
     /**
-    * Changes the name of this <code>Element</code> to <code>newName</code> if
+    * Changes the name of this {@code Element} to {@code newName} if
     * possible. SOAP Defined elements such as SOAPEnvelope, SOAPHeader, SOAPBody
     * etc. cannot have their names changed using this method. Any attempt to do
     * so will result in a  SOAPException being thrown.
     *<P>
     * Callers should not rely on the element instance being renamed as is.
     * Implementations could end up copying the content of the
-    * <code>SOAPElement</code> to a renamed instance.
+    * {@code SOAPElement} to a renamed instance.
     *
-    * @param newName the new name for the <code>Element</code>.
+    * @param newName the new name for the {@code Element}.
     *
-    * @exception SOAPException if changing the name of this <code>Element</code>
+    * @exception SOAPException if changing the name of this {@code Element}
     *                          is not allowed.
     * @return The renamed Node
     *
@@ -395,10 +395,10 @@
    /**
      * Removes the attribute with the specified name.
      *
-     * @param name the <code>Name</code> object with the name of the
+     * @param name the {@code Name} object with the name of the
      *        attribute to be removed
-     * @return <code>true</code> if the attribute was
-     *         removed successfully; <code>false</code> if it was not
+     * @return {@code true} if the attribute was
+     *         removed successfully; {@code false} if it was not
      * @see SOAPElement#removeAttribute(javax.xml.namespace.QName)
      */
     public boolean removeAttribute(Name name);
@@ -406,10 +406,10 @@
     /**
      * Removes the attribute with the specified qname.
      *
-     * @param qname the <code>QName</code> object with the qname of the
+     * @param qname the {@code QName} object with the qname of the
      *        attribute to be removed
-     * @return <code>true</code> if the attribute was
-     *         removed successfully; <code>false</code> if it was not
+     * @return {@code true} if the attribute was
+     *         removed successfully; {@code false} if it was not
      * @see SOAPElement#removeAttribute(Name)
      * @since 1.6, SAAJ 1.3
      */
@@ -418,84 +418,84 @@
     /**
      * Removes the namespace declaration corresponding to the given prefix.
      *
-     * @param prefix a <code>String</code> giving the prefix for which
+     * @param prefix a {@code String} giving the prefix for which
      *        to search
-     * @return <code>true</code> if the namespace declaration was
-     *         removed successfully; <code>false</code> if it was not
+     * @return {@code true} if the namespace declaration was
+     *         removed successfully; {@code false} if it was not
      */
     public boolean removeNamespaceDeclaration(String prefix);
 
     /**
-     * Returns an <code>Iterator</code> over all the immediate child
-     * {@link Node}s of this element. This includes <code>javax.xml.soap.Text</code>
-     * objects as well as <code>SOAPElement</code> objects.
+     * Returns an {@code Iterator} over all the immediate child
+     * {@link Node}s of this element. This includes {@code javax.xml.soap.Text}
+     * objects as well as {@code SOAPElement} objects.
      * <p>
-     * Calling this method may cause child <code>Element</code>,
-     * <code>SOAPElement</code> and <code>org.w3c.dom.Text</code> nodes to be
-     * replaced by <code>SOAPElement</code>, <code>SOAPHeaderElement</code>,
-     * <code>SOAPBodyElement</code> or <code>javax.xml.soap.Text</code> nodes as
+     * Calling this method may cause child {@code Element},
+     * {@code SOAPElement} and {@code org.w3c.dom.Text} nodes to be
+     * replaced by {@code SOAPElement}, {@code SOAPHeaderElement},
+     * {@code SOAPBodyElement} or {@code javax.xml.soap.Text} nodes as
      * appropriate for the type of this parent node. As a result the calling
      * application must treat any existing references to these child nodes that
      * have been obtained through DOM APIs as invalid and either discard them or
-     * refresh them with the values returned by this <code>Iterator</code>. This
+     * refresh them with the values returned by this {@code Iterator}. This
      * behavior can be avoided by calling the equivalent DOM APIs. See
-     * {@link <a HREF="package-summary.html#package_description">javax.xml.soap<a>}
+     * {@link <a HREF="package-summary.html#package_description">javax.xml.soap</a>}
      * for more details.
      *
-     * @return an iterator with the content of this <code>SOAPElement</code>
+     * @return an iterator with the content of this {@code SOAPElement}
      *         object
      */
     public Iterator getChildElements();
 
     /**
-     * Returns an <code>Iterator</code> over all the immediate child
+     * Returns an {@code Iterator} over all the immediate child
      * {@link Node}s of this element with the specified name. All of these
-     * children will be <code>SOAPElement</code> nodes.
+     * children will be {@code SOAPElement} nodes.
      * <p>
-     * Calling this method may cause child <code>Element</code>,
-     * <code>SOAPElement</code> and <code>org.w3c.dom.Text</code> nodes to be
-     * replaced by <code>SOAPElement</code>, <code>SOAPHeaderElement</code>,
-     * <code>SOAPBodyElement</code> or <code>javax.xml.soap.Text</code> nodes as
+     * Calling this method may cause child {@code Element},
+     * {@code SOAPElement} and {@code org.w3c.dom.Text} nodes to be
+     * replaced by {@code SOAPElement}, {@code SOAPHeaderElement},
+     * {@code SOAPBodyElement} or {@code javax.xml.soap.Text} nodes as
      * appropriate for the type of this parent node. As a result the calling
      * application must treat any existing references to these child nodes that
      * have been obtained through DOM APIs as invalid and either discard them or
-     * refresh them with the values returned by this <code>Iterator</code>. This
+     * refresh them with the values returned by this {@code Iterator}. This
      * behavior can be avoided by calling the equivalent DOM APIs. See
-     * {@link <a HREF="package-summary.html#package_description">javax.xml.soap<a>}
+     * {@link <a HREF="package-summary.html#package_description">javax.xml.soap</a>}
      * for more details.
      *
-     * @param name a <code>Name</code> object with the name of the child
+     * @param name a {@code Name} object with the name of the child
      *        elements to be returned
      *
-     * @return an <code>Iterator</code> object over all the elements
-     *         in this <code>SOAPElement</code> object with the
+     * @return an {@code Iterator} object over all the elements
+     *         in this {@code SOAPElement} object with the
      *         specified name
      * @see SOAPElement#getChildElements(javax.xml.namespace.QName)
      */
     public Iterator getChildElements(Name name);
 
     /**
-     * Returns an <code>Iterator</code> over all the immediate child
+     * Returns an {@code Iterator} over all the immediate child
      * {@link Node}s of this element with the specified qname. All of these
-     * children will be <code>SOAPElement</code> nodes.
+     * children will be {@code SOAPElement} nodes.
      * <p>
-     * Calling this method may cause child <code>Element</code>,
-     * <code>SOAPElement</code> and <code>org.w3c.dom.Text</code> nodes to be
-     * replaced by <code>SOAPElement</code>, <code>SOAPHeaderElement</code>,
-     * <code>SOAPBodyElement</code> or <code>javax.xml.soap.Text</code> nodes as
+     * Calling this method may cause child {@code Element},
+     * {@code SOAPElement} and {@code org.w3c.dom.Text} nodes to be
+     * replaced by {@code SOAPElement}, {@code SOAPHeaderElement},
+     * {@code SOAPBodyElement} or {@code javax.xml.soap.Text} nodes as
      * appropriate for the type of this parent node. As a result the calling
      * application must treat any existing references to these child nodes that
      * have been obtained through DOM APIs as invalid and either discard them or
-     * refresh them with the values returned by this <code>Iterator</code>. This
+     * refresh them with the values returned by this {@code Iterator}. This
      * behavior can be avoided by calling the equivalent DOM APIs. See
-     * {@link <a HREF="package-summary.html#package_description">javax.xml.soap<a>}
+     * {@link <a HREF="package-summary.html#package_description">javax.xml.soap</a>}
      * for more details.
      *
-     * @param qname a <code>QName</code> object with the qname of the child
+     * @param qname a {@code QName} object with the qname of the child
      *        elements to be returned
      *
-     * @return an <code>Iterator</code> object over all the elements
-     *         in this <code>SOAPElement</code> object with the
+     * @return an {@code Iterator} object over all the elements
+     *         in this {@code SOAPElement} object with the
      *         specified qname
      * @see SOAPElement#getChildElements(Name)
      * @since 1.6, SAAJ 1.3
@@ -503,10 +503,10 @@
     public Iterator getChildElements(QName qname);
 
     /**
-     * Sets the encoding style for this <code>SOAPElement</code> object
+     * Sets the encoding style for this {@code SOAPElement} object
      * to one specified.
      *
-     * @param encodingStyle a <code>String</code> giving the encoding style
+     * @param encodingStyle a {@code String} giving the encoding style
      *
      * @exception IllegalArgumentException if there was a problem in the
      *            encoding style being set.
@@ -516,9 +516,9 @@
     public void setEncodingStyle(String encodingStyle)
         throws SOAPException;
     /**
-     * Returns the encoding style for this <code>SOAPElement</code> object.
+     * Returns the encoding style for this {@code SOAPElement} object.
      *
-     * @return a <code>String</code> giving the encoding style
+     * @return a {@code String} giving the encoding style
      *
      * @see #setEncodingStyle
      */
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPMessage.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPMessage.java	Mon Apr 27 09:17:39 2015 -0700
@@ -36,24 +36,24 @@
  * message is an XML document or a MIME message whose first body part is an
  * XML/SOAP document.
  * <P>
- * A <code>SOAPMessage</code> object consists of a SOAP part and optionally
- * one or more attachment parts. The SOAP part for a <code>SOAPMessage</code>
- * object is a <code>SOAPPart</code> object, which contains information used
+ * A {@code SOAPMessage} object consists of a SOAP part and optionally
+ * one or more attachment parts. The SOAP part for a {@code SOAPMessage}
+ * object is a {@code SOAPPart} object, which contains information used
  * for message routing and identification, and which can contain
  * application-specific content. All data in the SOAP Part of a message must be
  * in XML format.
  * <P>
- * A new <code>SOAPMessage</code> object contains the following by default:
+ * A new {@code SOAPMessage} object contains the following by default:
  * <UL>
- *   <LI>A <code>SOAPPart</code> object
- *   <LI>A <code>SOAPEnvelope</code> object
- *   <LI>A <code>SOAPBody</code> object
- *   <LI>A <code>SOAPHeader</code> object
+ *   <LI>A {@code SOAPPart} object
+ *   <LI>A {@code SOAPEnvelope} object
+ *   <LI>A {@code SOAPBody} object
+ *   <LI>A {@code SOAPHeader} object
  * </UL>
- * The SOAP part of a message can be retrieved by calling the method <code>SOAPMessage.getSOAPPart()</code>.
- * The <code>SOAPEnvelope</code> object is retrieved from the <code>SOAPPart</code>
- * object, and the <code>SOAPEnvelope</code> object is used to retrieve the
- * <code>SOAPBody</code> and <code>SOAPHeader</code> objects.
+ * The SOAP part of a message can be retrieved by calling the method {@code SOAPMessage.getSOAPPart()}.
+ * The {@code SOAPEnvelope} object is retrieved from the {@code SOAPPart}
+ * object, and the {@code SOAPEnvelope} object is used to retrieve the
+ * {@code SOAPBody} and {@code SOAPHeader} objects.
  *
  * <PRE>
  *     SOAPPart sp = message.getSOAPPart();
@@ -63,32 +63,32 @@
  * </PRE>
  *
  * <P>
- * In addition to the mandatory <code>SOAPPart</code> object, a <code>SOAPMessage</code>
- * object may contain zero or more <code>AttachmentPart</code> objects, each
- * of which contains application-specific data. The <code>SOAPMessage</code>
- * interface provides methods for creating <code>AttachmentPart</code>
- * objects and also for adding them to a <code>SOAPMessage</code> object. A
- * party that has received a <code>SOAPMessage</code> object can examine its
+ * In addition to the mandatory {@code SOAPPart} object, a {@code SOAPMessage}
+ * object may contain zero or more {@code AttachmentPart} objects, each
+ * of which contains application-specific data. The {@code SOAPMessage}
+ * interface provides methods for creating {@code AttachmentPart}
+ * objects and also for adding them to a {@code SOAPMessage} object. A
+ * party that has received a {@code SOAPMessage} object can examine its
  * contents by retrieving individual attachment parts.
  * <P>
  * Unlike the rest of a SOAP message, an attachment is not required to be in
  * XML format and can therefore be anything from simple text to an image file.
  * Consequently, any message content that is not in XML format must be in an
- * <code>AttachmentPart</code> object.
+ * {@code AttachmentPart} object.
  * <P>
- * A <code>MessageFactory</code> object may create <code>SOAPMessage</code>
+ * A {@code MessageFactory} object may create {@code SOAPMessage}
  * objects with behavior that is specialized to a particular implementation or
- * application of SAAJ. For instance, a <code>MessageFactory</code> object
- * may produce <code>SOAPMessage</code> objects that conform to a particular
- * Profile such as ebXML. In this case a <code>MessageFactory</code> object
- * might produce <code>SOAPMessage</code> objects that are initialized with
+ * application of SAAJ. For instance, a {@code MessageFactory} object
+ * may produce {@code SOAPMessage} objects that conform to a particular
+ * Profile such as ebXML. In this case a {@code MessageFactory} object
+ * might produce {@code SOAPMessage} objects that are initialized with
  * ebXML headers.
  * <P>
  * In order to ensure backward source compatibility, methods that are added to
  * this class after version 1.1 of the SAAJ specification are all concrete
  * instead of abstract and they all have default implementations. Unless
  * otherwise noted in the JavaDocs for those methods the default
- * implementations simply throw an <code>UnsupportedOperationException</code>
+ * implementations simply throw an {@code UnsupportedOperationException}
  * and the SAAJ implementation code must override them with methods that
  * provide the specified behavior. Legacy client code does not have this
  * restriction, however, so long as there is no claim made that it conforms to
@@ -126,41 +126,40 @@
         "javax.xml.soap.write-xml-declaration";
 
     /**
-     * Sets the description of this <code>SOAPMessage</code> object's
+     * Sets the description of this {@code SOAPMessage} object's
      * content with the given description.
      *
-     * @param description a <code>String</code> describing the content of this
+     * @param description a {@code String} describing the content of this
      *         message
      * @see #getContentDescription
      */
     public abstract void setContentDescription(String description);
 
     /**
-     * Retrieves a description of this <code>SOAPMessage</code> object's
+     * Retrieves a description of this {@code SOAPMessage} object's
      * content.
      *
-     * @return a <code>String</code> describing the content of this
-     *         message or <code>null</code> if no description has been set
+     * @return a {@code String} describing the content of this
+     *         message or {@code null} if no description has been set
      * @see #setContentDescription
      */
     public abstract String getContentDescription();
 
     /**
-         * Gets the SOAP part of this <code>SOAPMessage</code> object.
+         * Gets the SOAP part of this {@code SOAPMessage} object.
          * <P>
-         * <code>SOAPMessage</code> object contains one or more attachments, the
+         * {@code SOAPMessage} object contains one or more attachments, the
          * SOAP Part must be the first MIME body part in the message.
          *
-         * @return the <code>SOAPPart</code> object for this <code>SOAPMessage</code>
+         * @return the {@code SOAPPart} object for this {@code SOAPMessage}
          *         object
          */
     public abstract SOAPPart getSOAPPart();
 
     /**
-         * Gets the SOAP Body contained in this <code>SOAPMessage</code> object.
-         * <p>
+         * Gets the SOAP Body contained in this {@code SOAPMessage} object.
          *
-         * @return the <code>SOAPBody</code> object contained by this <code>SOAPMessage</code>
+         * @return the {@code SOAPBody} object contained by this {@code SOAPMessage}
          *         object
          * @exception SOAPException
          *               if the SOAP Body does not exist or cannot be retrieved
@@ -171,23 +170,21 @@
     }
 
     /**
-         * Gets the SOAP Header contained in this <code>SOAPMessage</code>
-         * object.
-         * <p>
-         *
-         * @return the <code>SOAPHeader</code> object contained by this <code>SOAPMessage</code>
-         *         object
-         * @exception SOAPException
-         *               if the SOAP Header does not exist or cannot be retrieved
-         * @since 1.6, SAAJ 1.2
-         */
+     * Gets the SOAP Header contained in this {@code SOAPMessage} object.
+     *
+     * @return the {@code SOAPHeader} object contained
+     *         by this {@code SOAPMessage} object
+     * @exception SOAPException
+     *               if the SOAP Header does not exist or cannot be retrieved
+     * @since 1.6, SAAJ 1.2
+     */
     public SOAPHeader getSOAPHeader() throws SOAPException {
         throw new UnsupportedOperationException("getSOAPHeader must be overridden by all subclasses of SOAPMessage");
     }
 
     /**
-         * Removes all <code>AttachmentPart</code> objects that have been added
-         * to this <code>SOAPMessage</code> object.
+         * Removes all {@code AttachmentPart} objects that have been added
+         * to this {@code SOAPMessage} object.
          * <P>
          * This method does not touch the SOAP part.
          */
@@ -197,26 +194,26 @@
          * Gets a count of the number of attachments in this message. This count
          * does not include the SOAP part.
          *
-         * @return the number of <code>AttachmentPart</code> objects that are
-         *         part of this <code>SOAPMessage</code> object
+         * @return the number of {@code AttachmentPart} objects that are
+         *         part of this {@code SOAPMessage} object
          */
     public abstract int countAttachments();
 
     /**
-         * Retrieves all the <code>AttachmentPart</code> objects that are part of
-         * this <code>SOAPMessage</code> object.
+         * Retrieves all the {@code AttachmentPart} objects that are part of
+         * this {@code SOAPMessage} object.
          *
          * @return an iterator over all the attachments in this message
          */
     public abstract Iterator getAttachments();
 
     /**
-         * Retrieves all the <code>AttachmentPart</code> objects that have header
+         * Retrieves all the {@code AttachmentPart} objects that have header
          * entries that match the specified headers. Note that a returned
          * attachment could have headers in addition to those specified.
          *
          * @param headers
-         *           a <code>MimeHeaders</code> object containing the MIME
+         *           a {@code MimeHeaders} object containing the MIME
          *           headers for which to search
          * @return an iterator over all attachments that have a header that matches
          *         one of the given headers
@@ -224,12 +221,12 @@
     public abstract Iterator getAttachments(MimeHeaders headers);
 
     /**
-     * Removes all the <code>AttachmentPart</code> objects that have header
+     * Removes all the {@code AttachmentPart} objects that have header
      * entries that match the specified headers. Note that the removed
      * attachment could have headers in addition to those specified.
      *
      * @param headers
-     *           a <code>MimeHeaders</code> object containing the MIME
+     *           a {@code MimeHeaders} object containing the MIME
      *           headers for which to search
      * @since 1.6, SAAJ 1.3
      */
@@ -237,25 +234,26 @@
 
 
     /**
-     * Returns an <code>AttachmentPart</code> object that is associated with an
-     * attachment that is referenced by this <code>SOAPElement</code> or
-     * <code>null</code> if no such attachment exists. References can be made
-     * via an <code>href</code> attribute as described in
-     * {@link <a href="http://www.w3.org/TR/SOAP-attachments#SOAPReferenceToAttachements">SOAP Messages with Attachments</a>},
-     * or via a single <code>Text</code> child node containing a URI as
+     * Returns an {@code AttachmentPart} object that is associated with an
+     * attachment that is referenced by this {@code SOAPElement} or
+     * {@code null} if no such attachment exists. References can be made
+     * via an {@code href} attribute as described in
+     * <a href="http://www.w3.org/TR/SOAP-attachments#SOAPReferenceToAttachements">SOAP Messages with Attachments</a>,
+     * or via a single {@code Text} child node containing a URI as
      * described in the WS-I Attachments Profile 1.0 for elements of schema
-     * type {@link <a href="http://www.ws-i.org/Profiles/AttachmentsProfile-1.0-2004-08-24.html">ref:swaRef</a>}.  These two mechanisms must be supported.
-     * The support for references via <code>href</code> attribute also implies that
+     * type <a href="http://www.ws-i.org/Profiles/AttachmentsProfile-1.0-2004-08-24.html">ref:swaRef</a>.
+     * These two mechanisms must be supported.
+     * The support for references via {@code href} attribute also implies that
      * this method should also be supported on an element that is an
      * <i>xop:Include</i> element (
-     * {@link <a  href="http://www.w3.org/2000/xp/Group/3/06/Attachments/XOP.html">XOP</a>}).
+     * <a href="http://www.w3.org/2000/xp/Group/3/06/Attachments/XOP.html">XOP</a>).
      * other reference mechanisms may be supported by individual
      * implementations of this standard. Contact your vendor for details.
      *
-     * @param  element The <code>SOAPElement</code> containing the reference to an Attachment
-     * @return the referenced <code>AttachmentPart</code> or null if no such
-     *          <code>AttachmentPart</code> exists or no reference can be
-     *          found in this <code>SOAPElement</code>.
+     * @param  element The {@code SOAPElement} containing the reference to an Attachment
+     * @return the referenced {@code AttachmentPart} or null if no such
+     *          {@code AttachmentPart} exists or no reference can be
+     *          found in this {@code SOAPElement}.
      * @throws SOAPException if there is an error in the attempt to access the
      *          attachment
      *
@@ -265,40 +263,40 @@
 
 
     /**
-     * Adds the given <code>AttachmentPart</code> object to this <code>SOAPMessage</code>
-     * object. An <code>AttachmentPart</code> object must be created before
+     * Adds the given {@code AttachmentPart} object to this {@code SOAPMessage}
+     * object. An {@code AttachmentPart} object must be created before
      * it can be added to a message.
      *
      * @param AttachmentPart
-     *           an <code>AttachmentPart</code> object that is to become part
-     *           of this <code>SOAPMessage</code> object
+     *           an {@code AttachmentPart} object that is to become part
+     *           of this {@code SOAPMessage} object
      * @exception IllegalArgumentException
      */
     public abstract void addAttachmentPart(AttachmentPart AttachmentPart);
 
     /**
-     * Creates a new empty <code>AttachmentPart</code> object. Note that the
-     * method <code>addAttachmentPart</code> must be called with this new
-     * <code>AttachmentPart</code> object as the parameter in order for it to
-     * become an attachment to this <code>SOAPMessage</code> object.
+     * Creates a new empty {@code AttachmentPart} object. Note that the
+     * method {@code addAttachmentPart} must be called with this new
+     * {@code AttachmentPart} object as the parameter in order for it to
+     * become an attachment to this {@code SOAPMessage} object.
      *
-     * @return a new <code>AttachmentPart</code> object that can be populated
-     *         and added to this <code>SOAPMessage</code> object
+     * @return a new {@code AttachmentPart} object that can be populated
+     *         and added to this {@code SOAPMessage} object
      */
     public abstract AttachmentPart createAttachmentPart();
 
     /**
-     * Creates an <code>AttachmentPart</code> object and populates it using
-     * the given <code>DataHandler</code> object.
+     * Creates an {@code AttachmentPart} object and populates it using
+     * the given {@code DataHandler} object.
      *
      * @param dataHandler
-     *           the <code>javax.activation.DataHandler</code> object that
-     *           will generate the content for this <code>SOAPMessage</code>
+     *           the {@code javax.activation.DataHandler} object that
+     *           will generate the content for this {@code SOAPMessage}
      *           object
-     * @return a new <code>AttachmentPart</code> object that contains data
-     *         generated by the given <code>DataHandler</code> object
+     * @return a new {@code AttachmentPart} object that contains data
+     *         generated by the given {@code DataHandler} object
      * @exception IllegalArgumentException
-     *               if there was a problem with the specified <code>DataHandler</code>
+     *               if there was a problem with the specified {@code DataHandler}
      *               object
      * @see javax.activation.DataHandler
      * @see javax.activation.DataContentHandler
@@ -310,32 +308,32 @@
     }
 
     /**
-     * Returns all the transport-specific MIME headers for this <code>SOAPMessage</code>
+     * Returns all the transport-specific MIME headers for this {@code SOAPMessage}
      * object in a transport-independent fashion.
      *
-     * @return a <code>MimeHeaders</code> object containing the <code>MimeHeader</code>
+     * @return a {@code MimeHeaders} object containing the {@code MimeHeader}
      *         objects
      */
     public abstract MimeHeaders getMimeHeaders();
 
     /**
-     * Creates an <code>AttachmentPart</code> object and populates it with
+     * Creates an {@code AttachmentPart} object and populates it with
      * the specified data of the specified content type. The type of the
-     * <code>Object</code> should correspond to the value given for the
-     * <code>Content-Type</code>.
+     * {@code Object} should correspond to the value given for the
+     * {@code Content-Type}.
      *
      * @param content
-     *           an <code>Object</code> containing the content for the
-     *           <code>AttachmentPart</code> object to be created
+     *           an {@code Object} containing the content for the
+     *           {@code AttachmentPart} object to be created
      * @param contentType
-     *           a <code>String</code> object giving the type of content;
+     *           a {@code String} object giving the type of content;
      *           examples are "text/xml", "text/plain", and "image/jpeg"
-     * @return a new <code>AttachmentPart</code> object that contains the
+     * @return a new {@code AttachmentPart} object that contains the
      *         given data
      * @exception IllegalArgumentException
      *               may be thrown if the contentType does not match the type
      *               of the content object, or if there was no
-     *               <code>DataContentHandler</code> object for the given
+     *               {@code DataContentHandler} object for the given
      *               content object
      * @see javax.activation.DataHandler
      * @see javax.activation.DataContentHandler
@@ -349,50 +347,49 @@
     }
 
     /**
-     * Updates this <code>SOAPMessage</code> object with all the changes that
+     * Updates this {@code SOAPMessage} object with all the changes that
      * have been made to it. This method is called automatically when
      * {@link SOAPMessage#writeTo(OutputStream)} is  called. However, if
      * changes are made to a message that was received or to one that has
-     * already been sent, the method <code>saveChanges</code> needs to be
-     * called explicitly in order to save the changes. The method <code>saveChanges</code>
+     * already been sent, the method {@code saveChanges} needs to be
+     * called explicitly in order to save the changes. The method {@code saveChanges}
      * also generates any changes that can be read back (for example, a
      * MessageId in profiles that support a message id). All MIME headers in a
      * message that is created for sending purposes are guaranteed to have
-     * valid values only after <code>saveChanges</code> has been called.
+     * valid values only after {@code saveChanges} has been called.
      * <P>
      * In addition, this method marks the point at which the data from all
-     * constituent <code>AttachmentPart</code> objects are pulled into the
+     * constituent {@code AttachmentPart} objects are pulled into the
      * message.
-     * <P>
      *
-     * @exception <code>SOAPException</code> if there was a problem saving
-     *               changes to this message.
+     * @exception SOAPException if there was a problem saving
+     *            changes to this message.
      */
     public abstract void saveChanges() throws SOAPException;
 
     /**
-     * Indicates whether this <code>SOAPMessage</code> object needs to have
-     * the method <code>saveChanges</code> called on it.
+     * Indicates whether this {@code SOAPMessage} object needs to have
+     * the method {@code saveChanges} called on it.
      *
-     * @return <code>true</code> if <code>saveChanges</code> needs to be
-     *         called; <code>false</code> otherwise.
+     * @return {@code true} if {@code saveChanges} needs to be
+     *         called; {@code false} otherwise.
      */
     public abstract boolean saveRequired();
 
     /**
-     * Writes this <code>SOAPMessage</code> object to the given output
+     * Writes this {@code SOAPMessage} object to the given output
      * stream. The externalization format is as defined by the SOAP 1.1 with
      * Attachments specification.
      * <P>
      * If there are no attachments, just an XML stream is written out. For
-     * those messages that have attachments, <code>writeTo</code> writes a
+     * those messages that have attachments, {@code writeTo} writes a
      * MIME-encoded byte stream.
      * <P>
      * Note that this method does not write the transport-specific MIME Headers
      * of the Message
      *
      * @param out
-     *           the <code>OutputStream</code> object to which this <code>SOAPMessage</code>
+     *           the {@code OutputStream} object to which this {@code SOAPMessage}
      *           object will be written
      * @exception IOException
      *               if an I/O error occurs
@@ -414,13 +411,13 @@
      * implementation specific properties. These properties must be prefixed
      * with package names that are unique to the vendor.
      * <p>
-     * Setting the property <code>WRITE_XML_DECLARATION</code> to <code>"true"</code>
+     * Setting the property {@code WRITE_XML_DECLARATION} to {@code "true"}
      * will cause an XML Declaration to be written out at the start of the SOAP
      * message. The default value of "false" suppresses this declaration.
      * <p>
-     * The property <code>CHARACTER_SET_ENCODING</code> defaults to the value
-     * <code>"utf-8"</code> which causes the SOAP message to be encoded using
-     * UTF-8. Setting <code>CHARACTER_SET_ENCODING</code> to <code>"utf-16"</code>
+     * The property {@code CHARACTER_SET_ENCODING} defaults to the value
+     * {@code "utf-8"} which causes the SOAP message to be encoded using
+     * UTF-8. Setting {@code CHARACTER_SET_ENCODING} to {@code "utf-16"}
      * causes the SOAP message to be encoded using UTF-16.
      * <p>
      * Some implementations may allow encodings in addition to UTF-8 and
@@ -445,7 +442,7 @@
      *
      * @param property
      *           the name of the property to retrieve
-     * @return the value associated with the named property or <code>null</code>
+     * @return the value associated with the named property or {@code null}
      *         if no such property exists.
      * @exception SOAPException
      *               if the property name is not recognized.
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPPart.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/soap/SOAPPart.java	Mon Apr 27 09:17:39 2015 -0700
@@ -30,52 +30,51 @@
 import javax.xml.transform.Source;
 
 /**
- * The container for the SOAP-specific portion of a <code>SOAPMessage</code>
+ * The container for the SOAP-specific portion of a {@code SOAPMessage}
  * object. All messages are required to have a SOAP part, so when a
- * <code>SOAPMessage</code> object is created, it will automatically
- * have a <code>SOAPPart</code> object.
- *<P>
- * A <code>SOAPPart</code> object is a MIME part and has the MIME headers
+ * {@code SOAPMessage} object is created, it will automatically
+ * have a {@code SOAPPart} object.
+ * <P>
+ * A {@code SOAPPart} object is a MIME part and has the MIME headers
  * Content-Id, Content-Location, and Content-Type.  Because the value of
- * Content-Type must be "text/xml", a <code>SOAPPart</code> object automatically
+ * Content-Type must be "text/xml", a {@code SOAPPart} object automatically
  * has a MIME header of Content-Type with its value set to "text/xml".
  * The value must be "text/xml" because content in the SOAP part of a
  * message must be in XML format.  Content that is not of type "text/xml"
- * must be in an <code>AttachmentPart</code> object rather than in the
- * <code>SOAPPart</code> object.
+ * must be in an {@code AttachmentPart} object rather than in the
+ * {@code SOAPPart} object.
  * <P>
  * When a message is sent, its SOAP part must have the MIME header Content-Type
  * set to "text/xml". Or, from the other perspective, the SOAP part of any
  * message that is received must have the MIME header Content-Type with a
  * value of "text/xml".
  * <P>
- * A client can access the <code>SOAPPart</code> object of a
- * <code>SOAPMessage</code> object by
- * calling the method <code>SOAPMessage.getSOAPPart</code>. The
- * following  line of code, in which <code>message</code> is a
- * <code>SOAPMessage</code> object, retrieves the SOAP part of a message.
+ * A client can access the {@code SOAPPart} object of a
+ * {@code SOAPMessage} object by
+ * calling the method {@code SOAPMessage.getSOAPPart}. The
+ * following  line of code, in which {@code message} is a
+ * {@code SOAPMessage} object, retrieves the SOAP part of a message.
  * <PRE>
  *   SOAPPart soapPart = message.getSOAPPart();
  * </PRE>
  * <P>
- * A <code>SOAPPart</code> object contains a <code>SOAPEnvelope</code> object,
- * which in turn contains a <code>SOAPBody</code> object and a
- * <code>SOAPHeader</code> object.
- * The <code>SOAPPart</code> method <code>getEnvelope</code> can be used
- * to retrieve the <code>SOAPEnvelope</code> object.
- * <P>
+ * A {@code SOAPPart} object contains a {@code SOAPEnvelope} object,
+ * which in turn contains a {@code SOAPBody} object and a
+ * {@code SOAPHeader} object.
+ * The {@code SOAPPart} method {@code getEnvelope} can be used
+ * to retrieve the {@code SOAPEnvelope} object.
  *
  * @since 1.6
  */
 public abstract class SOAPPart implements org.w3c.dom.Document, Node {
 
     /**
-     * Gets the <code>SOAPEnvelope</code> object associated with this
-     * <code>SOAPPart</code> object. Once the SOAP envelope is obtained, it
+     * Gets the {@code SOAPEnvelope} object associated with this
+     * {@code SOAPPart} object. Once the SOAP envelope is obtained, it
      * can be used to get its contents.
      *
-     * @return the <code>SOAPEnvelope</code> object for this
-     *           <code>SOAPPart</code> object
+     * @return the {@code SOAPEnvelope} object for this
+     *           {@code SOAPPart} object
      * @exception SOAPException if there is a SOAP error
      */
     public abstract SOAPEnvelope getEnvelope() throws SOAPException;
@@ -83,7 +82,7 @@
     /**
      * Retrieves the value of the MIME header whose name is "Content-Id".
      *
-     * @return a <code>String</code> giving the value of the MIME header
+     * @return a {@code String} giving the value of the MIME header
      *         named "Content-Id"
      * @see #setContentId
      */
@@ -97,7 +96,7 @@
     /**
      * Retrieves the value of the MIME header whose name is "Content-Location".
      *
-     * @return a <code>String</code> giving the value of the MIME header whose
+     * @return a {@code String} giving the value of the MIME header whose
      *          name is "Content-Location"
      * @see #setContentLocation
      */
@@ -110,9 +109,9 @@
 
     /**
      * Sets the value of the MIME header named "Content-Id"
-     * to the given <code>String</code>.
+     * to the given {@code String}.
      *
-     * @param contentId a <code>String</code> giving the value of the MIME
+     * @param contentId a {@code String} giving the value of the MIME
      *        header "Content-Id"
      *
      * @exception IllegalArgumentException if there is a problem in
@@ -125,9 +124,9 @@
     }
     /**
      * Sets the value of the MIME header "Content-Location"
-     * to the given <code>String</code>.
+     * to the given {@code String}.
      *
-     * @param contentLocation a <code>String</code> giving the value
+     * @param contentLocation a {@code String} giving the value
      *        of the MIME
      *        header "Content-Location"
      * @exception IllegalArgumentException if there is a problem in
@@ -141,24 +140,24 @@
     /**
      * Removes all MIME headers that match the given name.
      *
-     * @param header a <code>String</code> giving the name of the MIME header(s) to
+     * @param header a {@code String} giving the name of the MIME header(s) to
      *               be removed
      */
     public abstract void removeMimeHeader(String header);
 
     /**
-     * Removes all the <code>MimeHeader</code> objects for this
-     * <code>SOAPEnvelope</code> object.
+     * Removes all the {@code MimeHeader} objects for this
+     * {@code SOAPEnvelope} object.
      */
     public abstract void removeAllMimeHeaders();
 
     /**
-     * Gets all the values of the <code>MimeHeader</code> object
-     * in this <code>SOAPPart</code> object that
-     * is identified by the given <code>String</code>.
+     * Gets all the values of the {@code MimeHeader} object
+     * in this {@code SOAPPart} object that
+     * is identified by the given {@code String}.
      *
      * @param name the name of the header; example: "Content-Type"
-     * @return a <code>String</code> array giving all the values for the
+     * @return a {@code String} array giving all the values for the
      *         specified header
      * @see #setMimeHeader
      */
@@ -176,13 +175,13 @@
      * <P>
      * Note that RFC822 headers can contain only US-ASCII characters.
      *
-     * @param   name    a <code>String</code> giving the header name
+     * @param   name    a {@code String} giving the header name
      *                  for which to search
-     * @param   value   a <code>String</code> giving the value to be set.
+     * @param   value   a {@code String} giving the value to be set.
      *                  This value will be substituted for the current value(s)
      *                  of the first header that is a match if there is one.
      *                  If there is no match, this value will be the value for
-     *                  a new <code>MimeHeader</code> object.
+     *                  a new {@code MimeHeader} object.
      *
      * @exception IllegalArgumentException if there was a problem with
      *            the specified mime header name or value
@@ -191,16 +190,16 @@
     public abstract void setMimeHeader(String name, String value);
 
     /**
-     * Creates a <code>MimeHeader</code> object with the specified
-     * name and value and adds it to this <code>SOAPPart</code> object.
-     * If a <code>MimeHeader</code> with the specified name already
+     * Creates a {@code MimeHeader} object with the specified
+     * name and value and adds it to this {@code SOAPPart} object.
+     * If a {@code MimeHeader} with the specified name already
      * exists, this method adds the specified value to the already
      * existing value(s).
      * <P>
      * Note that RFC822 headers can contain only US-ASCII characters.
      *
-     * @param   name    a <code>String</code> giving the header name
-     * @param   value   a <code>String</code> giving the value to be set
+     * @param   name    a {@code String} giving the header name
+     * @param   value   a {@code String} giving the value to be set
      *                  or added
      * @exception IllegalArgumentException if there was a problem with
      *            the specified mime header name or value
@@ -208,44 +207,44 @@
     public abstract void addMimeHeader(String name, String value);
 
     /**
-     * Retrieves all the headers for this <code>SOAPPart</code> object
-     * as an iterator over the <code>MimeHeader</code> objects.
+     * Retrieves all the headers for this {@code SOAPPart} object
+     * as an iterator over the {@code MimeHeader} objects.
      *
-     * @return  an <code>Iterator</code> object with all of the Mime
-     *          headers for this <code>SOAPPart</code> object
+     * @return  an {@code Iterator} object with all of the Mime
+     *          headers for this {@code SOAPPart} object
      */
     public abstract Iterator getAllMimeHeaders();
 
     /**
-     * Retrieves all <code>MimeHeader</code> objects that match a name in
+     * Retrieves all {@code MimeHeader} objects that match a name in
      * the given array.
      *
-     * @param names a <code>String</code> array with the name(s) of the
+     * @param names a {@code String} array with the name(s) of the
      *        MIME headers to be returned
      * @return  all of the MIME headers that match one of the names in the
-     *           given array, returned as an <code>Iterator</code> object
+     *           given array, returned as an {@code Iterator} object
      */
     public abstract Iterator getMatchingMimeHeaders(String[] names);
 
     /**
-     * Retrieves all <code>MimeHeader</code> objects whose name does
+     * Retrieves all {@code MimeHeader} objects whose name does
      * not match a name in the given array.
      *
-     * @param names a <code>String</code> array with the name(s) of the
+     * @param names a {@code String} array with the name(s) of the
      *        MIME headers not to be returned
-     * @return  all of the MIME headers in this <code>SOAPPart</code> object
+     * @return  all of the MIME headers in this {@code SOAPPart} object
      *          except those that match one of the names in the
      *           given array.  The nonmatching MIME headers are returned as an
-     *           <code>Iterator</code> object.
+     *           {@code Iterator} object.
      */
     public abstract Iterator getNonMatchingMimeHeaders(String[] names);
 
     /**
-     * Sets the content of the <code>SOAPEnvelope</code> object with the data
-     * from the given <code>Source</code> object. This <code>Source</code>
+     * Sets the content of the {@code SOAPEnvelope} object with the data
+     * from the given {@code Source} object. This {@code Source}
      * must contain a valid SOAP document.
      *
-     * @param source the <code>javax.xml.transform.Source</code> object with the
+     * @param source the {@code javax.xml.transform.Source} object with the
      *        data to be set
      *
      * @exception SOAPException if there is a problem in setting the source
@@ -254,13 +253,13 @@
     public abstract void setContent(Source source) throws SOAPException;
 
     /**
-     * Returns the content of the SOAPEnvelope as a JAXP <code>Source</code>
+     * Returns the content of the SOAPEnvelope as a JAXP {@code Source}
      * object.
      *
-     * @return the content as a <code>javax.xml.transform.Source</code> object
+     * @return the content as a {@code javax.xml.transform.Source} object
      *
      * @exception SOAPException if the implementation cannot convert
-     *                          the specified <code>Source</code> object
+     *                          the specified {@code Source} object
      * @see #setContent
      */
     public abstract Source getContent() throws SOAPException;
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/Action.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/Action.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,89 +32,90 @@
 import java.lang.annotation.Target;
 
 /**
- * The <code>Action</code> annotation allows explicit association of a
- * WS-Addressing <code>Action</code> message addressing property with
- * <code>input</code>, <code>output</code>, and
- * <code>fault</code> messages of the mapped WSDL operation.
+ * The {@code Action} annotation allows explicit association of a
+ * WS-Addressing {@code Action} message addressing property with
+ * {@code input}, {@code output}, and
+ * {@code fault} messages of the mapped WSDL operation.
  * <p>
  * This annotation can be specified on each method of a service endpoint interface.
  * For such a method, the mapped operation in the generated WSDL's
- * <code>wsam:Action</code> attribute on the WSDL <code>input</code>,
- * <code>output</code> and <code>fault</code> messages of the WSDL <code>operation</code>
- * is based upon which attributes of the <code>Action</code> annotation have been specified.
- * For the exact computation of <code>wsam:Action</code> values for the messages, refer
+ * {@code wsam:Action} attribute on the WSDL {@code input},
+ * {@code output} and {@code fault} messages of the WSDL {@code operation}
+ * is based upon which attributes of the {@code Action} annotation have been specified.
+ * For the exact computation of {@code wsam:Action} values for the messages, refer
  * to the algorithm in the JAX-WS specification.
  * <p>
- * <b>Example 1</b>: Specify explicit values for <code>Action</code> message addressing property
- * for <code>input</code> and <code>output</code> messages.
+ * <b>Example 1</b>: Specify explicit values for {@code Action} message addressing property
+ * for {@code input} and {@code output} messages.
  *
  * <pre>
- * &#64;WebService(targetNamespace="http://example.com/numbers")
- * public class AddNumbersImpl {
- *     <b>&#64;Action(
- *         input="http://example.com/inputAction",
- *         output="http://example.com/outputAction")</b>
- *     public int addNumbers(int number1, int number2) {
- *         return number1 + number2;
- *     }
- * }
+ * {@literal @}WebService(targetNamespace="http://example.com/numbers")
+ *  public class AddNumbersImpl {
+ *     <b>{@literal @}Action(
+ *          input="http://example.com/inputAction",
+ *          output="http://example.com/outputAction")</b>
+ *      public int addNumbers(int number1, int number2) {
+ *          return number1 + number2;
+ *      }
+ *  }
  * </pre>
  *
  * The generated WSDL looks like:
- * <pre>
- *   &lt;definitions targetNamespace="http://example.com/numbers" ...>
+ * <pre> {@code
+ *   <definitions targetNamespace="http://example.com/numbers" ...>
  *     ...
- *     &lt;portType name="AddNumbersPortType">
- *       &lt;operation name="AddNumbers">
- *         &lt;input message="tns:AddNumbersInput" name="foo"
+ *     <portType name="AddNumbersPortType">
+ *       <operation name="AddNumbers">
+ *         <input message="tns:AddNumbersInput" name="foo"
  *           <b>wsam:Action="http://example.com/inputAction"</b>/>
- *         &lt;output message="tns:AddNumbersOutput" name="bar"
+ *         <output message="tns:AddNumbersOutput" name="bar"
  *           <b>wsam:Action="http://example.com/outputAction"</b>/>
- *       &lt;/operation>
- *     &lt;/portType>
+ *       </operation>
+ *     </portType>
  *     ...
- *   &lt;/definitions>
+ *   </definitions>
+ * }
  * </pre>
  *
  * <p>
- * <b>Example 2</b>: Specify explicit value for <code>Action</code> message addressing property
- * for only the <code>input</code> message. The <code>wsam:Action</code> values for the
- * WSDL <code>output</code> message are computed using the algorithm in the JAX-WS specification.
+ * <b>Example 2</b>: Specify explicit value for {@code Action} message addressing property
+ * for only the {@code input} message. The {@code wsam:Action} values for the
+ * WSDL {@code output} message are computed using the algorithm in the JAX-WS specification.
  *
  * <pre>
- * &#64;WebService(targetNamespace="http://example.com/numbers")
- * public class AddNumbersImpl {
- *     <b>&#64;Action(input="http://example.com/inputAction")</b>
- *     public int addNumbers(int number1, int number2) {
- *         return number1 + number2;
- *     }
- * }
+ * {@literal @}WebService(targetNamespace="http://example.com/numbers")
+ *  public class AddNumbersImpl {
+ *     <b>{@literal @}Action(input="http://example.com/inputAction")</b>
+ *      public int addNumbers(int number1, int number2) {
+ *          return number1 + number2;
+ *      }
+ *  }
  * </pre>
  *
  * The generated WSDL looks like:
- * <pre>
- *   &lt;definitions targetNamespace="http://example.com/numbers" ...>
+ * <pre> {@code
+ *   <definitions targetNamespace="http://example.com/numbers" ...>
  *     ...
- *     &lt;portType name="AddNumbersPortType">
- *       &lt;operation name="AddNumbers">
- *         &lt;input message="tns:AddNumbersInput" name="foo"
- *           <b>wsam:Action="http://example.com/inputAction"</b> />
- *         &lt;output message="tns:AddNumbersOutput" name="bar"
+ *     <portType name="AddNumbersPortType">
+ *       <operation name="AddNumbers">
+ *         <input message="tns:AddNumbersInput" name="foo"
+ *           <b>wsam:Action="http://example.com/inputAction"</b>/>
+ *         <output message="tns:AddNumbersOutput" name="bar"
  *           <b>wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbersResponse"</b>/>
- *       &lt;/operation>
- *     &lt;/portType>
+ *       </operation>
+ *     </portType>
  *     ...
- *   &lt;/definitions>
- * </pre>
+ *   </definitions>
+ * }</pre>
  *
- * It is legitimate to specify an explicit value for <code>Action</code> message addressing property for
- * <code>output</code> message only. In this case, <code>wsam:Action</code> value for the
- * WSDL <code>input</code> message is computed using the algorithm in the JAX-WS specification.
+ * It is legitimate to specify an explicit value for {@code Action} message addressing property for
+ * {@code output} message only. In this case, {@code wsam:Action} value for the
+ * WSDL {@code input} message is computed using the algorithm in the JAX-WS specification.
  *
  * <p>
  * <b>Example 3</b>: See {@link FaultAction} annotation for an example of
- * how to specify an explicit value for <code>Action</code> message addressing property for the
- * <code>fault</code> message.
+ * how to specify an explicit value for {@code Action} message addressing property for the
+ * {@code fault} message.
  *
  * @see FaultAction
  *
@@ -126,21 +127,21 @@
 @Target(ElementType.METHOD)
 public @interface Action {
     /**
-     * Explicit value of the WS-Addressing <code>Action</code> message addressing property for the <code>input</code>
+     * Explicit value of the WS-Addressing {@code Action} message addressing property for the {@code input}
      * message of the operation.
      */
     String input() default "";
 
     /**
-     * Explicit value of the WS-Addressing <code>Action</code> message addressing property for the <code>output</code>
+     * Explicit value of the WS-Addressing {@code Action} message addressing property for the {@code output}
      * message of the operation.
      */
     String output() default "";
 
     /**
-     * Explicit value of the WS-Addressing <code>Action</code> message addressing property for the <code>fault</code>
+     * Explicit value of the WS-Addressing {@code Action} message addressing property for the {@code fault}
      * message(s) of the operation. Each exception that is mapped to a fault and requires an explicit WS-Addressing
-     * <code>Action</code> message addressing property, needs to be specified as a value in this property
+     * {@code Action} message addressing property, needs to be specified as a value in this property
      * using {@link FaultAction} annotation.
      */
     FaultAction[] fault() default { };
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/Binding.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/Binding.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml.ws;
 
 
-/** The <code>Binding</code> interface is the base interface
+/** The {@code Binding} interface is the base interface
  *  for JAX-WS protocol bindings.
  *
  *  @since 1.6, JAX-WS 2.0
@@ -35,10 +35,10 @@
 
    /**
     * Gets a copy of the handler chain for a protocol binding instance.
-    * If the returned chain is modified a call to <code>setHandlerChain</code>
+    * If the returned chain is modified a call to {@code setHandlerChain}
     * is required to configure the binding instance with the new chain.
     *
-    *  @return java.util.List&lt;Handler> Handler chain
+    *  @return {@code java.util.List<Handler>} Handler chain
     */
     public java.util.List<javax.xml.ws.handler.Handler> getHandlerChain();
 
@@ -59,7 +59,7 @@
      * Get the URI for this binding instance.
      *
      * @return String The binding identifier for the port.
-     *    Never returns <code>null</code>
+     *    Never returns {@code null}
      *
      * @since 1.6, JAX-WS 2.1
      */
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/Dispatch.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/Dispatch.java	Mon Apr 27 09:17:39 2015 -0700
@@ -27,10 +27,10 @@
 
 import java.util.concurrent.Future;
 
-/** The <code>Dispatch</code> interface provides support
+/** The {@code Dispatch} interface provides support
  *  for the dynamic invocation of a service endpoint operations. The
- *  <code>javax.xml.ws.Service</code>
- *  class acts as a factory for the creation of <code>Dispatch</code>
+ *  {@code javax.xml.ws.Service}
+ *  class acts as a factory for the creation of {@code Dispatch}
  *  instances.
  *
  *  @since 1.6, JAX-WS 2.0
@@ -39,7 +39,7 @@
 
     /** Invoke a service operation synchronously.
      *
-     * The client is responsible for ensuring that the <code>msg</code> object
+     * The client is responsible for ensuring that the {@code msg} object
      * when marshalled is formed according to the requirements of the protocol
      * binding in use.
      *
@@ -50,16 +50,16 @@
      * @throws WebServiceException If a fault occurs during communication with
      *     the service
      * @throws WebServiceException If there is any error in the configuration of
-     *     the <code>Dispatch</code> instance
+     *     the {@code Dispatch} instance
     **/
     public T invoke(T msg);
 
     /** Invoke a service operation asynchronously.  The
      *  method returns without waiting for the response to the operation
      *  invocation, the results of the operation are obtained by polling the
-     *  returned <code>Response</code>.
+     *  returned {@code Response}.
      * <p>
-     * The client is responsible for ensuring that the <code>msg</code> object
+     * The client is responsible for ensuring that the {@code msg} object
      * when marshalled is formed according to the requirements of the protocol
      * binding in use.
      *
@@ -68,16 +68,16 @@
      * @return The response message or message payload to the
      *     operation invocation.
      * @throws WebServiceException If there is any error in the configuration of
-     *     the <code>Dispatch</code> instance
+     *     the {@code Dispatch} instance
     **/
     public Response<T> invokeAsync(T msg);
 
     /** Invoke a service operation asynchronously. The
      *  method returns without waiting for the response to the operation
      *  invocation, the results of the operation are communicated to the client
-     *  via the passed in <code>handler</code>.
+     *  via the passed in {@code handler}.
      * <p>
-     * The client is responsible for ensuring that the <code>msg</code> object
+     * The client is responsible for ensuring that the {@code msg} object
      * when marshalled is formed according to the requirements of the protocol
      * binding in use.
      *
@@ -85,13 +85,13 @@
      *     the message used to invoke the operation.
      * @param handler The handler object that will receive the
      *     response to the operation invocation.
-     * @return A <code>Future</code> object that may be used to check the status
+     * @return A {@code Future} object that may be used to check the status
      *     of the operation invocation. This object MUST NOT be used to try to
      *     obtain the results of the operation - the object returned from
-     *     <code>Future&lt;?>.get()</code> is implementation dependent
+     *     {@code Future<?>.get()} is implementation dependent
      *     and any use of it will result in non-portable behaviour.
      * @throws WebServiceException If there is any error in the configuration of
-     *     the <code>Dispatch</code> instance
+     *     the {@code Dispatch} instance
     **/
     public Future<?> invokeAsync(T msg, AsyncHandler<T> handler);
 
@@ -102,14 +102,14 @@
      *  the protocol in use is SOAP/HTTP, this method MUST block until
      *  an HTTP response code has been received or an error occurs.
      * <p>
-     * The client is responsible for ensuring that the <code>msg</code> object
+     * The client is responsible for ensuring that the {@code msg} object
      * when marshalled is formed according to the requirements of the protocol
      * binding in use.
      *
      * @param msg An object that will form the message or payload of
      *     the message used to invoke the operation.
      * @throws WebServiceException If there is any error in the configuration of
-     *     the <code>Dispatch</code> instance or if an error occurs during the
+     *     the {@code Dispatch} instance or if an error occurs during the
      *     invocation.
     **/
     public void invokeOneWay(T msg);
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/FaultAction.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/FaultAction.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,28 +32,28 @@
 import java.lang.annotation.Target;
 
 /**
- * The <code>FaultAction</code> annotation is used inside an {@link Action}
+ * The {@code FaultAction} annotation is used inside an {@link Action}
  * annotation to allow an explicit association of a WS-Addressing
- * <code>Action</code> message addressing property with the <code>fault</code>
+ * {@code Action} message addressing property with the {@code fault}
  * messages of the WSDL operation mapped from the exception class.
  * <p>
- * The <code>wsam:Action</code> attribute value in the <code>fault</code>
- * message in the generated WSDL operation mapped for <code>className</code>
- * class is equal to the corresponding value in the <code>FaultAction</code>.
- * For the exact computation of <code>wsam:Action</code> values for the
+ * The {@code wsam:Action} attribute value in the {@code fault}
+ * message in the generated WSDL operation mapped for {@code className}
+ * class is equal to the corresponding value in the {@code FaultAction}.
+ * For the exact computation of {@code wsam:Action} values for the
  * fault messages, refer to the algorithm in the JAX-WS specification.
  *
  * <p>
- * <b>Example 1</b>: Specify explicit values for <code>Action</code> message addressing
- * property for the <code>input</code>, <code>output</code> and <code>fault</code> message
+ * <b>Example 1</b>: Specify explicit values for {@code Action} message addressing
+ * property for the {@code input}, {@code output} and {@code fault} message
  * if the Java method throws only one service specific exception.
  *
  * <pre>
- * &#64;WebService(targetNamespace="http://example.com/numbers")
- * public class AddNumbersImpl {
- *     &#64;Action(
+ * {@literal @}WebService(targetNamespace="http://example.com/numbers")
+ *  public class AddNumbersImpl {
+ *    {@literal @}Action(
  *         fault = {
- *             <b>&#64;FaultAction(className=AddNumbersException.class, value="http://example.com/faultAction")</b>
+ *             <b>{@literal @}FaultAction(className=AddNumbersException.class, value="http://example.com/faultAction")</b>
  *         })
  *     public int addNumbers(int number1, int number2)
  *         throws AddNumbersException {
@@ -64,86 +64,86 @@
  *
  * The generated WSDL looks like:
  *
- * <pre>
- *   &lt;definitions targetNamespace="http://example.com/numbers" ...>
+ * <pre> {@code
+ *   <definitions targetNamespace="http://example.com/numbers" ...>
  *     ...
- *     &lt;portType name="AddNumbersPortType">
- *       &lt;operation name="AddNumbers">
+ *     <portType name="AddNumbersPortType">
+ *       <operation name="AddNumbers">
  *         ...
- *         &lt;fault message="tns:AddNumbersException" name="AddNumbersException"
- *           <b>wsam:Action="http://example.com/faultAction"</b>/>
- *       &lt;/operation>
- *     &lt;/portType>
+ *         <fault message="tns:AddNumbersException" name="AddNumbersException"}
+ *           <b>wsam:Action="http://example.com/faultAction"</b>{@code />
+ *       </operation>
+ *     </portType>
  *     ...
- *   &lt;/definitions>
+ *   </definitions> }
  * </pre>
  *
  * <p>
- * Example 2: Here is an example that shows if the explicit value for <code>Action</code>
+ * Example 2: Here is an example that shows if the explicit value for {@code Action}
  * message addressing property for the service specific exception is not present.
  *
  * <pre>
- * &#64;WebService(targetNamespace="http://example.com/numbers")
- * public class AddNumbersImpl {
+ * {@literal @}WebService(targetNamespace="http://example.com/numbers")
+ *  public class AddNumbersImpl {
  *     public int addNumbers(int number1, int number2)
  *         throws AddNumbersException {
  *         return number1 + number2;
  *     }
- * }
+ *  }
  * </pre>
  *
  * The generated WSDL looks like:
  *
- * <pre>
- *   &lt;definitions targetNamespace="http://example.com/numbers" ...>
+ * <pre>{@code
+ *   <definitions targetNamespace="http://example.com/numbers" ...>
  *     ...
- *     &lt;portType name="AddNumbersPortType">
- *       &lt;operation name="AddNumbers">
+ *     <portType name="AddNumbersPortType">
+ *       <operation name="AddNumbers">
  *         ...
- *         &lt;fault message="tns:addNumbersFault" name="InvalidNumbers"
- *           <b>wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbers/Fault/AddNumbersException"</b>/>
- *       &lt;/operation>
- *     &lt;/portType>
+ *         <fault message="tns:addNumbersFault" name="InvalidNumbers"}
+ *           <b>wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbers/Fault/AddNumbersException"</b>{@code />
+ *       </operation>
+ *     </portType>
  *     ...
- *   &lt;/definitions>
- * </pre>
+ *   </definitions>
+ * }</pre>
  *
  * <p>
- * Example 3: Here is an example that shows how to specify explicit values for <code>Action</code>
+ * Example 3: Here is an example that shows how to specify explicit values for {@code Action}
  * message addressing property if the Java method throws more than one service specific exception.
  *
  * <pre>
- * &#64;WebService(targetNamespace="http://example.com/numbers")
- * public class AddNumbersImpl {
- *     &#64;Action(
+ * {@literal @}WebService(targetNamespace="http://example.com/numbers")
+ *  public class AddNumbersImpl {
+ *    {@literal @}Action(
  *         fault = {
- *             <b>&#64;FaultAction(className=AddNumbersException.class, value="http://example.com/addFaultAction"),
- *             &#64;FaultAction(className=TooBigNumbersException.class, value="http://example.com/toobigFaultAction")</b>
+ *             <b>{@literal @}FaultAction(className=AddNumbersException.class, value="http://example.com/addFaultAction"),
+ *             {@literal @}FaultAction(className=TooBigNumbersException.class, value="http://example.com/toobigFaultAction")</b>
  *         })
  *     public int addNumbers(int number1, int number2)
  *         throws AddNumbersException, TooBigNumbersException {
  *         return number1 + number2;
  *     }
- * }
+ *  }
  * </pre>
  *
  * The generated WSDL looks like:
  *
- * <pre>
- *   &lt;definitions targetNamespace="http://example.com/numbers" ...>
+ * <pre> {@code
+ *   <definitions targetNamespace="http://example.com/numbers" ...>
  *     ...
- *     &lt;portType name="AddNumbersPortType">
- *       &lt;operation name="AddNumbers">
+ *     <portType name="AddNumbersPortType">
+ *       <operation name="AddNumbers">
  *         ...
- *         &lt;fault message="tns:addNumbersFault" name="AddNumbersException"
- *           <b>wsam:Action="http://example.com/addFaultAction"</b>/>
- *         &lt;fault message="tns:tooBigNumbersFault" name="TooBigNumbersException"
- *           <b>wsam:Action="http://example.com/toobigFaultAction"</b>/>
- *       &lt;/operation>
- *     &lt;/portType>
+ *         <fault message="tns:addNumbersFault" name="AddNumbersException"}
+ *           <b>wsam:Action="http://example.com/addFaultAction"</b>{@code />
+ *         <fault message="tns:tooBigNumbersFault" name="TooBigNumbersException"}
+ *           <b>wsam:Action="http://example.com/toobigFaultAction"</b>{@code />
+ *       </operation>
+ *     </portType>
  *     ...
- *   &lt;/definitions>
- * </pre>
+ *   </definitions>
+ * }</pre>
  *
  * @since 1.6, JAX-WS 2.1
  */
@@ -158,7 +158,7 @@
     Class<? extends Exception> className();
 
     /**
-     * Value of WS-Addressing <code>Action</code> message addressing property for the exception
+     * Value of WS-Addressing {@code Action} message addressing property for the exception
      */
     String value() default "";
 }
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/WebServicePermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/WebServicePermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -35,16 +35,14 @@
  * with them.
  * <p>
  * The following permission target name is defined:
- * <p>
  * <dl>
  *   <dt>publishEndpoint
  * </dl>
+ * The {@code publishEndpoint} permission allows publishing a
+ * web service endpoint using the {@code publish} methods
+ * defined by the {@code javax.xml.ws.Endpoint} class.
  * <p>
- * The <code>publishEndpoint</code> permission allows publishing a
- * web service endpoint using the <code>publish</code> methods
- * defined by the <code>javax.xml.ws.Endpoint</code> class.
- * <p>
- * Granting <code>publishEndpoint</code> allows the application to be
+ * Granting {@code publishEndpoint} allows the application to be
  * exposed as a network service. Depending on the security of the runtime and
  * the security of the application, this may introduce a security hole that
  * is remotely exploitable.
@@ -64,7 +62,7 @@
     /**
      * Creates a new permission with the specified name.
      *
-     * @param name the name of the <code>WebServicePermission</code>
+     * @param name the name of the {@code WebServicePermission}
      */
     public WebServicePermission(String name) {
         super(name);
@@ -73,11 +71,11 @@
     /**
      * Creates a new permission with the specified name and actions.
      *
-     * The <code>actions</code> parameter is currently unused and
-     * it should be <code>null</code>.
+     * The {@code actions} parameter is currently unused and
+     * it should be {@code null}.
      *
-     * @param name the name of the <code>WebServicePermission</code>
-     * @param actions should be <code>null</code>
+     * @param name the name of the {@code WebServicePermission}
+     * @param actions should be {@code null}
      */
     public WebServicePermission(String name, String actions) {
         super(name, actions);
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/handler/HandlerResolver.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/handler/HandlerResolver.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,15 +26,15 @@
 package javax.xml.ws.handler;
 
 /**
- *  <code>HandlerResolver</code> is an interface implemented
+ *  {@code HandlerResolver} is an interface implemented
  *  by an application to get control over the handler chain
  *  set on proxy/dispatch objects at the time of their creation.
  *  <p>
- *  A <code>HandlerResolver</code> may be set on a <code>Service</code>
- *  using the <code>setHandlerResolver</code> method.
- * <p>
- *  When the runtime invokes a <code>HandlerResolver</code>, it will
- *  pass it a <code>PortInfo</code> object containing information
+ *  A {@code HandlerResolver} may be set on a {@code Service}
+ *  using the {@code setHandlerResolver} method.
+ *  <p>
+ *  When the runtime invokes a {@code HandlerResolver}, it will
+ *  pass it a {@code PortInfo} object containing information
  *  about the port that the proxy/dispatch object will be accessing.
  *
  *  @see javax.xml.ws.Service#setHandlerResolver
@@ -47,7 +47,7 @@
    *  Gets the handler chain for the specified port.
    *
    *  @param portInfo Contains information about the port being accessed.
-   *  @return java.util.List&lt;Handler> chain
+   *  @return {@code java.util.List<Handler>} chain
   **/
   public java.util.List<Handler> getHandlerChain(PortInfo portInfo);
 }
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/handler/MessageContext.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/handler/MessageContext.java	Mon Apr 27 09:17:39 2015 -0700
@@ -27,12 +27,12 @@
 import java.util.Map;
 
 /**
- * The interface <code>MessageContext</code> abstracts the message
- * context that is processed by a handler in the <code>handle</code>
+ * The interface {@code MessageContext} abstracts the message
+ * context that is processed by a handler in the {@code handle}
  * method.
  *
- * <p>The <code>MessageContext</code> interface provides methods to
- * manage a property set. <code>MessageContext</code> properties
+ * <p>The {@code MessageContext} interface provides methods to
+ * manage a property set. {@code MessageContext} properties
  * enable handlers in a handler chain to share processing related
  * state.
  *
@@ -41,8 +41,8 @@
 public interface MessageContext extends Map<String, Object> {
 
     /**
-     * Standard property: message direction, <code>true</code> for
-     * outbound messages, <code>false</code> for inbound.
+     * Standard property: message direction, {@code true} for
+     * outbound messages, {@code false} for inbound.
      * <p>Type: boolean
      */
     public static final String MESSAGE_OUTBOUND_PROPERTY =
@@ -51,7 +51,7 @@
     /**
      * Standard property: Map of attachments to a message for the inbound
      * message, key is  the MIME Content-ID, value is a DataHandler.
-     * <p>Type: java.util.Map&lt;String,DataHandler>
+     * <p>Type: {@code java.util.Map<String, DataHandler>}
      */
     public static final String INBOUND_MESSAGE_ATTACHMENTS =
             "javax.xml.ws.binding.attachments.inbound";
@@ -59,7 +59,7 @@
     /**
      * Standard property: Map of attachments to a message for the outbound
      * message, key is the MIME Content-ID, value is a DataHandler.
-     * <p>Type: java.util.Map&lt;String,DataHandler>
+     * <p>Type: {@code java.util.Map<String, DataHandler>}
      */
     public static final String OUTBOUND_MESSAGE_ATTACHMENTS =
             "javax.xml.ws.binding.attachments.outbound";
@@ -108,14 +108,14 @@
 
     /**
      * Standard property: HTTP request headers.
-     * <p>Type: java.util.Map&lt;java.lang.String, java.util.List&lt;java.lang.String>>
+     * <p>Type: {@code java.util.Map<java.lang.String, java.util.List<java.lang.String>>}
      */
     public static final String HTTP_REQUEST_HEADERS =
             "javax.xml.ws.http.request.headers";
 
     /**
      * Standard property: HTTP response headers.
-     * <p>Type: java.util.Map&lt;java.lang.String, java.util.List&lt;java.lang.String>>
+     * <p>Type: {@code java.util.Map<java.lang.String, java.util.List<java.lang.String>>}
      */
     public static final String HTTP_RESPONSE_HEADERS =
             "javax.xml.ws.http.response.headers";
@@ -166,7 +166,7 @@
      * Standard property: WS Addressing Reference Parameters.
      * The list MUST include all SOAP headers marked with the
      * wsa:IsReferenceParameter="true" attribute.
-     * <p>Type: List&lt;Element>
+     * <p>Type: {@code List<Element>}
      *
      * @since 1.6, JAX-WS 2.1
      */
@@ -174,10 +174,10 @@
             "javax.xml.ws.reference.parameters";
 
     /**
-     * Property scope. Properties scoped as <code>APPLICATION</code> are
+     * Property scope. Properties scoped as {@code APPLICATION} are
      * visible to handlers,
      * client applications and service endpoints; properties scoped as
-     * <code>HANDLER</code>
+     * {@code HANDLER}
      * are only normally visible to handlers.
      */
     public enum Scope {APPLICATION, HANDLER};
@@ -186,7 +186,7 @@
      * Sets the scope of a property.
      *
      * @param name Name of the property associated with the
-     *             <code>MessageContext</code>
+     *             {@code MessageContext}
      * @param scope Desired scope of the property
      * @throws java.lang.IllegalArgumentException if an illegal
      *             property name is specified
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/AddressingFeature.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/AddressingFeature.java	Mon Apr 27 09:17:39 2015 -0700
@@ -52,10 +52,10 @@
  *       receiver.
  * </ul>
  * <p>
- * If the feature is enabled, the <code>required</code> property determines
+ * If the feature is enabled, the {@code required} property determines
  * whether the endpoint requires WS-Addressing. If it is set true,
  * WS-Addressing headers MUST be present on incoming and outgoing messages.
- * By default the <code>required</code> property is <code>false</code>.
+ * By default the {@code required} property is {@code false}.
  *
  * <p>
  * If the web service developer has not explicitly enabled this feature,
@@ -75,31 +75,31 @@
  *
  * <p>
  * <b>Example 1: </b>Possible Policy Assertion in the generated WSDL for
- * <code>&#64;Addressing</code>
- * <pre>
- *   &lt;wsam:Addressing wsp:Optional="true">
- *     &lt;wsp:Policy/>
- *   &lt;/wsam:Addressing>
+ * {@code @Addressing}
+ * <pre> {@code
+ *   <wsam:Addressing wsp:Optional="true">
+ *     <wsp:Policy/>
+ *   </wsam:Addressing> }
  * </pre>
  *
  * <p>
  * <b>Example 2: </b>Possible Policy Assertion in the generated WSDL for
- * <code>&#64;Addressing(required=true)</code>
- * <pre>
- *   &lt;wsam:Addressing>
- *     &lt;wsp:Policy/>
- *   &lt;/wsam:Addressing>
+ * {@code @Addressing(required=true)}
+ * <pre> {@code
+ *   <wsam:Addressing>
+ *     <wsp:Policy/>
+ *   </wsam:Addressing> }
  * </pre>
  *
  * <p>
  * <b>Example 3: </b>Possible Policy Assertion in the generated WSDL for
- * <code>&#64;Addressing(required=true, responses=Responses.ANONYMOUS)</code>
- * <pre>
- *   &lt;wsam:Addressing>
- *      &lt;wsp:Policy>
- *        &lt;wsam:AnonymousResponses/>
- *      &lt;/wsp:Policy>
- *   &lt;/wsam:Addressing>
+ * {@code @Addressing(required=true, responses=Responses.ANONYMOUS)}
+ * <pre> {@code
+ *   <wsam:Addressing>
+ *      <wsp:Policy>
+ *        <wsam:AnonymousResponses/>
+ *      </wsp:Policy>
+ *   </wsam:Addressing> }
  * </pre>
  *
  * <p>
@@ -181,7 +181,7 @@
     private final Responses responses;
 
     /**
-     * Creates and configures an <code>AddressingFeature</code> with the
+     * Creates and configures an {@code AddressingFeature} with the
      * use of addressing requirements. The created feature enables
      * ws-addressing i.e. supports ws-addressing but doesn't require
      * its use. It is also configured to accept all the response types.
@@ -191,8 +191,8 @@
     }
 
     /**
-     * Creates and configures an <code>AddressingFeature</code> with the
-     * use of addressing requirements. If <code>enabled</code> is true,
+     * Creates and configures an {@code AddressingFeature} with the
+     * use of addressing requirements. If {@code enabled} is true,
      * it enables ws-addressing i.e. supports ws-addressing but doesn't
      * require its use. It also configures to accept all the response types.
      *
@@ -204,9 +204,9 @@
     }
 
     /**
-     * Creates and configures an <code>AddressingFeature</code> with the
-     * use of addressing requirements. If <code>enabled</code> and
-     * <code>required</code> are true, it enables ws-addressing and
+     * Creates and configures an {@code AddressingFeature} with the
+     * use of addressing requirements. If {@code enabled} and
+     * {@code required} are true, it enables ws-addressing and
      * requires its use. It also configures to accept all the response types.
      *
      * @param enabled true enables ws-addressing i.e.ws-addressing
@@ -218,11 +218,11 @@
     }
 
     /**
-     * Creates and configures an <code>AddressingFeature</code> with the
-     * use of addressing requirements. If <code>enabled</code> and
-     * <code>required</code> are true, it enables ws-addressing and
+     * Creates and configures an {@code AddressingFeature} with the
+     * use of addressing requirements. If {@code enabled} and
+     * {@code required} are true, it enables ws-addressing and
      * requires its use. Also, the response types can be configured using
-     * <code>responses</code> parameter.
+     * {@code responses} parameter.
      *
      * @param enabled true enables ws-addressing i.e.ws-addressing
      * is supported but doesn't require its use
@@ -260,7 +260,6 @@
      * requires the use of anonymous responses, or non-anonymous responses,
      * or all responses.
      *
-     * <p>
      * @return {@link Responses#ALL} when endpoint supports all types of
      * responses,
      *         {@link Responses#ANONYMOUS} when endpoint requires the use of
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOM.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOM.java	Mon Apr 27 09:17:39 2015 -0700
@@ -40,14 +40,14 @@
  * web service.
  * <p>
  * This annotation MUST only be used in conjunction the
- * <code>javax.jws.WebService</code>, {@link WebServiceProvider},
+ * {@code javax.jws.WebService}, {@link WebServiceProvider},
  * {@link WebServiceRef} annotations.
- * When used with the <code>javax.jws.WebService</code> annotation this
+ * When used with the {@code javax.jws.WebService} annotation this
  * annotation MUST only be used on the service endpoint implementation
  * class.
- * When used with a <code>WebServiceRef</code> annotation, this annotation
+ * When used with a {@code WebServiceRef} annotation, this annotation
  * MUST only be used when a proxy instance is created. The injected SEI
- * proxy, and endpoint MUST honor the values of the <code>MTOM</code>
+ * proxy, and endpoint MUST honor the values of the {@code MTOM}
  * annotation.
  * <p>
  *
@@ -69,7 +69,7 @@
     /**
      * Property for MTOM threshold value. When MTOM is enabled, binary data above this
      * size in bytes will be XOP encoded or sent as attachment. The value of this property
-     * MUST always be >= 0. Default value is 0.
+     * MUST always be {@literal >=} 0. Default value is 0.
      */
     int threshold() default 0;
 }
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOMFeature.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOMFeature.java	Mon Apr 27 09:17:39 2015 -0700
@@ -67,14 +67,14 @@
      * Property for MTOM threshold value. This property serves as a hint when
      * MTOM is enabled, binary data above this size in bytes SHOULD be sent
      * as attachment.
-     * The value of this property MUST always be >= 0. Default value is 0.
+     * The value of this property MUST always be {@literal >=} 0. Default value is 0.
      */
     // should be changed to private final, keeping original modifier to keep backwards compatibility
     protected int threshold;
 
 
     /**
-     * Create an <code>MTOMFeature</code>.
+     * Create an {@code MTOMFeature}.
      * The instance created will be enabled.
      */
     public MTOMFeature() {
@@ -83,7 +83,7 @@
     }
 
     /**
-     * Creates an <code>MTOMFeature</code>.
+     * Creates a {@code MTOMFeature}.
      *
      * @param enabled specifies if this feature should be enabled or not
      */
@@ -94,13 +94,13 @@
 
 
     /**
-     * Creates an <code>MTOMFeature</code>.
+     * Creates a {@code MTOMFeature}.
      * The instance created will be enabled.
      *
      * @param threshold the size in bytes that binary data SHOULD be before
      * being sent as an attachment.
      *
-     * @throws WebServiceException if threshold is < 0
+     * @throws WebServiceException if threshold is {@literal <} 0
      */
     public MTOMFeature(int threshold) {
         if (threshold < 0)
@@ -110,13 +110,13 @@
     }
 
     /**
-     * Creates an <code>MTOMFeature</code>.
+     * Creates a {@code MTOMFeature}.
      *
      * @param enabled specifies if this feature should be enabled or not
      * @param threshold the size in bytes that binary data SHOULD be before
      * being sent as an attachment.
      *
-     * @throws WebServiceException if threshold is < 0
+     * @throws WebServiceException if threshold is {@literal <} 0
      */
     public MTOMFeature(boolean enabled, int threshold) {
         if (threshold < 0)
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/SOAPBinding.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/SOAPBinding.java	Mon Apr 27 09:17:39 2015 -0700
@@ -31,7 +31,7 @@
 import javax.xml.soap.SOAPFactory;
 import javax.xml.soap.MessageFactory;
 
-/** The <code>SOAPBinding</code> interface is an abstraction for
+/** The {@code SOAPBinding} interface is an abstraction for
  *  the SOAP binding.
  *
  *  @since 1.6, JAX-WS 2.0
@@ -63,7 +63,7 @@
 
   /** Gets the roles played by the SOAP binding instance.
    *
-   *  @return Set&lt;String> The set of roles played by the binding instance.
+   *  @return {@code Set<String>} The set of roles played by the binding instance.
   **/
   public Set<String> getRoles();
 
@@ -76,9 +76,9 @@
   public void setRoles(Set<String> roles);
 
   /**
-   * Returns <code>true</code> if the use of MTOM is enabled.
+   * Returns {@code true} if the use of MTOM is enabled.
    *
-   * @return <code>true</code> if and only if the use of MTOM is enabled.
+   * @return {@code true} if and only if the use of MTOM is enabled.
   **/
 
   public boolean isMTOMEnabled();
@@ -86,7 +86,7 @@
   /**
    * Enables or disables use of MTOM.
    *
-   * @param flag   A <code>boolean</code> specifying whether the use of MTOM should
+   * @param flag   A {@code boolean} specifying whether the use of MTOM should
    *               be enabled or disabled.
    * @throws WebServiceException If the specified setting is not supported
    *                  by this binding instance.
@@ -95,14 +95,14 @@
   public void setMTOMEnabled(boolean flag);
 
   /**
-   * Gets the SAAJ <code>SOAPFactory</code> instance used by this SOAP binding.
+   * Gets the SAAJ {@code SOAPFactory} instance used by this SOAP binding.
    *
    * @return SOAPFactory instance used by this SOAP binding.
   **/
   public SOAPFactory getSOAPFactory();
 
   /**
-   * Gets the SAAJ <code>MessageFactory</code> instance used by this SOAP binding.
+   * Gets the SAAJ {@code MessageFactory} instance used by this SOAP binding.
    *
    * @return MessageFactory instance used by this SOAP binding.
   **/
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/Provider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/Provider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -37,9 +37,8 @@
 import org.w3c.dom.Element;
 
 /**
- * Service provider for <code>ServiceDelegate</code> and
- * <code>Endpoint</code> objects.
- * <p>
+ * Service provider for {@code ServiceDelegate} and
+ * {@code Endpoint} objects.
  *
  * @since 1.6, JAX-WS 2.0
  */
@@ -47,14 +46,14 @@
 
     /**
      * A constant representing the property used to lookup the
-     * name of a <code>Provider</code> implementation
+     * name of a {@code Provider} implementation
      * class.
      */
     static public final String JAXWSPROVIDER_PROPERTY = "javax.xml.ws.spi.Provider";
 
     /**
      * A constant representing the name of the default
-     * <code>Provider</code> implementation class.
+     * {@code Provider} implementation class.
      **/
     // Using two strings so that package renaming doesn't change it
     static final String DEFAULT_JAXWSPROVIDER
@@ -72,22 +71,21 @@
      * <p>
      * The algorithm used to locate the provider subclass to use consists
      * of the following steps:
-     * <p>
      * <ul>
      * <li>
      *   If a resource with the name of
-     *   <code>META-INF/services/javax.xml.ws.spi.Provider</code>
+     *   {@code META-INF/services/javax.xml.ws.spi.Provider}
      *   exists, then its first line, if present, is used as the UTF-8 encoded
      *   name of the implementation class.
      * </li>
      * <li>
      *   If the $java.home/lib/jaxws.properties file exists and it is readable by
-     *   the <code>java.util.Properties.load(InputStream)</code> method and it contains
-     *   an entry whose key is <code>javax.xml.ws.spi.Provider</code>, then the value of
+     *   the {@code java.util.Properties.load(InputStream)} method and it contains
+     *   an entry whose key is {@code javax.xml.ws.spi.Provider}, then the value of
      *   that entry is used as the name of the implementation class.
      * </li>
      * <li>
-     *   If a system property with the name <code>javax.xml.ws.spi.Provider</code>
+     *   If a system property with the name {@code javax.xml.ws.spi.Provider}
      *   is defined, then its value is used as the name of the implementation class.
      * </li>
      * <li>
@@ -136,12 +134,12 @@
 
     /**
      * Creates a service delegate object.
-     * <p>
+     *
      * @param wsdlDocumentLocation A URL pointing to the WSDL document
-     *        for the service, or <code>null</code> if there isn't one.
+     *        for the service, or {@code null} if there isn't one.
      * @param serviceName The qualified name of the service.
      * @param serviceClass The service class, which MUST be either
-     *        <code>javax.xml.ws.Service</code> or a subclass thereof.
+     *        {@code javax.xml.ws.Service} or a subclass thereof.
      * @return The newly created service delegate.
      */
     public abstract ServiceDelegate createServiceDelegate(
@@ -150,12 +148,12 @@
 
     /**
      * Creates a service delegate object.
-     * <p>
+     *
      * @param wsdlDocumentLocation A URL pointing to the WSDL document
-     *        for the service, or <code>null</code> if there isn't one.
+     *        for the service, or {@code null} if there isn't one.
      * @param serviceName The qualified name of the service.
      * @param serviceClass The service class, which MUST be either
-     *        <code>javax.xml.ws.Service</code> or a subclass thereof.
+     *        {@code javax.xml.ws.Service} or a subclass thereof.
      * @param features Web Service features that must be configured on
      *        the service. If the provider doesn't understand a feature,
      *        it must throw a WebServiceException.
@@ -205,18 +203,18 @@
 
     /**
      * read an EndpointReference from the infoset contained in
-     * <code>eprInfoset</code>.
+     * {@code eprInfoset}.
      *
      * @param eprInfoset infoset for EndpointReference
      *
-     * @return the <code>EndpointReference</code> unmarshalled from
-     * <code>eprInfoset</code>.  This method never returns <code>null</code>.
+     * @return the {@code EndpointReference} unmarshalled from
+     * {@code eprInfoset}.  This method never returns {@code null}.
      *
      * @throws WebServiceException If there is an error creating the
-     * <code>EndpointReference</code> from the specified <code>eprInfoset</code>.
+     * {@code EndpointReference} from the specified {@code eprInfoset}.
      *
-     * @throws NullPointerException If the <code>null</code>
-     * <code>eprInfoset</code> value is given.
+     * @throws NullPointerException If the {@code null}
+     * {@code eprInfoset} value is given.
      *
      * @since 1.6, JAX-WS 2.1
      **/
@@ -226,31 +224,31 @@
     /**
      * The getPort method returns a proxy.  If there
      * are any reference parameters in the
-     * <code>endpointReference</code>, then those reference
+     * {@code endpointReference}, then those reference
      * parameters MUST appear as SOAP headers, indicating them to be
      * reference parameters, on all messages sent to the endpoint.
-     * The parameter  <code>serviceEndpointInterface</code> specifies
+     * The parameter  {@code serviceEndpointInterface} specifies
      * the service endpoint interface that is supported by the
      * returned proxy.
-     * The parameter <code>endpointReference</code> specifies the
+     * The parameter {@code endpointReference} specifies the
      * endpoint that will be invoked by the returned proxy.
      * In the implementation of this method, the JAX-WS
      * runtime system takes the responsibility of selecting a protocol
      * binding (and a port) and configuring the proxy accordingly from
      * the WSDL metadata of the
-     * <code>serviceEndpointInterface</code> and the <code>EndpointReference</code>.
+     * {@code serviceEndpointInterface} and the {@code EndpointReference}.
      * For this method
      * to successfully return a proxy, WSDL metadata MUST be available and the
-     * <code>endpointReference</code> MUST contain an implementation understood
-     * <code>serviceName</code> metadata.
+     * {@code endpointReference} MUST contain an implementation understood
+     * {@code serviceName} metadata.
      *
      *
      * @param endpointReference the EndpointReference that will
      * be invoked by the returned proxy.
      * @param serviceEndpointInterface Service endpoint interface
      * @param features  A list of WebServiceFeatures to configure on the
-     *                proxy.  Supported features not in the <code>features
-     *                </code> parameter will have their default values.
+     *                proxy.  Supported features not in the {@code features
+     *                } parameter will have their default values.
      * @return Object Proxy instance that supports the
      *                  specified service endpoint interface
      * @throws WebServiceException
@@ -260,10 +258,10 @@
      *                  <LI>If there is any missing WSDL metadata
      *                      as required by this method}
      *                  <LI>If this
-     *                      <code>endpointReference</code>
+     *                      {@code endpointReference}
      *                      is illegal
      *                  <LI>If an illegal
-     *                      <code>serviceEndpointInterface</code>
+     *                      {@code serviceEndpointInterface}
      *                      is specified
      *                  <LI>If a feature is enabled that is not compatible with
      *                      this port or is unsupported.
@@ -278,60 +276,60 @@
             WebServiceFeature... features);
 
     /**
-     * Factory method to create a <code>W3CEndpointReference</code>.
+     * Factory method to create a {@code W3CEndpointReference}.
      *
      * <p>
-     * This method can be used to create a <code>W3CEndpointReference</code>
-     * for any endpoint by specifying the <code>address</code> property along
+     * This method can be used to create a {@code W3CEndpointReference}
+     * for any endpoint by specifying the {@code address} property along
      * with any other desired properties.  This method
-     * can also be used to create a <code>W3CEndpointReference</code> for
+     * can also be used to create a {@code W3CEndpointReference} for
      * an endpoint that is published by the same Java EE application.
-     * To do so the <code>address</code> property can be provided or this
-     * method can automatically determine the <code>address</code> of
+     * To do so the {@code address} property can be provided or this
+     * method can automatically determine the {@code address} of
      * an endpoint that is published by the same Java EE application and is
-     * identified by the <code>serviceName</code> and
-     * <code>portName</code> propeties.  If the <code>address</code> is
-     * <code>null</code> and the <code>serviceName</code> and
-     * <code>portName</code> do not identify an endpoint published by the
+     * identified by the {@code serviceName} and
+     * {@code portName} propeties.  If the {@code address} is
+     * {@code null} and the {@code serviceName} and
+     * {@code portName} do not identify an endpoint published by the
      * same Java EE application, a
-     * <code>javax.lang.IllegalStateException</code> MUST be thrown.
+     * {@code javax.lang.IllegalStateException} MUST be thrown.
      *
      * @param address Specifies the address of the target endpoint
      * @param serviceName Qualified name of the service in the WSDL.
      * @param portName Qualified name of the endpoint in the WSDL.
      * @param metadata A list of elements that should be added to the
-     * <code>W3CEndpointReference</code> instances <code>wsa:metadata</code>
+     * {@code W3CEndpointReference} instances {@code wsa:metadata}
      * element.
      * @param wsdlDocumentLocation URL for the WSDL document location for
      * the service.
      * @param referenceParameters Reference parameters to be associated
-     * with the returned <code>EndpointReference</code> instance.
+     * with the returned {@code EndpointReference} instance.
      *
-     * @return the <code>W3CEndpointReference</code> created from
-     *          <code>serviceName</code>, <code>portName</code>,
-     *          <code>metadata</code>, <code>wsdlDocumentLocation</code>
-     *          and <code>referenceParameters</code>. This method
-     *          never returns <code>null</code>.
+     * @return the {@code W3CEndpointReference} created from
+     *          {@code serviceName}, {@code portName},
+     *          {@code metadata}, {@code wsdlDocumentLocation}
+     *          and {@code referenceParameters}. This method
+     *          never returns {@code null}.
      *
      * @throws java.lang.IllegalStateException
      *     <ul>
-     *        <li>If the <code>address</code>, <code>serviceName</code> and
-     *            <code>portName</code> are all <code>null</code>.
-     *        <li>If the <code>serviceName</code> service is <code>null</code> and the
-     *            <code>portName</code> is NOT <code>null</code>.
-     *        <li>If the <code>address</code> property is <code>null</code> and
-     *            the <code>serviceName</code> and <code>portName</code> do not
+     *        <li>If the {@code address}, {@code serviceName} and
+     *            {@code portName} are all {@code null}.
+     *        <li>If the {@code serviceName} service is {@code null} and the
+     *            {@code portName} is NOT {@code null}.
+     *        <li>If the {@code address} property is {@code null} and
+     *            the {@code serviceName} and {@code portName} do not
      *            specify a valid endpoint published by the same Java EE
      *            application.
-     *        <li>If the <code>serviceName</code>is NOT <code>null</code>
+     *        <li>If the {@code serviceName}is NOT {@code null}
      *             and is not present in the specified WSDL.
-     *        <li>If the <code>portName</code> port is not <code>null</code> and it
-     *             is not present in <code>serviceName</code> service in the WSDL.
-     *        <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code>
+     *        <li>If the {@code portName} port is not {@code null} and it
+     *             is not present in {@code serviceName} service in the WSDL.
+     *        <li>If the {@code wsdlDocumentLocation} is NOT {@code null}
      *            and does not represent a valid WSDL.
      *     </ul>
      * @throws WebServiceException If an error occurs while creating the
-     *                             <code>W3CEndpointReference</code>.
+     *                             {@code W3CEndpointReference}.
      *
      * @since 1.6, JAX-WS 2.1
      */
@@ -340,73 +338,73 @@
 
 
     /**
-     * Factory method to create a <code>W3CEndpointReference</code>.
-     * Using this method, a <code>W3CEndpointReference</code> instance
+     * Factory method to create a {@code W3CEndpointReference}.
+     * Using this method, a {@code W3CEndpointReference} instance
      * can be created with extension elements, and attributes.
-     * <code>Provider</code> implementations must override the default
+     * {@code Provider} implementations must override the default
      * implementation.
      *
      * <p>
-     * This method can be used to create a <code>W3CEndpointReference</code>
-     * for any endpoint by specifying the <code>address</code> property along
+     * This method can be used to create a {@code W3CEndpointReference}
+     * for any endpoint by specifying the {@code address} property along
      * with any other desired properties.  This method
-     * can also be used to create a <code>W3CEndpointReference</code> for
+     * can also be used to create a {@code W3CEndpointReference} for
      * an endpoint that is published by the same Java EE application.
-     * To do so the <code>address</code> property can be provided or this
-     * method can automatically determine the <code>address</code> of
+     * To do so the {@code address} property can be provided or this
+     * method can automatically determine the {@code address} of
      * an endpoint that is published by the same Java EE application and is
-     * identified by the <code>serviceName</code> and
-     * <code>portName</code> propeties.  If the <code>address</code> is
-     * <code>null</code> and the <code>serviceName</code> and
-     * <code>portName</code> do not identify an endpoint published by the
+     * identified by the {@code serviceName} and
+     * {@code portName} propeties.  If the {@code address} is
+     * {@code null} and the {@code serviceName} and
+     * {@code portName} do not identify an endpoint published by the
      * same Java EE application, a
-     * <code>javax.lang.IllegalStateException</code> MUST be thrown.
+     * {@code javax.lang.IllegalStateException} MUST be thrown.
      *
      * @param address Specifies the address of the target endpoint
-     * @param interfaceName the <code>wsam:InterfaceName</code> element in the
-     * <code>wsa:Metadata</code> element.
+     * @param interfaceName the {@code wsam:InterfaceName} element in the
+     * {@code wsa:Metadata} element.
      * @param serviceName Qualified name of the service in the WSDL.
      * @param portName Qualified name of the endpoint in the WSDL.
      * @param metadata A list of elements that should be added to the
-     * <code>W3CEndpointReference</code> instances <code>wsa:metadata</code>
+     * {@code W3CEndpointReference} instances {@code wsa:metadata}
      * element.
      * @param wsdlDocumentLocation URL for the WSDL document location for
      * the service.
      * @param referenceParameters Reference parameters to be associated
-     * with the returned <code>EndpointReference</code> instance.
+     * with the returned {@code EndpointReference} instance.
      * @param elements extension elements to be associated
-     * with the returned <code>EndpointReference</code> instance.
+     * with the returned {@code EndpointReference} instance.
      * @param attributes extension attributes to be associated
-     * with the returned <code>EndpointReference</code> instance.
+     * with the returned {@code EndpointReference} instance.
      *
-     * @return the <code>W3CEndpointReference</code> created from
-     *          <code>serviceName</code>, <code>portName</code>,
-     *          <code>metadata</code>, <code>wsdlDocumentLocation</code>
-     *          and <code>referenceParameters</code>. This method
-     *          never returns <code>null</code>.
+     * @return the {@code W3CEndpointReference} created from
+     *          {@code serviceName}, {@code portName},
+     *          {@code metadata}, {@code wsdlDocumentLocation}
+     *          and {@code referenceParameters}. This method
+     *          never returns {@code null}.
      *
      * @throws java.lang.IllegalStateException
      *     <ul>
-     *        <li>If the <code>address</code>, <code>serviceName</code> and
-     *            <code>portName</code> are all <code>null</code>.
-     *        <li>If the <code>serviceName</code> service is <code>null</code> and the
-     *            <code>portName</code> is NOT <code>null</code>.
-     *        <li>If the <code>address</code> property is <code>null</code> and
-     *            the <code>serviceName</code> and <code>portName</code> do not
+     *        <li>If the {@code address}, {@code serviceName} and
+     *            {@code portName} are all {@code null}.
+     *        <li>If the {@code serviceName} service is {@code null} and the
+     *            {@code portName} is NOT {@code null}.
+     *        <li>If the {@code address} property is {@code null} and
+     *            the {@code serviceName} and {@code portName} do not
      *            specify a valid endpoint published by the same Java EE
      *            application.
-     *        <li>If the <code>serviceName</code>is NOT <code>null</code>
+     *        <li>If the {@code serviceName}is NOT {@code null}
      *             and is not present in the specified WSDL.
-     *        <li>If the <code>portName</code> port is not <code>null</code> and it
-     *             is not present in <code>serviceName</code> service in the WSDL.
-     *        <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code>
+     *        <li>If the {@code portName} port is not {@code null} and it
+     *             is not present in {@code serviceName} service in the WSDL.
+     *        <li>If the {@code wsdlDocumentLocation} is NOT {@code null}
      *            and does not represent a valid WSDL.
-     *        <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code> but
+     *        <li>If the {@code wsdlDocumentLocation} is NOT {@code null} but
      *            wsdli:wsdlLocation's namespace name cannot be got from the available
      *            metadata.
      *     </ul>
      * @throws WebServiceException If an error occurs while creating the
-     *                             <code>W3CEndpointReference</code>.
+     *                             {@code W3CEndpointReference}.
      * @since 1.7, JAX-WS 2.2
      */
     public W3CEndpointReference createW3CEndpointReference(String address,
@@ -419,7 +417,7 @@
     /**
      * Creates and publishes an endpoint object with the specified
      * address, implementation object and web service features.
-     * <code>Provider</code> implementations must override the
+     * {@code Provider} implementations must override the
      * default implementation.
      *
      * @param address A URI specifying the address and transport/protocol
@@ -431,8 +429,8 @@
      *        class MUST be annotated with all the necessary Web service
      *        annotations.
      * @param features A list of WebServiceFeatures to configure on the
-     *        endpoint.  Supported features not in the <code>features
-     *        </code> parameter will have their default values.
+     *        endpoint.  Supported features not in the {@code features}
+     *        parameter will have their default values.
      * @return The newly created endpoint.
      * @since 1.7, JAX-WS 2.2
      */
@@ -443,7 +441,7 @@
 
     /**
      * Creates an endpoint object with the provided binding, implementation
-     * object and web service features. <code>Provider</code> implementations
+     * object and web service features. {@code Provider} implementations
      * must override the default implementation.
      *
      * @param bindingId A URI specifying the desired binding (e.g. SOAP/HTTP)
@@ -452,8 +450,8 @@
      *        class MUST be annotated with all the necessary Web service
      *        annotations.
      * @param features A list of WebServiceFeatures to configure on the
-     *        endpoint.  Supported features not in the <code>features
-     *        </code> parameter will have their default values.
+     *        endpoint.  Supported features not in the {@code features}
+     *        parameter will have their default values.
      * @return The newly created endpoint.
      * @since 1.7, JAX-WS 2.2
      */
@@ -465,7 +463,7 @@
     /**
      * Creates an endpoint object with the provided binding, implementation
      * class, invoker and web service features. Containers typically use
-     * this to create Endpoint objects. <code>Provider</code>
+     * this to create Endpoint objects. {@code Provider}
      * implementations must override the default implementation.
      *
      * @param bindingId A URI specifying the desired binding (e.g. SOAP/HTTP).
@@ -475,8 +473,8 @@
      *        annotations.
      * @param invoker that does the actual invocation on the service instance.
      * @param features A list of WebServiceFeatures to configure on the
-     *        endpoint.  Supported features not in the <code>features
-     *        </code> parameter will have their default values.
+     *        endpoint.  Supported features not in the {@code features
+     *        } parameter will have their default values.
      * @return The newly created endpoint.
      * @since 1.7, JAX-WS 2.2
      */
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/WebServiceFeatureAnnotation.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/WebServiceFeatureAnnotation.java	Mon Apr 27 09:17:39 2015 -0700
@@ -39,27 +39,26 @@
 
 /**
  * Annotation used to identify other annotations
- * as a <code>WebServiceFeature</code>.
+ * as a {@code WebServiceFeature}.
  * <p>
- * Each <code>WebServiceFeature</code> annotation annotated with
+ * Each {@code WebServiceFeature} annotation annotated with
  * this annotation MUST contain an
- * <code>enabled</code> property of type
- * <code>boolean</code> with a default value of <code>true</code>.
+ * {@code enabled} property of type
+ * {@code boolean} with a default value of {@code true}.
  * <p>
  * JAX-WS defines the following
- * <code>WebServiceFeature</code> annotations (<code>Addressing</code>,
- * <code>MTOM</code>, <code>RespectBinding</code>), however, an implementation
+ * {@code WebServiceFeature} annotations ({@code Addressing},
+ * {@code MTOM}, {@code RespectBinding}), however, an implementation
  * may define vendors specific annotations for other features.
  * <p>
- * Annotations annotated with <code>WebServiceFeatureAnnotation</code> MUST
+ * Annotations annotated with {@code WebServiceFeatureAnnotation} MUST
  * have the same @Target of {@link WebServiceRef} annotation, so that the resulting
  * feature annotation can be used in conjunction with the {@link WebServiceRef}
  * annotation if necessary.
  * <p>
  * If a JAX-WS implementation encounters an annotation annotated
- * with the <code>WebServiceFeatureAnnotation</code> that it does not
+ * with the {@code WebServiceFeatureAnnotation} that it does not
  * recognize/support an error MUST be given.
- * <p>
  *
  * @see Addressing
  * @see MTOM
@@ -79,8 +78,8 @@
     String id();
 
     /**
-     * The <code>WebServiceFeature</code> bean that is associated
-     * with the <code>WebServiceFeature</code> annotation
+     * The {@code WebServiceFeature} bean that is associated
+     * with the {@code WebServiceFeature} annotation
      */
     Class<? extends WebServiceFeature> bean();
 }
--- a/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/http/package-info.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/http/package-info.java	Mon Apr 27 09:17:39 2015 -0700
@@ -47,7 +47,7 @@
   object encapsulates a HTTP request and a response.
   </ol>
 
-  <pre>
+  <pre>{@literal
   Container                               JAX-WS runtime
   ---------                               --------------
   1. Creates Invoker1, ... InvokerN
@@ -64,10 +64,10 @@
  10. EndpointN.publish(HttpContextN)  --> 11. creates HttpHandlerN
                                          HttpContextN.setHandler(HttpHandlerN)
 
-  </pre>
+  }</pre>
 
   The request processing is done as below(for every request):
-  <pre>
+  <pre>{@literal
   Container                               JAX-WS runtime
   ---------                               --------------
   1. Creates a HttpExchange
@@ -76,14 +76,14 @@
                                       <-- 5. Calls Invoker
   6. Invokes the actual instance
                                           7. Writes the response to HttpExchange
-  </pre>
+  }</pre>
 
   <p>
   The portable undeployment is done as below:
   <pre>
   Container
   ---------
-  1. @preDestroy on instances
+  1. {@literal @}preDestroy on instances
   2. Endpoint1.stop()
   ...
   3. EndpointN.stop()
--- a/jaxws/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/document/soap/SOAPConstants.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jaxws/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/document/soap/SOAPConstants.java	Mon Apr 27 09:17:39 2015 -0700
@@ -25,8 +25,6 @@
 
 package com.sun.tools.internal.ws.wsdl.document.soap;
 
-import com.sun.xml.internal.ws.encoding.soap.streaming.SOAPNamespaceConstants;
-
 import javax.xml.namespace.QName;
 
 /**
@@ -37,7 +35,9 @@
 public interface SOAPConstants {
 
     // namespace URIs
-    public static final String URI_ENVELOPE = SOAPNamespaceConstants.ENVELOPE;
+    public static final String URI_ENVELOPE =
+        "http://schemas.xmlsoap.org/soap/envelope/";
+
     public static final String NS_WSDL_SOAP =
         "http://schemas.xmlsoap.org/wsdl/soap/";
     public static final String NS_SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
--- a/jdk/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -302,3 +302,5 @@
 c76339e86ea7da5d9ac7856f3fae9ef73eef04a2 jdk9-b57
 36fc65e80d811ee43aedfc69284224b86a403662 jdk9-b58
 48ee960f29df93a9b2a895621321358a86909086 jdk9-b59
+84c5527f742bc64562e47d3149c16197fe1c4c1a jdk9-b60
+da84dcac1b0b12c5b836b05ac75ecbfadee0cd32 jdk9-b61
--- a/jdk/make/CompileDemos.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/CompileDemos.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -45,7 +45,7 @@
 DEMO_CLOSED_SHARE_SRC := $(JDK_TOPDIR)/src/closed/demo/share
 DEMO_SOLARIS_SRC := $(JDK_TOPDIR)/src/demo/solaris
 DEMO_OS_TYPE_SRC := $(JDK_TOPDIR)/src/demo/$(OPENJDK_TARGET_OS_TYPE)
-VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
+GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
 
 ##################################################################################################
 
@@ -230,11 +230,8 @@
       $$(wildcard $$(patsubst %, $(DEMO_SHARE_SRC)/jvmti/%/README.txt, $2)) \
       $$(wildcard $$(patsubst %, $(DEMO_SHARE_SRC)/jvmti/%/sample.makefile.txt, $2))
   BUILD_DEMO_JVMTI_$1_EXTRA_INC := $$(addprefix -I, $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC))
-  BUILD_DEMO_JVMTI_$1_LANG := C
-  ifneq (, $4)
-    BUILD_DEMO_JVMTI_$1_LANG := $4
-  endif
   ifeq (C++, $4)
+    BUILD_DEMO_JVMTI_$1_TOOLCHAIN := TOOLCHAIN_LINK_CXX
     $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
   endif
 
@@ -254,7 +251,7 @@
   # Remove the -incremental:no setting to get .ilk-files like in the old build.
   $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1, \
       SRC := $(DEMO_SHARE_SRC)/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
-      LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
+      TOOLCHAIN := $$(BUILD_DEMO_JVMTI_$1_TOOLCHAIN), \
       OPTIMIZATION := LOW, \
       CXXFLAGS := $$($1_CXXFLAGS), \
       DISABLED_WARNINGS_gcc := $(10), \
@@ -267,7 +264,7 @@
       LDFLAGS_SUFFIX_windows := $6, \
       LDFLAGS_SUFFIX_solaris := $7 -lc, \
       LDFLAGS_SUFFIX_linux := $8, \
-      VERSIONINFO_RESOURCE := $(VERSION_INFO_RESOURCE), \
+      VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
       RC_FLAGS := $$(RC_FLAGS) \
           -D "JDK_FNAME=$1.dll" \
           -D "JDK_INTERNAL_NAME=$1" \
@@ -398,7 +395,6 @@
 
   $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER, \
       SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) $(SHARED_LIBRARY_FLAGS) \
           -I$(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
--- a/jdk/make/Tools.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/Tools.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -163,9 +163,7 @@
 ifeq ($(OPENJDK_TARGET_OS), solaris)
   $(eval $(call SetupNativeCompilation,ADD_GNU_DEBUGLINK, \
       SRC := $(JDK_TOPDIR)/make/src/native/add_gnu_debuglink, \
-      LANG := C, \
-      CC := $(BUILD_CC), \
-      LDEXE := $(BUILD_LD), \
+      TOOLCHAIN := TOOLCHAIN_BUILD, \
       LDFLAGS := -lelf, \
       OBJECT_DIR := $(BUILDTOOLS_OUTPUTDIR)/objs/add_gnu_debuglink, \
       OUTPUT_DIR := $(BUILDTOOLS_OUTPUTDIR)/bin, \
@@ -173,9 +171,7 @@
 
   $(eval $(call SetupNativeCompilation,FIX_EMPTY_SEC_HDR_FLAGS, \
       SRC := $(JDK_TOPDIR)/make/src/native/fix_empty_sec_hdr_flags, \
-      LANG := C, \
-      CC := $(BUILD_CC), \
-      LDEXE := $(BUILD_LD), \
+      TOOLCHAIN := TOOLCHAIN_BUILD, \
       LDFLAGS := -lelf, \
       OBJECT_DIR := $(BUILDTOOLS_OUTPUTDIR)/objs/fix_empty_sec_hdr_flags, \
       OUTPUT_DIR := $(BUILDTOOLS_OUTPUTDIR)/bin, \
--- a/jdk/make/gensrc/GensrcMisc.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/gensrc/GensrcMisc.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -63,9 +63,7 @@
 $(eval $(call SetupNativeCompilation,BUILD_GENSRC_SOR_EXE, \
     SRC := $(GENSRC_SOR_SRC), \
     INCLUDE_FILES := $(GENSRC_SOR_SRC_FILE), \
-    LANG := C, \
-    CC := $(BUILD_CC), \
-    LDEXE := $(BUILD_LD), \
+    TOOLCHAIN := TOOLCHAIN_BUILD, \
     OBJECT_DIR := $(GENSRC_SOR_BIN), \
     OUTPUT_DIR := $(GENSRC_SOR_BIN), \
     PROGRAM := genSocketOptionRegistry))
@@ -101,9 +99,7 @@
   $(eval $(call SetupNativeCompilation,BUILD_GENSRC_UC_EXE, \
       SRC := $(GENSRC_UC_SRC), \
       INCLUDE_FILES := $(GENSRC_UC_SRC_FILE), \
-      LANG := C, \
-      CC := $(BUILD_CC), \
-      LDEXE := $(BUILD_CC), \
+      TOOLCHAIN := TOOLCHAIN_BUILD, \
       CFLAGS := $(filter -D%, $(CFLAGS_JDKEXE)), \
       OBJECT_DIR := $(GENSRC_UC_BIN), \
       OUTPUT_DIR := $(GENSRC_UC_BIN), \
@@ -142,9 +138,7 @@
   $(eval $(call SetupNativeCompilation,BUILD_GENSRC_SOL_EXE, \
       SRC := $(GENSRC_SOL_SRC), \
       INCLUDE_FILES := $(GENSRC_SOL_SRC_FILE), \
-      LANG := C, \
-      CC := $(BUILD_CC), \
-      LDEXE := $(BUILD_CC), \
+      TOOLCHAIN := TOOLCHAIN_BUILD, \
       OBJECT_DIR := $(GENSRC_SOL_BIN), \
       OUTPUT_DIR := $(GENSRC_SOL_BIN), \
       PROGRAM := genSolarisConstants))
--- a/jdk/make/launcher/Launcher-java.base.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/launcher/Launcher-java.base.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -103,7 +103,6 @@
   $(eval $(call SetupNativeCompilation,BUILD_JEXEC, \
       SRC := $(BUILD_JEXEC_SRC), \
       INCLUDE_FILES := jexec.c, \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKEXE) \
           $(BUILD_JEXEC_INC), \
@@ -144,7 +143,6 @@
   $(eval $(call SetupNativeCompilation,BUILD_JSPAWNHELPER, \
       SRC := $(BUILD_JSPAWNHELPER_SRC), \
       INCLUDE_FILES := jspawnhelper.c, \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKEXE) $(JSPAWNHELPER_CFLAGS), \
       LDFLAGS := $(LDFLAGS_JDKEXE) $(LINK_JSPAWNHELPER_FLAGS), \
--- a/jdk/make/launcher/Launcher-jdk.accessibility.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/launcher/Launcher-jdk.accessibility.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -36,7 +36,6 @@
   $(eval $(call SetupNativeCompilation,BUILD_JABSWITCH, \
       SRC := $(JABSWITCH_SRC), \
       INCLUDE_FILES := jabswitch.cpp, \
-      LANG := C++, \
       CFLAGS := $(filter-out -Zc:wchar_t-, $(CFLAGS_JDKEXE)) -Zc:wchar_t \
           -analyze- -Od -Gd -D_WINDOWS \
           -D_UNICODE -DUNICODE -RTC1 -EHsc, \
@@ -52,7 +51,9 @@
           -D "JDK_FNAME=jabswitch.exe" \
           -D "JDK_INTERNAL_NAME=jabswitch" \
           -D "JDK_FTYPE=0x01L", \
-      MANIFEST := $(JABSWITCH_SRC)/jabswitch.manifest))
+      MANIFEST := $(JABSWITCH_SRC)/jabswitch.manifest, \
+      MANIFEST_VERSION := $(JDK_VERSION_FOR_MANIFEST), \
+  ))
 
   TARGETS += $(BUILD_JABSWITCH)
 endif
--- a/jdk/make/launcher/Launcher-jdk.pack200.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/launcher/Launcher-jdk.pack200.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -56,9 +56,8 @@
 
 endif
 
-UNPACKEXE_LANG := C
 ifeq ($(OPENJDK_TARGET_OS), solaris)
-  UNPACKEXE_LANG := C++
+  UNPACKEXE_TOOLCHAIN := TOOLCHAIN_LINK_CXX
 endif
 
 UNPACK_MAPFILE_DIR := $(JDK_TOPDIR)/make/mapfiles/libunpack
@@ -78,7 +77,7 @@
 
 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
     SRC := $(UNPACKEXE_SRC), \
-    LANG := $(UNPACKEXE_LANG), \
+    TOOLCHAIN := $(UNPACKEXE_TOOLCHAIN), \
     OPTIMIZATION := LOW, \
     CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \
     CFLAGS_release := -DPRODUCT, \
@@ -102,7 +101,9 @@
         -D "JDK_INTERNAL_NAME=unpack200" \
         -D "JDK_FTYPE=0x1L", \
     DEBUG_SYMBOLS := true, \
-    MANIFEST := $(JDK_TOPDIR)/src/jdk.pack200/windows/native/unpack200/unpack200_proto.exe.manifest))
+    MANIFEST := $(JDK_TOPDIR)/src/jdk.pack200/windows/native/unpack200/unpack200_proto.exe.manifest, \
+    MANIFEST_VERSION := $(JDK_VERSION_FOR_MANIFEST), \
+))
 
 ifneq ($(USE_EXTERNAL_LIBZ), true)
 
--- a/jdk/make/launcher/LauncherCommon.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/launcher/LauncherCommon.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -161,7 +161,6 @@
   $(call SetupNativeCompilation,BUILD_LAUNCHER_$1, \
       SRC := $(LAUNCHER_SRC), \
       INCLUDE_FILES := main.c, \
-      LANG := C, \
       OPTIMIZATION := $$($1_OPTIMIZATION_ARG), \
       CFLAGS := $$($1_CFLAGS) \
           $(LAUNCHER_CFLAGS) \
@@ -199,7 +198,9 @@
           -D "JDK_FTYPE=0x1L" \
           $7, \
       MANIFEST := $(JAVA_MANIFEST), \
-      CODESIGN := $$($1_CODESIGN))
+      MANIFEST_VERSION := $(JDK_VERSION_FOR_MANIFEST), \
+      CODESIGN := $$($1_CODESIGN), \
+  )
 
   TARGETS += $$(BUILD_LAUNCHER_$1)
 
--- a/jdk/make/lib/Awt2dLibraries.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Awt2dLibraries.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -51,7 +51,6 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(BUILD_LIBMLIB_SRC), \
     EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
-    LANG := C, \
     OPTIMIZATION := HIGHEST, \
     CFLAGS := $(CFLAGS_JDKLIB) \
         $(BUILD_LIBMLIB_CFLAGS), \
@@ -124,7 +123,6 @@
       LIBRARY := mlib_image_v, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBMLIB_IMAGE_V_SRC), \
-      LANG := C, \
       EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
       OPTIMIZATION := HIGHEST, \
       CFLAGS := -xarch=sparcvis \
@@ -204,8 +202,6 @@
   LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
 endif
 
-LIBAWT_LANG := C
-
 ifeq ($(OPENJDK_TARGET_OS), windows)
   LIBAWT_DIRS += $(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
       $(JDK_TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
@@ -222,7 +218,6 @@
       awt/image/cvutils/img_colors.c \
       #
 
-  LIBAWT_LANG := C++
   LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
   ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
     LIBAWT_CFLAGS += -DMLIB_OS64BIT
@@ -247,7 +242,6 @@
     SRC := $(LIBAWT_DIRS), \
     EXCLUDES := $(LIBAWT_EXCLUDES), \
     EXCLUDE_FILES := $(LIBAWT_EXFILES), \
-    LANG := $(LIBAWT_LANG), \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
     DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \
@@ -355,7 +349,6 @@
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(LIBAWT_XAWT_DIRS), \
         EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
-        LANG := C, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
             $(X_CFLAGS), \
@@ -413,7 +406,6 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBLCMS_SRC), \
     INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
-    LANG := C, \
     OPTIMIZATION := HIGHEST, \
     CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
         $(SHARED_LIBRARY_FLAGS) $(LIBLCMS_CPPFLAGS) \
@@ -496,7 +488,6 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJAVAJPEG_SRC), \
     INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
-    LANG := C, \
     OPTIMIZATION := HIGHEST, \
     CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBJAVAJPEG_SRC)) \
         $(LIBJAVA_HEADER_FLAGS) \
@@ -564,7 +555,6 @@
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(LIBAWT_HEADLESS_DIRS), \
         EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
-        LANG := C, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(CFLAGS_JDKLIB) \
             -DHEADLESS=true \
@@ -651,7 +641,7 @@
     SRC := $(LIBFONTMANAGER_SRC), \
     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
         AccelGlyphCache.c, \
-    LANG := C++, \
+    TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
@@ -712,7 +702,6 @@
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBJAWT_SRC), \
       INCLUDE_FILES := $(LIBJAWT_INCLUDE_FILES), \
-      LANG := C++, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CXXFLAGS_JDKLIB) \
           -EHsc -DUNICODE -D_UNICODE \
@@ -771,7 +760,6 @@
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBJAWT_SRC), \
       INCLUDE_FILES := $(JAWT_FILES), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           $(LIBJAWT_CFLAGS), \
@@ -889,7 +877,6 @@
       SRC := $(LIBSPLASHSCREEN_DIRS), \
       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
       EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
                 $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \
@@ -958,7 +945,6 @@
       LIBRARY := awt_lwawt, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBAWT_LWAWT_DIRS), \
-      LANG := C, \
       INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
       EXCLUDE_FILES := $(LIBAWT_LWAWT_EXFILES), \
       EXCLUDES := $(LIBAWT_LWAWT_EXCLUDES), \
@@ -1008,7 +994,6 @@
       LIBRARY := osxui, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxui, \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           -I$(JDK_TOPDIR)/src/java.desktop/macosx/native/libosxui \
--- a/jdk/make/lib/CoreLibraries.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/CoreLibraries.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -43,7 +43,6 @@
       STATIC_LIBRARY := fdlibm, \
       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
       SRC := $(LIBFDLIBM_SRC), \
-      LANG := C, \
       OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
       CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
       CFLAGS_windows_debug := -DLOGGING, \
@@ -62,7 +61,6 @@
       LIBRARY := fdlibm, \
       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
       SRC := $(LIBFDLIBM_SRC), \
-      LANG := C, \
       CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
       LDFLAGS := -nostdlib -r -arch x86_64, \
       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
@@ -93,7 +91,6 @@
     LIBRARY := verify, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(JDK_TOPDIR)/src/java.base/share/native/libverify, \
-    LANG := C, \
     OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
     CFLAGS := $(CFLAGS_JDKLIB), \
     DISABLED_WARNINGS_microsoft := 4244 4267, \
@@ -146,7 +143,6 @@
     LIBRARY := java, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJAVA_SRC_DIRS), \
-    LANG := C, \
     OPTIMIZATION := HIGH, \
     CFLAGS := $(CFLAGS_JDKLIB) \
         $(LIBJAVA_CFLAGS), \
@@ -206,7 +202,6 @@
 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
     LIBRARY := zip, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     SRC := $(JDK_TOPDIR)/src/java.base/share/native/libzip, \
     EXCLUDES := $(LIBZIP_EXCLUDES), \
@@ -314,7 +309,6 @@
     SRC := $(LIBJLI_SRC_DIRS), \
     EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
     EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
-    LANG := C, \
     OPTIMIZATION := HIGH, \
     CFLAGS := $(LIBJLI_CFLAGS), \
     DISABLED_WARNINGS_solstudio := E_ASM_DISABLES_OPTIMIZATION, \
@@ -363,7 +357,6 @@
       SRC := $(LIBJLI_SRC_DIRS), \
       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
-      LANG := C, \
       OPTIMIZATION := HIGH, \
       CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
       ARFLAGS := $(ARFLAGS), \
@@ -383,7 +376,6 @@
       SRC := $(LIBJLI_SRC_DIRS), \
       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
-      LANG := C, \
       OPTIMIZATION := HIGH, \
       CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
       LDFLAGS := -nostdlib -r, \
@@ -403,7 +395,6 @@
       SRC := $(LIBJLI_SRC_DIRS), \
       EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
-      LANG := C, \
       OPTIMIZATION := HIGH, \
       CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
       ARFLAGS := $(ARFLAGS), \
--- a/jdk/make/lib/Lib-java.instrument.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-java.instrument.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -57,7 +57,6 @@
     LIBRARY := instrument, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBINSTRUMENT_SRC), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(LIBINSTRUMENT_CFLAGS) $(CFLAGS_WARNINGS_ARE_ERRORS), \
     CFLAGS_debug := -DJPLIS_LOGGING, \
--- a/jdk/make/lib/Lib-java.management.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-java.management.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -72,7 +72,6 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(BUILD_LIBMANAGEMENT_SRC), \
     EXCLUDE_FILES := $(BUILD_LIBMANAGEMENT_EXCLUDES), \
-    LANG := C, \
     OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) $(BUILD_LIBMANAGEMENT_CFLAGS), \
     MAPFILE := $(LIBMANAGEMENT_MAPFILE), \
--- a/jdk/make/lib/Lib-java.prefs.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-java.prefs.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -37,7 +37,6 @@
     LIBRARY := prefs, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBPREF_SRC_DIRS), \
-    LANG := C, \
     OPTIMIZATION := HIGH, \
     CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBPREF_SRC_DIRS)) \
         $(LIBJAVA_HEADER_FLAGS), \
--- a/jdk/make/lib/Lib-java.security.jgss.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-java.security.jgss.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -36,7 +36,6 @@
       LIBRARY := j2gss, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBJ2GSS_SRC), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBJ2GSS_SRC)) \
           $(LIBJAVA_HEADER_FLAGS) \
@@ -79,7 +78,6 @@
         LIBRARY := $(BUILD_LIBKRB5_NAME), \
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(BUILD_LIBKRB5_SRC), \
-        LANG := C, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(CFLAGS_JDKLIB) \
             $(addprefix -I, $(BUILD_LIBKRB5_SRC)) \
--- a/jdk/make/lib/Lib-java.smartcardio.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-java.smartcardio.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -37,7 +37,6 @@
     LIBRARY := j2pcsc, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJ2PCSC_SRC), \
-    LANG := C, \
     CFLAGS_unix := -D__sun_jdk, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(LIBJ2PCSC_CPPFLAGS), \
--- a/jdk/make/lib/Lib-jdk.accessibility.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.accessibility.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -45,7 +45,6 @@
         LIBRARY = javaaccessbridge$1, \
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(JAVA_AB_SRCDIR), \
-        LANG := C++, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(CFLAGS_JDKLIB) $(ACCESSBRIDGE_CFLAGS) \
             $(addprefix -I,$(JAVA_AB_SRCDIR)) \
@@ -76,7 +75,6 @@
         LIBRARY = windowsaccessbridge$1, \
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(WIN_AB_SRCDIR), \
-        LANG := C++, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(filter-out -MD, $(CFLAGS_JDKLIB)) -MT $(ACCESSBRIDGE_CFLAGS) \
             $(addprefix -I,$(WIN_AB_SRCDIR)) \
@@ -105,7 +103,6 @@
         LIBRARY = jabsysinfo, \
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(SYSINFO_SRCDIR), \
-        LANG := C++, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(CFLAGS_JDKLIB) $(ACCESSBRIDGE_CFLAGS), \
         LDFLAGS := $(LDFLAGS_JDKLIB) \
--- a/jdk/make/lib/Lib-jdk.attach.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.attach.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -32,7 +32,6 @@
     LIBRARY := attach, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(call FindSrcDirsForLib, jdk.attach, attach), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \
         -I$(SUPPORT_OUTPUTDIR)/headers/jdk.attach \
--- a/jdk/make/lib/Lib-jdk.crypto.ec.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.crypto.ec.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -47,7 +47,7 @@
       LIBRARY := sunec, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBSUNEC_SRC), \
-      LANG := C++, \
+      TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \
           $(BUILD_LIBSUNEC_FLAGS) \
--- a/jdk/make/lib/Lib-jdk.crypto.mscapi.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.crypto.mscapi.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -35,7 +35,6 @@
       LIBRARY := sunmscapi, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBSUNMSCAPI_SRC), \
-      LANG := C++, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           -I$(LIBSUNMSCAPI_SRC), \
--- a/jdk/make/lib/Lib-jdk.crypto.pkcs11.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.crypto.pkcs11.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -34,7 +34,6 @@
     LIBRARY := j2pkcs11, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJ2PKCS11_SRC), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBJ2PKCS11_SRC)) \
         $(LIBJAVA_HEADER_FLAGS) \
--- a/jdk/make/lib/Lib-jdk.crypto.ucrypto.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.crypto.ucrypto.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -35,7 +35,6 @@
       LIBRARY := j2ucrypto, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBJ2UCRYPTO_SRC), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           $(addprefix -I, $(LIBJ2UCRYPTO_SRC)), \
--- a/jdk/make/lib/Lib-jdk.deploy.osx.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.deploy.osx.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -35,7 +35,6 @@
       LIBRARY := AppleScriptEngine, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBAPPLESCRIPTENGINE_SRC), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           -I$(LIBAPPLESCRIPTENGINE_SRC) \
@@ -68,7 +67,6 @@
       LIBRARY := osx, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBOSX_DIRS), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           $(LIBOSX_CFLAGS), \
--- a/jdk/make/lib/Lib-jdk.hprof.agent.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.hprof.agent.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -45,7 +45,6 @@
     LIBRARY := hprof, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(BUILD_LIBHPROF_SRC), \
-    LANG := C, \
     OPTIMIZATION := $(LIBHPROF_OPTIMIZATION), \
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \
         $(BUILD_LIBHPROF_CFLAGS), \
@@ -75,7 +74,6 @@
     LIBRARY := java_crw_demo, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJAVA_CRW_DEMO_SRC), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \
         $(addprefix -I, $(LIBJAVA_CRW_DEMO_SRC)), \
--- a/jdk/make/lib/Lib-jdk.jdi.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.jdi.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -43,7 +43,6 @@
       LIBRARY := dt_shmem, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBDT_SHMEM_SRC), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) -DUSE_MMAP \
           $(LIBDT_SHMEM_CPPFLAGS), \
--- a/jdk/make/lib/Lib-jdk.jdwp.agent.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.jdwp.agent.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -40,7 +40,6 @@
     LIBRARY := dt_socket, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBDT_SOCKET_SRC), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_CFLAGS_WARNINGS_ARE_ERRORS) -DUSE_MMAP \
         $(LIBDT_SOCKET_CPPFLAGS), \
@@ -77,7 +76,6 @@
     LIBRARY := jdwp, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJDWP_SRC), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) -DJDWP_LOGGING \
         $(LIBJDWP_CPPFLAGS) \
--- a/jdk/make/lib/Lib-jdk.pack200.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.pack200.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -32,7 +32,7 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(JDK_TOPDIR)/src/jdk.pack200/share/native/libunpack \
         $(JDK_TOPDIR)/src/jdk.pack200/share/native/common-unpack, \
-    LANG := C++, \
+    TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CXXFLAGS_JDKLIB) \
         -DNO_ZLIB -DUNPACK_JNI -DFULL \
--- a/jdk/make/lib/Lib-jdk.sctp.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.sctp.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -41,7 +41,6 @@
         LIBRARY := sctp, \
         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
         SRC := $(JDK_TOPDIR)/src/jdk.sctp/$(OPENJDK_TARGET_OS_TYPE)/native/libsctp, \
-        LANG := C, \
         OPTIMIZATION := LOW, \
         CFLAGS := $(CFLAGS_JDKLIB) \
             -I $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio/ch \
--- a/jdk/make/lib/Lib-jdk.security.auth.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/Lib-jdk.security.auth.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -42,7 +42,6 @@
     LIBRARY := $(LIBJAAS_NAME), \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(call FindSrcDirsForLib, jdk.security.auth, jaas), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) -I$(SUPPORT_OUTPUTDIR)/headers/jdk.security.auth, \
     MAPFILE := $(LIBJAAS_MAPFILE), \
--- a/jdk/make/lib/NetworkingLibraries.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/NetworkingLibraries.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -29,7 +29,6 @@
     LIBRARY := net, \
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBNET_SRC_DIRS), \
-    LANG := C, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
         $(LIBJAVA_HEADER_FLAGS) $(addprefix -I, $(LIBNET_SRC_DIRS)), \
--- a/jdk/make/lib/NioLibraries.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/NioLibraries.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -65,7 +65,6 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(BUILD_LIBNIO_SRC), \
     EXCLUDE_FILES := $(BUILD_LIBNIO_EXFILES), \
-    LANG := C, \
     OPTIMIZATION := HIGH, \
     CFLAGS := $(CFLAGS_JDKLIB) \
         $(BUILD_LIBNIO_CFLAGS), \
--- a/jdk/make/lib/PlatformLibraries.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/PlatformLibraries.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -33,7 +33,6 @@
       LIBRARY := osxapp, \
       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
       SRC := $(LIBOSXAPP_SRC), \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           $(addprefix -I, $(LIBOSXAPP_SRC)) \
--- a/jdk/make/lib/SoundLibraries.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/lib/SoundLibraries.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -35,8 +35,6 @@
 
 LIBJSOUND_SRC_FILES := Utilities.c Platform.c
 
-LIBJSOUND_LANG := C
-
 EXTRA_SOUND_JNI_LIBS :=
 
 LIBJSOUND_MIDIFILES := \
@@ -81,7 +79,7 @@
 endif # OPENJDK_TARGET_OS aix
 
 ifeq ($(OPENJDK_TARGET_OS), macosx)
-  LIBJSOUND_LANG := C++
+  LIBJSOUND_TOOLCHAIN := TOOLCHAIN_LINK_CXX
   LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \
       -DUSE_PORTS=TRUE \
       -DUSE_DAUDIO=TRUE \
@@ -124,7 +122,7 @@
     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
     SRC := $(LIBJSOUND_SRC_DIRS), \
     INCLUDE_FILES := $(LIBJSOUND_SRC_FILES), \
-    LANG := $(LIBJSOUND_LANG), \
+    TOOLCHAIN := $(LIBJSOUND_TOOLCHAIN), \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) \
         $(LIBJSOUND_CFLAGS), \
@@ -169,7 +167,6 @@
           PLATFORM_API_LinuxOS_ALSA_MidiOut.c \
           PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
           PLATFORM_API_LinuxOS_ALSA_Ports.c, \
-      LANG := C, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \
           $(LIBJSOUND_CFLAGS) \
@@ -201,7 +198,6 @@
       SRC := $(LIBJSOUND_SRC_DIRS), \
       INCLUDE_FILES := Utilities.c $(LIBJSOUND_DAUDIOFILES) \
           PLATFORM_API_WinOS_DirectSound.cpp, \
-      LANG := C++, \
       OPTIMIZATION := LOW, \
       CFLAGS := $(CFLAGS_JDKLIB) \
           $(LIBJSOUND_CFLAGS) \
--- a/jdk/make/src/classes/build/tools/module/ext.modules	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/make/src/classes/build/tools/module/ext.modules	Mon Apr 27 09:17:39 2015 -0700
@@ -12,4 +12,5 @@
 jdk.localedata
 jdk.naming.dns
 jdk.scripting.nashorn
+jdk.xml.dom
 jdk.zipfs
--- a/jdk/src/java.base/linux/classes/sun/nio/ch/EPollPort.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/linux/classes/sun/nio/ch/EPollPort.java	Mon Apr 27 09:17:39 2015 -0700
@@ -105,7 +105,7 @@
 
         // create the queue and offer the special event to ensure that the first
         // threads polls
-        this.queue = new ArrayBlockingQueue<Event>(MAX_EPOLL_EVENTS);
+        this.queue = new ArrayBlockingQueue<>(MAX_EPOLL_EVENTS);
         this.queue.offer(NEED_TO_POLL);
     }
 
--- a/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxNativeDispatcher.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxNativeDispatcher.java	Mon Apr 27 09:17:39 2015 -0700
@@ -121,7 +121,7 @@
     private static native void init();
 
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Void run() {
                 System.loadLibrary("nio");
                 return null;
--- a/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxWatchService.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxWatchService.java	Mon Apr 27 09:17:39 2015 -0700
@@ -190,7 +190,7 @@
             this.watcher = watcher;
             this.ifd = ifd;
             this.socketpair = sp;
-            this.wdToKey = new HashMap<Integer,LinuxWatchKey>();
+            this.wdToKey = new HashMap<>();
             this.address = unsafe.allocateMemory(BUFFER_SIZE);
         }
 
@@ -457,7 +457,7 @@
     private static native int poll(int fd1, int fd2) throws UnixException;
 
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Void run() {
                 System.loadLibrary("nio");
                 return null;
--- a/jdk/src/java.base/linux/classes/sun/nio/fs/MagicFileTypeDetector.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/linux/classes/sun/nio/fs/MagicFileTypeDetector.java	Mon Apr 27 09:17:39 2015 -0700
@@ -68,7 +68,7 @@
     private static native byte[] probe0(long pathAddress);
 
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Void run() {
                 System.loadLibrary("nio");
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/JceKeyStore.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/JceKeyStore.java	Mon Apr 27 09:17:39 2015 -0700
@@ -711,7 +711,7 @@
                     cf = CertificateFactory.getInstance("X509");
                 } else {
                     // version 2
-                    cfs = new Hashtable<String, CertificateFactory>(3);
+                    cfs = new Hashtable<>(3);
                 }
 
                 entries.clear();
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBEKeyFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/PBEKeyFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -56,7 +56,7 @@
     }
 
     static {
-        validTypes = new HashSet<String>(17);
+        validTypes = new HashSet<>(17);
         validTypes.add("PBEWithMD5AndDES".toUpperCase(Locale.ENGLISH));
         validTypes.add("PBEWithSHA1AndDESede".toUpperCase(Locale.ENGLISH));
         validTypes.add("PBEWithSHA1AndRC2_40".toUpperCase(Locale.ENGLISH));
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java	Mon Apr 27 09:17:39 2015 -0700
@@ -115,7 +115,7 @@
         final String BLOCK_PADS = "NOPADDING|PKCS5PADDING|ISO10126PADDING";
 
         AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Object>() {
+            new java.security.PrivilegedAction<>() {
                 public Object run() {
 
                     /*
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java	Mon Apr 27 09:17:39 2015 -0700
@@ -87,7 +87,7 @@
         // If loading from stand alone build uncomment this.
         // System.loadLibrary("unpack");
         java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("unpack");
                     return null;
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/Package.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/Package.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1210,7 +1210,7 @@
         // This keeps files of similar format near each other.
         // Put class files at the end, keeping their fixed order.
         // Be sure the JAR file's required manifest stays at the front. (4893051)
-        Collections.sort(files, new Comparator<File>() {
+        Collections.sort(files, new Comparator<>() {
                 public int compare(File r0, File r1) {
                     // Get the file name.
                     String f0 = r0.nameString;
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/PackageReader.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/PackageReader.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1151,7 +1151,7 @@
         return -1;
     }
 
-    Comparator<Entry> entryOutputOrder = new Comparator<Entry>() {
+    Comparator<Entry> entryOutputOrder = new Comparator<>() {
         public int compare(Entry e0, Entry e1) {
             int k0 = getOutputIndex(e0);
             int k1 = getOutputIndex(e1);
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/PackageWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -829,7 +829,7 @@
         maxFlags = new int[ATTR_CONTEXT_LIMIT];
         allLayouts = new FixedList<>(ATTR_CONTEXT_LIMIT);
         for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) {
-            allLayouts.set(i, new HashMap<Attribute.Layout, int[]>());
+            allLayouts.set(i, new HashMap<>());
         }
         // Collect maxFlags and allLayouts.
         for (Class cls : pkg.classes) {
@@ -892,7 +892,7 @@
             // Sort by count, most frequent first.
             // Predefs. participate in this sort, though it does not matter.
             Arrays.sort(layoutsAndCounts,
-                        new Comparator<Map.Entry<Attribute.Layout, int[]>>() {
+                        new Comparator<>() {
                 public int compare(Map.Entry<Attribute.Layout, int[]> e0,
                                    Map.Entry<Attribute.Layout, int[]> e1) {
                     // Primary sort key is count, reversed.
@@ -1010,7 +1010,7 @@
         int numAttrDefs = defList.size();
         Object[][] defs = new Object[numAttrDefs][];
         defList.toArray(defs);
-        Arrays.sort(defs, new Comparator<Object[]>() {
+        Arrays.sort(defs, new Comparator<>() {
             public int compare(Object[] a0, Object[] a1) {
                 // Primary sort key is attr def header.
                 @SuppressWarnings("unchecked")
--- a/jdk/src/java.base/share/classes/com/sun/net/ssl/KeyManagerFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/net/ssl/KeyManagerFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -63,7 +63,7 @@
      */
     public final static String getDefaultAlgorithm() {
         String type;
-        type = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        type = AccessController.doPrivileged(new PrivilegedAction<>() {
             public String run() {
                 return Security.getProperty("sun.ssl.keymanager.type");
             }
--- a/jdk/src/java.base/share/classes/com/sun/net/ssl/TrustManagerFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/net/ssl/TrustManagerFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -63,7 +63,7 @@
      */
     public final static String getDefaultAlgorithm() {
         String type;
-        type = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        type = AccessController.doPrivileged(new PrivilegedAction<>() {
             public String run() {
                 return Security.getProperty("sun.ssl.trustmanager.type");
             }
--- a/jdk/src/java.base/share/classes/java/io/ExpiringCache.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/io/ExpiringCache.java	Mon Apr 27 09:17:39 2015 -0700
@@ -64,7 +64,7 @@
     @SuppressWarnings("serial")
     ExpiringCache(long millisUntilExpiration) {
         this.millisUntilExpiration = millisUntilExpiration;
-        map = new LinkedHashMap<String,Entry>() {
+        map = new LinkedHashMap<>() {
             protected boolean removeEldestEntry(Map.Entry<String,Entry> eldest) {
               return size() > MAX_ENTRIES;
             }
--- a/jdk/src/java.base/share/classes/java/io/FilePermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/io/FilePermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -201,7 +201,7 @@
         }
 
         // store only the canonical cpath if possible
-        cpath = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        cpath = AccessController.doPrivileged(new PrivilegedAction<>() {
             public String run() {
                 try {
                     String path = cpath;
--- a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1263,7 +1263,7 @@
      */
     private static boolean auditSubclass(final Class<?> subcl) {
         Boolean result = AccessController.doPrivileged(
-            new PrivilegedAction<Boolean>() {
+            new PrivilegedAction<>() {
                 public Boolean run() {
                     for (Class<?> cl = subcl;
                          cl != ObjectInputStream.class;
@@ -2255,7 +2255,7 @@
             try {
                 while (list != null) {
                     AccessController.doPrivileged(
-                        new PrivilegedExceptionAction<Void>()
+                        new PrivilegedExceptionAction<>()
                     {
                         public Void run() throws InvalidObjectException {
                             list.obj.validateObject();
--- a/jdk/src/java.base/share/classes/java/io/ObjectOutputStream.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/io/ObjectOutputStream.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1066,7 +1066,7 @@
      */
     private static boolean auditSubclass(final Class<?> subcl) {
         Boolean result = AccessController.doPrivileged(
-            new PrivilegedAction<Boolean>() {
+            new PrivilegedAction<>() {
                 public Boolean run() {
                     for (Class<?> cl = subcl;
                          cl != ObjectOutputStream.class;
--- a/jdk/src/java.base/share/classes/java/io/ObjectStreamClass.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/io/ObjectStreamClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -367,7 +367,7 @@
                 entry = th;
             }
             if (future.set(entry)) {
-                Caches.localDescs.put(key, new SoftReference<Object>(entry));
+                Caches.localDescs.put(key, new SoftReference<>(entry));
             } else {
                 // nested lookup call already set future
                 entry = future.get();
@@ -430,7 +430,7 @@
             }
             if (interrupted) {
                 AccessController.doPrivileged(
-                    new PrivilegedAction<Void>() {
+                    new PrivilegedAction<>() {
                         public Void run() {
                             Thread.currentThread().interrupt();
                             return null;
@@ -465,7 +465,7 @@
         localDesc = this;
 
         if (serializable) {
-            AccessController.doPrivileged(new PrivilegedAction<Void>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Void run() {
                     if (isEnum) {
                         suid = Long.valueOf(0);
@@ -1733,7 +1733,7 @@
             for (int i = 0; i < fields.length; i++) {
                 fieldSigs[i] = new MemberSignature(fields[i]);
             }
-            Arrays.sort(fieldSigs, new Comparator<MemberSignature>() {
+            Arrays.sort(fieldSigs, new Comparator<>() {
                 public int compare(MemberSignature ms1, MemberSignature ms2) {
                     return ms1.name.compareTo(ms2.name);
                 }
@@ -1764,7 +1764,7 @@
             for (int i = 0; i < cons.length; i++) {
                 consSigs[i] = new MemberSignature(cons[i]);
             }
-            Arrays.sort(consSigs, new Comparator<MemberSignature>() {
+            Arrays.sort(consSigs, new Comparator<>() {
                 public int compare(MemberSignature ms1, MemberSignature ms2) {
                     return ms1.signature.compareTo(ms2.signature);
                 }
@@ -1787,7 +1787,7 @@
             for (int i = 0; i < methods.length; i++) {
                 methSigs[i] = new MemberSignature(methods[i]);
             }
-            Arrays.sort(methSigs, new Comparator<MemberSignature>() {
+            Arrays.sort(methSigs, new Comparator<>() {
                 public int compare(MemberSignature ms1, MemberSignature ms2) {
                     int comp = ms1.name.compareTo(ms2.name);
                     if (comp == 0) {
@@ -2164,7 +2164,7 @@
                 entry = th;
             }
             future.set(entry);
-            Caches.reflectors.put(key, new SoftReference<Object>(entry));
+            Caches.reflectors.put(key, new SoftReference<>(entry));
         }
 
         if (entry instanceof FieldReflector) {
--- a/jdk/src/java.base/share/classes/java/lang/CharacterName.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/CharacterName.java	Mon Apr 27 09:17:39 2015 -0700
@@ -45,7 +45,7 @@
         DataInputStream dis = null;
         try {
             dis = new DataInputStream(new InflaterInputStream(
-                AccessController.doPrivileged(new PrivilegedAction<InputStream>()
+                AccessController.doPrivileged(new PrivilegedAction<>()
                 {
                     public InputStream run() {
                         return getClass().getResourceAsStream("uniName.dat");
--- a/jdk/src/java.base/share/classes/java/lang/Class.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/Class.java	Mon Apr 27 09:17:39 2015 -0700
@@ -437,7 +437,7 @@
                 // (the stack depth is wrong for the Constructor's
                 // security check to work)
                 java.security.AccessController.doPrivileged(
-                    new java.security.PrivilegedAction<Void>() {
+                    new java.security.PrivilegedAction<>() {
                         public Void run() {
                                 c.setAccessible(true);
                                 return null;
@@ -1068,7 +1068,7 @@
                                                  Reflection.getCallerClass(), true);
             // Client is ok to access declared methods but j.l.Class might not be.
             Method[] candidates = AccessController.doPrivileged(
-                    new PrivilegedAction<Method[]>() {
+                    new PrivilegedAction<>() {
                         @Override
                         public Method[] run() {
                             return enclosingCandidate.getDeclaredMethods();
@@ -1228,7 +1228,7 @@
                                                  Reflection.getCallerClass(), true);
             // Client is ok to access declared methods but j.l.Class might not be.
             Constructor<?>[] candidates = AccessController.doPrivileged(
-                    new PrivilegedAction<Constructor<?>[]>() {
+                    new PrivilegedAction<>() {
                         @Override
                         public Constructor<?>[] run() {
                             return enclosingCandidate.getDeclaredConstructors();
@@ -1542,7 +1542,7 @@
         // has already been ok'd by the SecurityManager.
 
         return java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Class<?>[]>() {
+            new java.security.PrivilegedAction<>() {
                 public Class<?>[] run() {
                     List<Class<?>> list = new ArrayList<>();
                     Class<?> currentClass = Class.this;
@@ -3293,7 +3293,7 @@
     private static boolean initted = false;
     private static void checkInitted() {
         if (initted) return;
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Void run() {
                     // Tests to ensure the system properties table is fully
                     // initialized. This is needed because reflection code is
@@ -3349,7 +3349,7 @@
             try {
                 final Method values = getMethod("values");
                 java.security.AccessController.doPrivileged(
-                    new java.security.PrivilegedAction<Void>() {
+                    new java.security.PrivilegedAction<>() {
                         public Void run() {
                                 values.setAccessible(true);
                                 return null;
--- a/jdk/src/java.base/share/classes/java/lang/ClassLoader.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/ClassLoader.java	Mon Apr 27 09:17:39 2015 -0700
@@ -496,7 +496,7 @@
             final String name = cls.getName();
             final int i = name.lastIndexOf('.');
             if (i != -1) {
-                AccessController.doPrivileged(new PrivilegedAction<Void>() {
+                AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Void run() {
                         sm.checkPackageAccess(name.substring(0, i));
                         return null;
@@ -1265,7 +1265,7 @@
     {
         final Enumeration<Resource> e =
             getBootstrapClassPath().getResources(name);
-        return new Enumeration<URL> () {
+        return new Enumeration<> () {
             public URL nextElement() {
                 return e.nextElement().getURL();
             }
@@ -1867,7 +1867,7 @@
         boolean isBuiltin = (name != null);
         if (!isBuiltin) {
             name = AccessController.doPrivileged(
-                new PrivilegedAction<String>() {
+                new PrivilegedAction<>() {
                     public String run() {
                         try {
                             return file.exists() ? file.getCanonicalPath() : null;
--- a/jdk/src/java.base/share/classes/java/lang/Package.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/Package.java	Mon Apr 27 09:17:39 2015 -0700
@@ -595,7 +595,7 @@
 
         CachedManifest(final String fileName) {
             this.fileName = fileName;
-            this.url = AccessController.doPrivileged(new PrivilegedAction<URL>() {
+            this.url = AccessController.doPrivileged(new PrivilegedAction<>() {
                 public URL run() {
                     final File file = new File(fileName);
                     if (file.isFile()) {
@@ -626,7 +626,7 @@
                 if (m != null) {
                     return m;
                 }
-                m = AccessController.doPrivileged(new PrivilegedAction<Manifest>() {
+                m = AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Manifest run() {
                         try (FileInputStream fis = new FileInputStream(fileName);
                              JarInputStream jis = new JarInputStream(fis, false)) {
--- a/jdk/src/java.base/share/classes/java/lang/SecurityManager.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/SecurityManager.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1455,7 +1455,7 @@
             if (!packageAccessValid) {
                 String tmpPropertyStr =
                     AccessController.doPrivileged(
-                        new PrivilegedAction<String>() {
+                        new PrivilegedAction<>() {
                             public String run() {
                                 return java.security.Security.getProperty(
                                     "package.access");
@@ -1524,7 +1524,7 @@
             if (!packageDefinitionValid) {
                 String tmpPropertyStr =
                     AccessController.doPrivileged(
-                        new PrivilegedAction<String>() {
+                        new PrivilegedAction<>() {
                             public String run() {
                                 return java.security.Security.getProperty(
                                     "package.definition");
--- a/jdk/src/java.base/share/classes/java/lang/StringBuffer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/StringBuffer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -206,6 +206,7 @@
     }
 
     /**
+     * @throws IndexOutOfBoundsException {@inheritDoc}
      * @since      1.5
      */
     @Override
@@ -214,6 +215,7 @@
     }
 
     /**
+     * @throws IndexOutOfBoundsException {@inheritDoc}
      * @since     1.5
      */
     @Override
@@ -222,6 +224,7 @@
     }
 
     /**
+     * @throws IndexOutOfBoundsException {@inheritDoc}
      * @since     1.5
      */
     @Override
@@ -230,6 +233,7 @@
     }
 
     /**
+     * @throws IndexOutOfBoundsException {@inheritDoc}
      * @since     1.5
      */
     @Override
--- a/jdk/src/java.base/share/classes/java/lang/System.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/System.java	Mon Apr 27 09:17:39 2015 -0700
@@ -309,7 +309,7 @@
             // calls the installed security manager's checkPermission method
             // which will loop infinitely if there is a non-system class
             // (in this case: the new security manager class) on the stack).
-            AccessController.doPrivileged(new PrivilegedAction<Object>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Object run() {
                     s.getClass().getProtectionDomain().implies
                         (SecurityConstants.ALL_PERMISSION);
--- a/jdk/src/java.base/share/classes/java/lang/Thread.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/Thread.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1661,7 +1661,7 @@
      */
     private static boolean auditSubclass(final Class<?> subcl) {
         Boolean result = AccessController.doPrivileged(
-            new PrivilegedAction<Boolean>() {
+            new PrivilegedAction<>() {
                 public Boolean run() {
                     for (Class<?> cl = subcl;
                          cl != Thread.class;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/InfoFromMemberName.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/InfoFromMemberName.java	Mon Apr 27 09:17:39 2015 -0700
@@ -87,7 +87,7 @@
             // For more information see comments on {@link MethodHandleNatives#linkMethod}.
             throw new IllegalArgumentException("cannot reflect signature polymorphic method");
         }
-        Member mem = AccessController.doPrivileged(new PrivilegedAction<Member>() {
+        Member mem = AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Member run() {
                     try {
                         return reflectUnchecked();
--- a/jdk/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -194,7 +194,7 @@
         final Class<?> innerClass = spinInnerClass();
         if (invokedType.parameterCount() == 0) {
             final Constructor<?>[] ctrs = AccessController.doPrivileged(
-                    new PrivilegedAction<Constructor<?>[]>() {
+                    new PrivilegedAction<>() {
                 @Override
                 public Constructor<?>[] run() {
                     Constructor<?>[] ctrs = innerClass.getDeclaredConstructors();
@@ -311,7 +311,7 @@
 
         // If requested, dump out to a file for debugging purposes
         if (dumper != null) {
-            AccessController.doPrivileged(new PrivilegedAction<Void>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 @Override
                 public Void run() {
                     dumper.dumpClass(lambdaClassName, classBytes);
--- a/jdk/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Mon Apr 27 09:17:39 2015 -0700
@@ -167,7 +167,7 @@
     static void maybeDump(final String className, final byte[] classFile) {
         if (DUMP_CLASS_FILES) {
             java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     try {
                         String dumpName = className;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/LambdaForm.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/LambdaForm.java	Mon Apr 27 09:17:39 2015 -0700
@@ -631,7 +631,7 @@
      * as a sort of pre-invocation linkage step.)
      */
     public void prepare() {
-        if (COMPILE_THRESHOLD == 0) {
+        if (COMPILE_THRESHOLD == 0 && !isCompiled) {
             compileToBytecode();
         }
         if (this.vmentry != null) {
@@ -645,11 +645,11 @@
 
     /** Generate optimizable bytecode for this form. */
     MemberName compileToBytecode() {
-        MethodType invokerType = methodType();
-        assert(vmentry == null || vmentry.getMethodType().basicType().equals(invokerType));
         if (vmentry != null && isCompiled) {
             return vmentry;  // already compiled somehow
         }
+        MethodType invokerType = methodType();
+        assert(vmentry == null || vmentry.getMethodType().basicType().equals(invokerType));
         try {
             vmentry = InvokerBytecodeGenerator.generateCustomizedCode(this, invokerType);
             if (TRACE_INTERPRETER)
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -51,7 +51,7 @@
     private static final int MAX_ARITY;
     static {
         final Object[] values = { 255 };
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Void run() {
                 values[0] = Integer.getInteger(MethodHandleImpl.class.getName()+".MAX_ARITY", 255);
@@ -1234,7 +1234,7 @@
         private static final byte[] T_BYTES;
         static {
             final Object[] values = {null};
-            AccessController.doPrivileged(new PrivilegedAction<Void>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Void run() {
                         try {
                             Class<T> tClass = T.class;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java	Mon Apr 27 09:17:39 2015 -0700
@@ -199,7 +199,7 @@
             // sun.invoke.WrapperInstance is a restricted interface not accessible
             // by any non-null class loader.
             final ClassLoader loader = proxyLoader;
-            proxy = AccessController.doPrivileged(new PrivilegedAction<Object>() {
+            proxy = AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Object run() {
                     return Proxy.newProxyInstance(
                             loader,
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleStatics.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleStatics.java	Mon Apr 27 09:17:39 2015 -0700
@@ -53,7 +53,7 @@
 
     static {
         final Object[] values = new Object[9];
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Void run() {
                     values[0] = Boolean.getBoolean("java.lang.invoke.MethodHandle.DEBUG_NAMES");
                     values[1] = Boolean.getBoolean("java.lang.invoke.MethodHandle.DUMP_CLASS_FILES");
--- a/jdk/src/java.base/share/classes/java/lang/invoke/ProxyClassesDumper.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/ProxyClassesDumper.java	Mon Apr 27 09:17:39 2015 -0700
@@ -64,7 +64,7 @@
         try {
             path = path.trim();
             final Path dir = Paths.get(path.length() == 0 ? "." : path);
-            AccessController.doPrivileged(new PrivilegedAction<Void>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                     @Override
                     public Void run() {
                         validateDumpDir(dir);
--- a/jdk/src/java.base/share/classes/java/lang/invoke/SerializedLambda.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/SerializedLambda.java	Mon Apr 27 09:17:39 2015 -0700
@@ -218,7 +218,7 @@
 
     private Object readResolve() throws ReflectiveOperationException {
         try {
-            Method deserialize = AccessController.doPrivileged(new PrivilegedExceptionAction<Method>() {
+            Method deserialize = AccessController.doPrivileged(new PrivilegedExceptionAction<>() {
                 @Override
                 public Method run() throws Exception {
                     Method m = capturingClass.getDeclaredMethod("$deserializeLambda$", SerializedLambda.class);
--- a/jdk/src/java.base/share/classes/java/lang/ref/Finalizer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/ref/Finalizer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -121,7 +121,7 @@
      */
     private static void forkSecondaryFinalizer(final Runnable proc) {
         AccessController.doPrivileged(
-            new PrivilegedAction<Void>() {
+            new PrivilegedAction<>() {
                 public Void run() {
                     ThreadGroup tg = Thread.currentThread().getThreadGroup();
                     for (ThreadGroup tgn = tg;
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java	Mon Apr 27 09:17:39 2015 -0700
@@ -728,7 +728,7 @@
 
             final Constructor<?> cons = cl.getConstructor(constructorParams);
             if (!Modifier.isPublic(cl.getModifiers())) {
-                AccessController.doPrivileged(new PrivilegedAction<Void>() {
+                AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Void run() {
                         cons.setAccessible(true);
                         return null;
--- a/jdk/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -62,7 +62,7 @@
      */
     static {
         java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     return null;
--- a/jdk/src/java.base/share/classes/java/net/AbstractPlainSocketImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/AbstractPlainSocketImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -79,7 +79,7 @@
      */
     static {
         java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     return null;
--- a/jdk/src/java.base/share/classes/java/net/CookieManager.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/CookieManager.java	Mon Apr 27 09:17:39 2015 -0700
@@ -201,14 +201,13 @@
             throw new IllegalArgumentException("Argument is null");
         }
 
-        Map<String, List<String>> cookieMap =
-                        new java.util.HashMap<String, List<String>>();
+        Map<String, List<String>> cookieMap = new java.util.HashMap<>();
         // if there's no default CookieStore, no way for us to get any cookie
         if (cookieJar == null)
             return Collections.unmodifiableMap(cookieMap);
 
         boolean secureLink = "https".equalsIgnoreCase(uri.getScheme());
-        List<HttpCookie> cookies = new java.util.ArrayList<HttpCookie>();
+        List<HttpCookie> cookies = new java.util.ArrayList<>();
         String path = uri.getPath();
         if (path == null || path.isEmpty()) {
             path = "/";
@@ -411,7 +410,7 @@
     private List<String> sortByPath(List<HttpCookie> cookies) {
         Collections.sort(cookies, new CookiePathComparator());
 
-        List<String> cookieHeader = new java.util.ArrayList<String>();
+        List<String> cookieHeader = new java.util.ArrayList<>();
         for (HttpCookie cookie : cookies) {
             // Netscape cookie spec and RFC 2965 have different format of Cookie
             // header; RFC 2965 requires a leading $Version="1" string while Netscape
--- a/jdk/src/java.base/share/classes/java/net/DatagramPacket.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/DatagramPacket.java	Mon Apr 27 09:17:39 2015 -0700
@@ -47,7 +47,7 @@
      */
     static {
         java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     return null;
--- a/jdk/src/java.base/share/classes/java/net/DatagramSocket.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/DatagramSocket.java	Mon Apr 27 09:17:39 2015 -0700
@@ -308,7 +308,7 @@
         // getDeclaredMethod, therefore we need permission to access the member
         try {
             AccessController.doPrivileged(
-                new PrivilegedExceptionAction<Void>() {
+                new PrivilegedExceptionAction<>() {
                     public Void run() throws NoSuchMethodException {
                         Class<?>[] cl = new Class<?>[1];
                         cl[0] = DatagramPacket.class;
--- a/jdk/src/java.base/share/classes/java/net/HttpConnectSocketImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/HttpConnectSocketImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -64,7 +64,7 @@
             serverSocketField = netClientClazz.getDeclaredField("serverSocket");
 
             java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction<Void>() {
+                new java.security.PrivilegedAction<>() {
                     public Void run() {
                         httpField.setAccessible(true);
                         serverSocketField.setAccessible(true);
@@ -146,7 +146,7 @@
     {
         try {
             return java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedExceptionAction<Socket>() {
+                new java.security.PrivilegedExceptionAction<>() {
                     public Socket run() throws IOException {
                         return doTunnel(urlString, timeout);
                 }
--- a/jdk/src/java.base/share/classes/java/net/HttpCookie.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/HttpCookie.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1125,7 +1125,7 @@
      * @return  list of strings; never null
      */
     private static List<String> splitMultiCookies(String header) {
-        List<String> cookies = new java.util.ArrayList<String>();
+        List<String> cookies = new java.util.ArrayList<>();
         int quoteCount = 0;
         int p, q;
 
--- a/jdk/src/java.base/share/classes/java/net/IDN.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/IDN.java	Mon Apr 27 09:17:39 2015 -0700
@@ -228,7 +228,7 @@
         try {
             final String IDN_PROFILE = "uidna.spp";
             if (System.getSecurityManager() != null) {
-                stream = AccessController.doPrivileged(new PrivilegedAction<InputStream>() {
+                stream = AccessController.doPrivileged(new PrivilegedAction<>() {
                     public InputStream run() {
                         return StringPrep.class.getResourceAsStream(IDN_PROFILE);
                     }
--- a/jdk/src/java.base/share/classes/java/net/InMemoryCookieStore.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/InMemoryCookieStore.java	Mon Apr 27 09:17:39 2015 -0700
@@ -62,9 +62,9 @@
      * The default ctor
      */
     public InMemoryCookieStore() {
-        cookieJar = new ArrayList<HttpCookie>();
-        domainIndex = new HashMap<String, List<HttpCookie>>();
-        uriIndex = new HashMap<URI, List<HttpCookie>>();
+        cookieJar = new ArrayList<>();
+        domainIndex = new HashMap<>();
+        uriIndex = new HashMap<>();
 
         lock = new ReentrantLock(false);
     }
@@ -115,7 +115,7 @@
             throw new NullPointerException("uri is null");
         }
 
-        List<HttpCookie> cookies = new ArrayList<HttpCookie>();
+        List<HttpCookie> cookies = new ArrayList<>();
         boolean secureLink = "https".equalsIgnoreCase(uri.getScheme());
         lock.lock();
         try {
@@ -157,7 +157,7 @@
      * of this cookie store.
      */
     public List<URI> getURIs() {
-        List<URI> uris = new ArrayList<URI>();
+        List<URI> uris = new ArrayList<>();
 
         lock.lock();
         try {
@@ -281,7 +281,7 @@
             String host, boolean secureLink) {
         // Use a separate list to handle cookies that need to be removed so
         // that there is no conflict with iterators.
-        ArrayList<HttpCookie> toRemove = new ArrayList<HttpCookie>();
+        ArrayList<HttpCookie> toRemove = new ArrayList<>();
         for (Map.Entry<String, List<HttpCookie>> entry : cookieIndex.entrySet()) {
             String domain = entry.getKey();
             List<HttpCookie> lst = entry.getValue();
@@ -368,7 +368,7 @@
 
                 cookies.add(cookie);
             } else {
-                cookies = new ArrayList<HttpCookie>();
+                cookies = new ArrayList<>();
                 cookies.add(cookie);
                 indexStore.put(index, cookies);
             }
--- a/jdk/src/java.base/share/classes/java/net/InetAddress.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/InetAddress.java	Mon Apr 27 09:17:39 2015 -0700
@@ -270,7 +270,7 @@
         preferIPv6Address = java.security.AccessController.doPrivileged(
             new GetBooleanAction("java.net.preferIPv6Addresses")).booleanValue();
         AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     return null;
@@ -852,7 +852,7 @@
             final String providerName = provider;
             try {
                 nameService = java.security.AccessController.doPrivileged(
-                    new java.security.PrivilegedExceptionAction<NameService>() {
+                    new java.security.PrivilegedExceptionAction<>() {
                         public NameService run() {
                             Iterator<NameServiceDescriptor> itr =
                                 ServiceLoader.load(NameServiceDescriptor.class)
@@ -892,7 +892,7 @@
         String provider = null;;
         String propPrefix = "sun.net.spi.nameservice.provider.";
         int n = 1;
-        nameServices = new ArrayList<NameService>();
+        nameServices = new ArrayList<>();
         provider = AccessController.doPrivileged(
                 new GetPropertyAction(propPrefix + n));
         while (provider != null) {
--- a/jdk/src/java.base/share/classes/java/net/NetworkInterface.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/NetworkInterface.java	Mon Apr 27 09:17:39 2015 -0700
@@ -54,7 +54,7 @@
 
     static {
         AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     return null;
@@ -167,7 +167,7 @@
      * @since 1.6
      */
     public java.util.List<InterfaceAddress> getInterfaceAddresses() {
-        java.util.List<InterfaceAddress> lst = new java.util.ArrayList<InterfaceAddress>(1);
+        java.util.List<InterfaceAddress> lst = new java.util.ArrayList<>(1);
         SecurityManager sec = System.getSecurityManager();
         for (int j=0; j<bindings.length; j++) {
             try {
@@ -346,7 +346,7 @@
         if (netifs == null)
             return null;
 
-        return new Enumeration<NetworkInterface>() {
+        return new Enumeration<>() {
             private int i = 0;
             public NetworkInterface nextElement() {
                 if (netifs != null && i < netifs.length) {
--- a/jdk/src/java.base/share/classes/java/net/Socket.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/Socket.java	Mon Apr 27 09:17:39 2015 -0700
@@ -470,7 +470,7 @@
         // getDeclaredMethod, therefore we need permission to access the member
 
         oldImpl = AccessController.doPrivileged
-                                (new PrivilegedAction<Boolean>() {
+                                (new PrivilegedAction<>() {
             public Boolean run() {
                 Class<?> clazz = impl.getClass();
                 while (true) {
@@ -911,7 +911,7 @@
         InputStream is = null;
         try {
             is = AccessController.doPrivileged(
-                new PrivilegedExceptionAction<InputStream>() {
+                new PrivilegedExceptionAction<>() {
                     public InputStream run() throws IOException {
                         return impl.getInputStream();
                     }
@@ -951,7 +951,7 @@
         OutputStream os = null;
         try {
             os = AccessController.doPrivileged(
-                new PrivilegedExceptionAction<OutputStream>() {
+                new PrivilegedExceptionAction<>() {
                     public OutputStream run() throws IOException {
                         return impl.getOutputStream();
                     }
--- a/jdk/src/java.base/share/classes/java/net/SocketPermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/SocketPermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1194,7 +1194,7 @@
      */
     private static int initEphemeralPorts(String suffix, int defval) {
         return AccessController.doPrivileged(
-            new PrivilegedAction<Integer>(){
+            new PrivilegedAction<>(){
                 public Integer run() {
                     int val = Integer.getInteger(
                             "jdk.net.ephemeralPortRange."+suffix, -1
@@ -1328,7 +1328,7 @@
      */
 
     public SocketPermissionCollection() {
-        perms = new ArrayList<SocketPermission>();
+        perms = new ArrayList<>();
     }
 
     /**
@@ -1466,7 +1466,7 @@
         // Get the one we want
         @SuppressWarnings("unchecked")
         Vector<SocketPermission> permissions = (Vector<SocketPermission>)gfields.get("permissions", null);
-        perms = new ArrayList<SocketPermission>(permissions.size());
+        perms = new ArrayList<>(permissions.size());
         perms.addAll(permissions);
     }
 }
--- a/jdk/src/java.base/share/classes/java/net/SocksSocketImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/SocksSocketImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -82,7 +82,7 @@
     {
         try {
             AccessController.doPrivileged(
-                new java.security.PrivilegedExceptionAction<Void>() {
+                new java.security.PrivilegedExceptionAction<>() {
                     public Void run() throws IOException {
                               superConnectServer(host, port, timeout);
                               cmdIn = getInputStream();
@@ -157,7 +157,7 @@
             final InetAddress addr = InetAddress.getByName(server);
             PasswordAuthentication pw =
                 java.security.AccessController.doPrivileged(
-                    new java.security.PrivilegedAction<PasswordAuthentication>() {
+                    new java.security.PrivilegedAction<>() {
                         public PasswordAuthentication run() {
                                 return Authenticator.requestPasswordAuthentication(
                                        server, addr, serverPort, "SOCKS5", "SOCKS authentication", null);
@@ -351,7 +351,7 @@
             // server is not null only when the socket was created with a
             // specified proxy in which case it does bypass the ProxySelector
             ProxySelector sel = java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction<ProxySelector>() {
+                new java.security.PrivilegedAction<>() {
                     public ProxySelector run() {
                             return ProxySelector.getDefault();
                         }
@@ -595,7 +595,7 @@
         InetAddress naddr = baddr;
         if (naddr.isAnyLocalAddress()) {
             naddr = AccessController.doPrivileged(
-                        new PrivilegedAction<InetAddress>() {
+                        new PrivilegedAction<>() {
                             public InetAddress run() {
                                 return cmdsock.getLocalAddress();
 
@@ -671,7 +671,7 @@
             // server is not null only when the socket was created with a
             // specified proxy in which case it does bypass the ProxySelector
             ProxySelector sel = java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction<ProxySelector>() {
+                new java.security.PrivilegedAction<>() {
                     public ProxySelector run() {
                             return ProxySelector.getDefault();
                         }
@@ -724,7 +724,7 @@
                 // Connects to the SOCKS server
                 try {
                     AccessController.doPrivileged(
-                        new PrivilegedExceptionAction<Void>() {
+                        new PrivilegedExceptionAction<>() {
                             public Void run() throws Exception {
                                 cmdsock = new Socket(new PlainSocketImpl());
                                 cmdsock.connect(new InetSocketAddress(server, serverPort));
@@ -755,7 +755,7 @@
         } else {
             try {
                 AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<Void>() {
+                    new PrivilegedExceptionAction<>() {
                         public Void run() throws Exception {
                             cmdsock = new Socket(new PlainSocketImpl());
                             cmdsock.connect(new InetSocketAddress(server, serverPort));
--- a/jdk/src/java.base/share/classes/java/net/URL.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/URL.java	Mon Apr 27 09:17:39 2015 -0700
@@ -268,6 +268,23 @@
      *     createURLStreamHandler} method of each provider, if instantiated, is
      *     invoked, with the protocol string, until a provider returns non-null,
      *     or all providers have been exhausted.
+     * <li>If the previous step fails to find a protocol handler, the
+     *     constructor reads the value of the system property:
+     *     <blockquote>{@code
+     *         java.protocol.handler.pkgs
+     *     }</blockquote>
+     *     If the value of that system property is not {@code null},
+     *     it is interpreted as a list of packages separated by a vertical
+     *     slash character '{@code |}'. The constructor tries to load
+     *     the class named:
+     *     <blockquote>{@code
+     *         <package>.<protocol>.Handler
+     *     }</blockquote>
+     *     where {@code <package>} is replaced by the name of the package
+     *     and {@code <protocol>} is replaced by the name of the protocol.
+     *     If this class does not exist, or if the class exists but it is not
+     *     a subclass of {@code URLStreamHandler}, then the next package
+     *     in the list is tried.
      * <li>If the previous step fails to find a protocol handler, then the
      *     constructor tries to load a built-in protocol handler.
      *     If this class does not exist, or if the class exists but it is not a
@@ -1139,8 +1156,41 @@
         }
     }
 
+    private static URLStreamHandler lookupViaProperty(String protocol) {
+        String packagePrefixList = java.security.AccessController.doPrivileged(
+                new PrivilegedAction<>() {
+                    public String run() {
+                        return System.getProperty(protocolPathProp, "");
+                    }
+                });
+        String[] packagePrefixes = packagePrefixList.split("\\|");
+
+        URLStreamHandler handler = null;
+        for (int i=0; handler == null && i<packagePrefixes.length; i++) {
+            String packagePrefix = packagePrefixes[i].trim();
+            try {
+                String clsName = packagePrefix + "." + protocol + ".Handler";
+                Class<?> cls = null;
+                try {
+                    cls = Class.forName(clsName);
+                } catch (ClassNotFoundException e) {
+                    ClassLoader cl = ClassLoader.getSystemClassLoader();
+                    if (cl != null) {
+                        cls = cl.loadClass(clsName);
+                    }
+                }
+                if (cls != null) {
+                    handler = (URLStreamHandler)cls.newInstance();
+                }
+            } catch (Exception e) {
+                // any number of exceptions can get thrown here
+            }
+        }
+        return handler;
+    }
+
     private static Iterator<URLStreamHandlerProvider> providers() {
-        return new Iterator<URLStreamHandlerProvider>() {
+        return new Iterator<>() {
 
             ClassLoader cl = ClassLoader.getSystemClassLoader();
             ServiceLoader<URLStreamHandlerProvider> sl =
@@ -1193,7 +1243,7 @@
         gate.set(gate);
         try {
             return AccessController.doPrivileged(
-                new PrivilegedAction<URLStreamHandler>() {
+                new PrivilegedAction<>() {
                     public URLStreamHandler run() {
                         Iterator<URLStreamHandlerProvider> itr = providers();
                         while (itr.hasNext()) {
@@ -1251,6 +1301,10 @@
             if (handler == null && !protocol.equalsIgnoreCase("jar")) {
                 handler = lookupViaProviders(protocol);
             }
+
+            if (handler == null) {
+                handler = lookupViaProperty(protocol);
+            }
         }
 
         synchronized (streamHandlerLock) {
--- a/jdk/src/java.base/share/classes/java/net/URLClassLoader.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/net/URLClassLoader.java	Mon Apr 27 09:17:39 2015 -0700
@@ -359,7 +359,7 @@
         final Class<?> result;
         try {
             result = AccessController.doPrivileged(
-                new PrivilegedExceptionAction<Class<?>>() {
+                new PrivilegedExceptionAction<>() {
                     public Class<?> run() throws ClassNotFoundException {
                         String path = name.replace('.', '/').concat(".class");
                         Resource res = ucp.getResource(path, false);
@@ -564,7 +564,7 @@
          * The same restriction to finding classes applies to resources
          */
         URL url = AccessController.doPrivileged(
-            new PrivilegedAction<URL>() {
+            new PrivilegedAction<>() {
                 public URL run() {
                     return ucp.findResource(name, true);
                 }
@@ -587,7 +587,7 @@
     {
         final Enumeration<URL> e = ucp.findResources(name, true);
 
-        return new Enumeration<URL>() {
+        return new Enumeration<>() {
             private URL url = null;
 
             private boolean next() {
@@ -596,7 +596,7 @@
                 }
                 do {
                     URL u = AccessController.doPrivileged(
-                        new PrivilegedAction<URL>() {
+                        new PrivilegedAction<>() {
                             public URL run() {
                                 if (!e.hasMoreElements())
                                     return null;
@@ -704,7 +704,7 @@
             final SecurityManager sm = System.getSecurityManager();
             if (sm != null) {
                 final Permission fp = p;
-                AccessController.doPrivileged(new PrivilegedAction<Void>() {
+                AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Void run() throws SecurityException {
                         sm.checkPermission(fp);
                         return null;
@@ -735,7 +735,7 @@
         final AccessControlContext acc = AccessController.getContext();
         // Need a privileged block to create the class loader
         URLClassLoader ucl = AccessController.doPrivileged(
-            new PrivilegedAction<URLClassLoader>() {
+            new PrivilegedAction<>() {
                 public URLClassLoader run() {
                     return new FactoryURLClassLoader(urls, parent, acc);
                 }
@@ -760,7 +760,7 @@
         final AccessControlContext acc = AccessController.getContext();
         // Need a privileged block to create the class loader
         URLClassLoader ucl = AccessController.doPrivileged(
-            new PrivilegedAction<URLClassLoader>() {
+            new PrivilegedAction<>() {
                 public URLClassLoader run() {
                     return new FactoryURLClassLoader(urls, acc);
                 }
--- a/jdk/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java	Mon Apr 27 09:17:39 2015 -0700
@@ -296,7 +296,7 @@
     public static AsynchronousFileChannel open(Path file, OpenOption... options)
         throws IOException
     {
-        Set<OpenOption> set = new HashSet<OpenOption>(options.length);
+        Set<OpenOption> set = new HashSet<>(options.length);
         Collections.addAll(set, options);
         return open(file, set, null, NO_ATTRIBUTES);
     }
--- a/jdk/src/java.base/share/classes/java/nio/channels/FileChannel.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/channels/FileChannel.java	Mon Apr 27 09:17:39 2015 -0700
@@ -330,7 +330,7 @@
     public static FileChannel open(Path path, OpenOption... options)
         throws IOException
     {
-        Set<OpenOption> set = new HashSet<OpenOption>(options.length);
+        Set<OpenOption> set = new HashSet<>(options.length);
         Collections.addAll(set, options);
         return open(path, set, NO_ATTRIBUTES);
     }
--- a/jdk/src/java.base/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -76,7 +76,7 @@
 
         private static AsynchronousChannelProvider load() {
             return AccessController
-                .doPrivileged(new PrivilegedAction<AsynchronousChannelProvider>() {
+                .doPrivileged(new PrivilegedAction<>() {
                     public AsynchronousChannelProvider run() {
                         AsynchronousChannelProvider p;
                         p = loadProviderFromProperty();
--- a/jdk/src/java.base/share/classes/java/nio/channels/spi/SelectorProvider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/channels/spi/SelectorProvider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -172,7 +172,7 @@
             if (provider != null)
                 return provider;
             return AccessController.doPrivileged(
-                new PrivilegedAction<SelectorProvider>() {
+                new PrivilegedAction<>() {
                     public SelectorProvider run() {
                             if (loadProviderFromProperty())
                                 return provider;
--- a/jdk/src/java.base/share/classes/java/nio/charset/Charset.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/charset/Charset.java	Mon Apr 27 09:17:39 2015 -0700
@@ -335,7 +335,7 @@
     // thrown.  Should be invoked with full privileges.
     //
     private static Iterator<CharsetProvider> providers() {
-        return new Iterator<CharsetProvider>() {
+        return new Iterator<>() {
 
                 ClassLoader cl = ClassLoader.getSystemClassLoader();
                 ServiceLoader<CharsetProvider> sl =
@@ -404,7 +404,7 @@
             gate.set(gate);
 
             return AccessController.doPrivileged(
-                new PrivilegedAction<Charset>() {
+                new PrivilegedAction<>() {
                     public Charset run() {
                         for (Iterator<CharsetProvider> i = providers();
                              i.hasNext();) {
@@ -428,7 +428,7 @@
         // returns ExtendedProvider, if installed
         private static CharsetProvider extendedProvider() {
             return AccessController.doPrivileged(
-                       new PrivilegedAction<CharsetProvider>() {
+                       new PrivilegedAction<>() {
                            public CharsetProvider run() {
                                 try {
                                     Class<?> epc
@@ -570,10 +570,10 @@
      */
     public static SortedMap<String,Charset> availableCharsets() {
         return AccessController.doPrivileged(
-            new PrivilegedAction<SortedMap<String,Charset>>() {
+            new PrivilegedAction<>() {
                 public SortedMap<String,Charset> run() {
                     TreeMap<String,Charset> m =
-                        new TreeMap<String,Charset>(
+                        new TreeMap<>(
                             ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER);
                     put(standardProvider.charsets(), m);
                     CharsetProvider ecp = ExtendedProviderHolder.extendedProvider;
@@ -663,7 +663,7 @@
         if (aliasSet != null)
             return aliasSet;
         int n = aliases.length;
-        HashSet<String> hs = new HashSet<String>(n);
+        HashSet<String> hs = new HashSet<>(n);
         for (int i = 0; i < n; i++)
             hs.add(aliases[i]);
         aliasSet = Collections.unmodifiableSet(hs);
--- a/jdk/src/java.base/share/classes/java/nio/charset/CoderResult.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/charset/CoderResult.java	Mon Apr 27 09:17:39 2015 -0700
@@ -204,13 +204,13 @@
             WeakReference<CoderResult> w;
             CoderResult e = null;
             if (cache == null) {
-                cache = new HashMap<Integer,WeakReference<CoderResult>>();
+                cache = new HashMap<>();
             } else if ((w = cache.get(k)) != null) {
                 e = w.get();
             }
             if (e == null) {
                 e = create(len);
-                cache.put(k, new WeakReference<CoderResult>(e));
+                cache.put(k, new WeakReference<>(e));
             }
             return e;
         }
--- a/jdk/src/java.base/share/classes/java/nio/file/FileSystems.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/file/FileSystems.java	Mon Apr 27 09:17:39 2015 -0700
@@ -93,7 +93,7 @@
         private static FileSystem defaultFileSystem() {
             // load default provider
             FileSystemProvider provider = AccessController
-                .doPrivileged(new PrivilegedAction<FileSystemProvider>() {
+                .doPrivileged(new PrivilegedAction<>() {
                     public FileSystemProvider run() {
                         return getDefaultProvider();
                     }
--- a/jdk/src/java.base/share/classes/java/nio/file/Files.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/file/Files.java	Mon Apr 27 09:17:39 2015 -0700
@@ -402,7 +402,7 @@
     public static SeekableByteChannel newByteChannel(Path path, OpenOption... options)
         throws IOException
     {
-        Set<OpenOption> set = new HashSet<OpenOption>(options.length);
+        Set<OpenOption> set = new HashSet<>(options.length);
         Collections.addAll(set, options);
         return newByteChannel(path, set);
     }
@@ -516,7 +516,7 @@
         // create a matcher and return a filter that uses it.
         FileSystem fs = dir.getFileSystem();
         final PathMatcher matcher = fs.getPathMatcher("glob:" + glob);
-        DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
+        DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<>() {
             @Override
             public boolean accept(Path entry)  {
                 return matcher.matches(entry.getFileName());
@@ -1541,7 +1541,7 @@
         // creates the default file type detector
         private static FileTypeDetector createDefaultFileTypeDetector() {
             return AccessController
-                .doPrivileged(new PrivilegedAction<FileTypeDetector>() {
+                .doPrivileged(new PrivilegedAction<>() {
                     @Override public FileTypeDetector run() {
                         return sun.nio.fs.DefaultFileTypeDetector.create();
                 }});
@@ -1550,7 +1550,7 @@
         // loads all installed file type detectors
         private static List<FileTypeDetector> loadInstalledDetectors() {
             return AccessController
-                .doPrivileged(new PrivilegedAction<List<FileTypeDetector>>() {
+                .doPrivileged(new PrivilegedAction<>() {
                     @Override public List<FileTypeDetector> run() {
                         List<FileTypeDetector> list = new ArrayList<>();
                         ServiceLoader<FileTypeDetector> loader = ServiceLoader
@@ -3468,7 +3468,7 @@
             final Iterator<Path> delegate = ds.iterator();
 
             // Re-wrap DirectoryIteratorException to UncheckedIOException
-            Iterator<Path> iterator = new Iterator<Path>() {
+            Iterator<Path> iterator = new Iterator<>() {
                 @Override
                 public boolean hasNext() {
                     try {
--- a/jdk/src/java.base/share/classes/java/nio/file/Path.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/file/Path.java	Mon Apr 27 09:17:39 2015 -0700
@@ -801,7 +801,7 @@
      */
     @Override
     default Iterator<Path> iterator() {
-        return new Iterator<Path>() {
+        return new Iterator<>() {
             private int i = 0;
 
             @Override
--- a/jdk/src/java.base/share/classes/java/nio/file/attribute/AclEntry.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/file/attribute/AclEntry.java	Mon Apr 27 09:17:39 2015 -0700
@@ -306,7 +306,7 @@
      * @return the permissions component
      */
     public Set<AclEntryPermission> permissions() {
-        return new HashSet<AclEntryPermission>(perms);
+        return new HashSet<>(perms);
     }
 
     /**
@@ -317,7 +317,7 @@
      * @return the flags component
      */
     public Set<AclEntryFlag> flags() {
-        return new HashSet<AclEntryFlag>(flags);
+        return new HashSet<>(flags);
     }
 
     /**
--- a/jdk/src/java.base/share/classes/java/nio/file/attribute/PosixFilePermissions.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/file/attribute/PosixFilePermissions.java	Mon Apr 27 09:17:39 2015 -0700
@@ -160,13 +160,13 @@
     {
         // copy set and check for nulls (CCE will be thrown if an element is not
         // a PosixFilePermission)
-        perms = new HashSet<PosixFilePermission>(perms);
+        perms = new HashSet<>(perms);
         for (PosixFilePermission p: perms) {
             if (p == null)
                 throw new NullPointerException();
         }
         final Set<PosixFilePermission> value = perms;
-        return new FileAttribute<Set<PosixFilePermission>>() {
+        return new FileAttribute<>() {
             @Override
             public String name() {
                 return "posix:permissions";
--- a/jdk/src/java.base/share/classes/java/nio/file/spi/FileSystemProvider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/nio/file/spi/FileSystemProvider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -110,7 +110,7 @@
 
     // loads all installed providers
     private static List<FileSystemProvider> loadInstalledProviders() {
-        List<FileSystemProvider> list = new ArrayList<FileSystemProvider>();
+        List<FileSystemProvider> list = new ArrayList<>();
 
         ServiceLoader<FileSystemProvider> sl = ServiceLoader
             .load(FileSystemProvider.class, ClassLoader.getSystemClassLoader());
@@ -163,7 +163,7 @@
                     loadingProviders = true;
 
                     List<FileSystemProvider> list = AccessController
-                        .doPrivileged(new PrivilegedAction<List<FileSystemProvider>>() {
+                        .doPrivileged(new PrivilegedAction<>() {
                             @Override
                             public List<FileSystemProvider> run() {
                                 return loadInstalledProviders();
@@ -419,7 +419,7 @@
         throws IOException
     {
         int len = options.length;
-        Set<OpenOption> opts = new HashSet<OpenOption>(len + 3);
+        Set<OpenOption> opts = new HashSet<>(len + 3);
         if (len == 0) {
             opts.add(StandardOpenOption.CREATE);
             opts.add(StandardOpenOption.TRUNCATE_EXISTING);
--- a/jdk/src/java.base/share/classes/java/security/AccessControlContext.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/AccessControlContext.java	Mon Apr 27 09:17:39 2015 -0700
@@ -458,7 +458,7 @@
                     Thread.dumpStack();
                     final ProtectionDomain pd = context[i];
                     final Debug db = debug;
-                    AccessController.doPrivileged (new PrivilegedAction<Void>() {
+                    AccessController.doPrivileged (new PrivilegedAction<>() {
                         public Void run() {
                             db.println("domain that failed "+pd);
                             return null;
--- a/jdk/src/java.base/share/classes/java/security/AccessController.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/AccessController.java	Mon Apr 27 09:17:39 2015 -0700
@@ -612,7 +612,7 @@
 
     private static ProtectionDomain getCallerPD(final Class <?> caller) {
         ProtectionDomain callerPd = doPrivileged
-            (new PrivilegedAction<ProtectionDomain>() {
+            (new PrivilegedAction<>() {
             public ProtectionDomain run() {
                 return caller.getProtectionDomain();
             }
--- a/jdk/src/java.base/share/classes/java/security/AllPermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/AllPermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -212,7 +212,7 @@
      * @return an enumeration of all the AllPermission objects.
      */
     public Enumeration<Permission> elements() {
-        return new Enumeration<Permission>() {
+        return new Enumeration<>() {
             private boolean hasMore = all_allowed;
 
             public boolean hasMoreElements() {
--- a/jdk/src/java.base/share/classes/java/security/BasicPermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/BasicPermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -332,7 +332,7 @@
      */
 
     public BasicPermissionCollection(Class<?> clazz) {
-        perms = new HashMap<String, Permission>(11);
+        perms = new HashMap<>(11);
         all_allowed = false;
         permClass = clazz;
     }
@@ -533,7 +533,7 @@
         @SuppressWarnings("unchecked")
         Hashtable<String, Permission> permissions =
                 (Hashtable<String, Permission>)gfields.get("permissions", null);
-        perms = new HashMap<String, Permission>(permissions.size()*2);
+        perms = new HashMap<>(permissions.size()*2);
         perms.putAll(permissions);
 
         // Get all_allowed
--- a/jdk/src/java.base/share/classes/java/security/CodeSource.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/CodeSource.java	Mon Apr 27 09:17:39 2015 -0700
@@ -543,7 +543,7 @@
         if (size > 0) {
             // we know of 3 different cert types: X.509, PGP, SDSI, which
             // could all be present in the stream at the same time
-            cfs = new Hashtable<String, CertificateFactory>(3);
+            cfs = new Hashtable<>(3);
             this.certs = new java.security.cert.Certificate[size];
         }
 
--- a/jdk/src/java.base/share/classes/java/security/Identity.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Identity.java	Mon Apr 27 09:17:39 2015 -0700
@@ -185,7 +185,7 @@
 
         check("setIdentityPublicKey");
         this.publicKey = key;
-        certificates = new Vector<Certificate>();
+        certificates = new Vector<>();
     }
 
     /**
@@ -248,7 +248,7 @@
         check("addIdentityCertificate");
 
         if (certificates == null) {
-            certificates = new Vector<Certificate>();
+            certificates = new Vector<>();
         }
         if (publicKey != null) {
             if (!keyEquals(publicKey, certificate.getPublicKey())) {
--- a/jdk/src/java.base/share/classes/java/security/IdentityScope.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/IdentityScope.java	Mon Apr 27 09:17:39 2015 -0700
@@ -74,7 +74,7 @@
     private static void initializeSystemScope() {
 
         String classname = AccessController.doPrivileged(
-                                new PrivilegedAction<String>() {
+                                new PrivilegedAction<>() {
             public String run() {
                 return Security.getProperty("system.scope");
             }
--- a/jdk/src/java.base/share/classes/java/security/KeyStore.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/KeyStore.java	Mon Apr 27 09:17:39 2015 -0700
@@ -976,7 +976,7 @@
      */
     public final static String getDefaultType() {
         String kstype;
-        kstype = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        kstype = AccessController.doPrivileged(new PrivilegedAction<>() {
             public String run() {
                 return Security.getProperty(KEYSTORE_TYPE);
             }
--- a/jdk/src/java.base/share/classes/java/security/Permissions.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Permissions.java	Mon Apr 27 09:17:39 2015 -0700
@@ -99,7 +99,7 @@
      * Creates a new Permissions object containing no PermissionCollections.
      */
     public Permissions() {
-        permsMap = new HashMap<Class<?>, PermissionCollection>(11);
+        permsMap = new HashMap<>(11);
         allPermission = null;
     }
 
@@ -394,7 +394,7 @@
         @SuppressWarnings("unchecked")
         Hashtable<Class<?>, PermissionCollection> perms =
             (Hashtable<Class<?>, PermissionCollection>)gfields.get("perms", null);
-        permsMap = new HashMap<Class<?>, PermissionCollection>(perms.size()*2);
+        permsMap = new HashMap<>(perms.size()*2);
         permsMap.putAll(perms);
 
         // Set hasUnresolved
@@ -488,7 +488,7 @@
      */
 
     PermissionsHash() {
-        permsMap = new HashMap<Permission, Permission>(11);
+        permsMap = new HashMap<>(11);
     }
 
     /**
@@ -597,7 +597,7 @@
         @SuppressWarnings("unchecked")
         Hashtable<Permission, Permission> perms =
                 (Hashtable<Permission, Permission>)gfields.get("perms", null);
-        permsMap = new HashMap<Permission, Permission>(perms.size()*2);
+        permsMap = new HashMap<>(perms.size()*2);
         permsMap.putAll(perms);
     }
 }
--- a/jdk/src/java.base/share/classes/java/security/Policy.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Policy.java	Mon Apr 27 09:17:39 2015 -0700
@@ -170,7 +170,7 @@
                 PolicyInfo pinfo = policy.get();
                 if (pinfo.policy == null) {
                     String policy_class = AccessController.doPrivileged(
-                        new PrivilegedAction<String>() {
+                        new PrivilegedAction<>() {
                         public String run() {
                             return Security.getProperty("policy.provider");
                         }
@@ -199,7 +199,7 @@
 
                         final String pc = policy_class;
                         Policy pol = AccessController.doPrivileged(
-                            new PrivilegedAction<Policy>() {
+                            new PrivilegedAction<>() {
                             public Policy run() {
                                 try {
                                     ClassLoader cl =
@@ -303,7 +303,7 @@
          */
 
         ProtectionDomain policyDomain =
-        AccessController.doPrivileged(new PrivilegedAction<ProtectionDomain>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public ProtectionDomain run() {
                 return p.getClass().getProtectionDomain();
             }
--- a/jdk/src/java.base/share/classes/java/security/ProtectionDomain.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/ProtectionDomain.java	Mon Apr 27 09:17:39 2015 -0700
@@ -367,7 +367,7 @@
 
         PermissionCollection perms =
             java.security.AccessController.doPrivileged
-            (new java.security.PrivilegedAction<PermissionCollection>() {
+            (new java.security.PrivilegedAction<>() {
                     public PermissionCollection run() {
                         Policy p = Policy.getPolicyNoCheck();
                         return p.getPermissions(ProtectionDomain.this);
--- a/jdk/src/java.base/share/classes/java/security/Provider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Provider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -711,7 +711,7 @@
 
         legacyChanged = true;
         if (legacyStrings == null) {
-            legacyStrings = new LinkedHashMap<String,String>();
+            legacyStrings = new LinkedHashMap<>();
         }
         return true;
     }
@@ -773,7 +773,7 @@
     private void implReplaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function) {
         legacyChanged = true;
         if (legacyStrings == null) {
-            legacyStrings = new LinkedHashMap<String,String>();
+            legacyStrings = new LinkedHashMap<>();
         } else {
             legacyStrings.replaceAll((BiFunction<? super String, ? super String, ? extends String>) function);
         }
@@ -905,7 +905,7 @@
         }
         serviceSet = null;
         if (legacyMap == null) {
-            legacyMap = new LinkedHashMap<ServiceKey,Service>();
+            legacyMap = new LinkedHashMap<>();
         } else {
             legacyMap.clear();
         }
@@ -1133,7 +1133,7 @@
                     ("service.getProvider() must match this Provider object");
         }
         if (serviceMap == null) {
-            serviceMap = new LinkedHashMap<ServiceKey,Service>();
+            serviceMap = new LinkedHashMap<>();
         }
         servicesChanged = true;
         String type = s.getType();
@@ -1305,7 +1305,7 @@
     }
 
     static {
-        knownEngines = new HashMap<String,EngineDescription>();
+        knownEngines = new HashMap<>();
         // JCA
         addEngine("AlgorithmParameterGenerator",        false, null);
         addEngine("AlgorithmParameters",                false, null);
@@ -1431,14 +1431,14 @@
 
         private void addAlias(String alias) {
             if (aliases.isEmpty()) {
-                aliases = new ArrayList<String>(2);
+                aliases = new ArrayList<>(2);
             }
             aliases.add(alias);
         }
 
         void addAttribute(String type, String value) {
             if (attributes.isEmpty()) {
-                attributes = new HashMap<UString,String>(8);
+                attributes = new HashMap<>(8);
             }
             attributes.put(new UString(type), value);
         }
@@ -1471,12 +1471,12 @@
             if (aliases == null) {
                 this.aliases = Collections.<String>emptyList();
             } else {
-                this.aliases = new ArrayList<String>(aliases);
+                this.aliases = new ArrayList<>(aliases);
             }
             if (attributes == null) {
                 this.attributes = Collections.<UString,String>emptyMap();
             } else {
-                this.attributes = new HashMap<UString,String>();
+                this.attributes = new HashMap<>();
                 for (Map.Entry<String,String> entry : attributes.entrySet()) {
                     this.attributes.put(new UString(entry.getKey()), entry.getValue());
                 }
@@ -1644,7 +1644,7 @@
                             ("class configured for " + type + " (provider: " +
                             provider.getName() + ") is not public.");
                     }
-                    classRef = new WeakReference<Class<?>>(clazz);
+                    classRef = new WeakReference<>(clazz);
                 }
                 return clazz;
             } catch (ClassNotFoundException e) {
--- a/jdk/src/java.base/share/classes/java/security/SecureRandom.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/SecureRandom.java	Mon Apr 27 09:17:39 2015 -0700
@@ -616,7 +616,7 @@
             throws NoSuchAlgorithmException {
 
         String property = AccessController.doPrivileged(
-            new PrivilegedAction<String>() {
+            new PrivilegedAction<>() {
                 @Override
                 public String run() {
                     return Security.getProperty(
--- a/jdk/src/java.base/share/classes/java/security/Security.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Security.java	Mon Apr 27 09:17:39 2015 -0700
@@ -66,7 +66,7 @@
         // things in initialize that might require privs.
         // (the FileInputStream call and the File.exists call,
         // the securityPropFile call, etc)
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Void run() {
                 initialize();
                 return null;
@@ -810,7 +810,7 @@
         final boolean pd = key.equals("package.definition");
 
         if (pa || pd) {
-            AccessController.doPrivileged(new PrivilegedAction<Void>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Void run() {
                     try {
                         /* Get the class via the bootstrap class loader. */
--- a/jdk/src/java.base/share/classes/java/security/Signature.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Signature.java	Mon Apr 27 09:17:39 2015 -0700
@@ -265,7 +265,7 @@
     private final static Map<String,Boolean> signatureInfo;
 
     static {
-        signatureInfo = new ConcurrentHashMap<String,Boolean>();
+        signatureInfo = new ConcurrentHashMap<>();
         Boolean TRUE = Boolean.TRUE;
         // pre-initialize with values for our SignatureSpi implementations
         signatureInfo.put("sun.security.provider.DSA$RawDSA", TRUE);
--- a/jdk/src/java.base/share/classes/java/security/Signer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/Signer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -140,7 +140,7 @@
         }
         try {
             AccessController.doPrivileged(
-                new PrivilegedExceptionAction<Void>() {
+                new PrivilegedExceptionAction<>() {
                 public Void run() throws KeyManagementException {
                     setPublicKey(pub);
                     return null;
--- a/jdk/src/java.base/share/classes/java/security/UnresolvedPermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/UnresolvedPermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -560,7 +560,7 @@
         if (size > 0) {
             // we know of 3 different cert types: X.509, PGP, SDSI, which
             // could all be present in the stream at the same time
-            cfs = new Hashtable<String, CertificateFactory>(3);
+            cfs = new Hashtable<>(3);
             this.certs = new java.security.cert.Certificate[size];
         }
 
--- a/jdk/src/java.base/share/classes/java/security/UnresolvedPermissionCollection.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/UnresolvedPermissionCollection.java	Mon Apr 27 09:17:39 2015 -0700
@@ -61,7 +61,7 @@
      *
      */
     public UnresolvedPermissionCollection() {
-        perms = new HashMap<String, List<UnresolvedPermission>>(11);
+        perms = new HashMap<>(11);
     }
 
     /**
@@ -82,7 +82,7 @@
         synchronized (this) {
             v = perms.get(up.getName());
             if (v == null) {
-                v = new ArrayList<UnresolvedPermission>();
+                v = new ArrayList<>();
                 perms.put(up.getName(), v);
             }
         }
@@ -203,7 +203,7 @@
         Hashtable<String, Vector<UnresolvedPermission>> permissions =
                 (Hashtable<String, Vector<UnresolvedPermission>>)
                 gfields.get("permissions", null);
-        perms = new HashMap<String, List<UnresolvedPermission>>(permissions.size()*2);
+        perms = new HashMap<>(permissions.size()*2);
 
         // Convert each entry (Vector) into a List
         Set<Map.Entry<String, Vector<UnresolvedPermission>>> set = permissions.entrySet();
--- a/jdk/src/java.base/share/classes/java/security/cert/CertPathBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertPathBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -301,7 +301,7 @@
      */
     public final static String getDefaultType() {
         String cpbtype =
-            AccessController.doPrivileged(new PrivilegedAction<String>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 public String run() {
                     return Security.getProperty(CPB_TYPE);
                 }
--- a/jdk/src/java.base/share/classes/java/security/cert/CertPathValidator.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertPathValidator.java	Mon Apr 27 09:17:39 2015 -0700
@@ -313,7 +313,7 @@
      */
     public final static String getDefaultType() {
         String cpvtype =
-            AccessController.doPrivileged(new PrivilegedAction<String>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 public String run() {
                     return Security.getProperty(CPV_TYPE);
                 }
--- a/jdk/src/java.base/share/classes/java/security/cert/CertStore.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertStore.java	Mon Apr 27 09:17:39 2015 -0700
@@ -409,7 +409,7 @@
      */
     public final static String getDefaultType() {
         String cstype;
-        cstype = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        cstype = AccessController.doPrivileged(new PrivilegedAction<>() {
             public String run() {
                 return Security.getProperty(CERTSTORE_TYPE);
             }
--- a/jdk/src/java.base/share/classes/java/security/cert/CertificateRevokedException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertificateRevokedException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -231,7 +231,7 @@
         if (size == 0) {
             extensions = Collections.emptyMap();
         } else {
-            extensions = new HashMap<String, Extension>(size);
+            extensions = new HashMap<>(size);
         }
 
         // Read in the extensions and put the mappings in the extensions map
--- a/jdk/src/java.base/share/classes/java/security/cert/PKIXParameters.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/PKIXParameters.java	Mon Apr 27 09:17:39 2015 -0700
@@ -120,8 +120,8 @@
         setTrustAnchors(trustAnchors);
 
         this.unmodInitialPolicies = Collections.<String>emptySet();
-        this.certPathCheckers = new ArrayList<PKIXCertPathChecker>();
-        this.certStores = new ArrayList<CertStore>();
+        this.certPathCheckers = new ArrayList<>();
+        this.certStores = new ArrayList<>();
     }
 
     /**
@@ -144,7 +144,7 @@
         if (keystore == null)
             throw new NullPointerException("the keystore parameter must be " +
                 "non-null");
-        Set<TrustAnchor> hashSet = new HashSet<TrustAnchor>();
+        Set<TrustAnchor> hashSet = new HashSet<>();
         Enumeration<String> aliases = keystore.aliases();
         while (aliases.hasMoreElements()) {
             String alias = aliases.nextElement();
@@ -156,8 +156,8 @@
         }
         setTrustAnchors(hashSet);
         this.unmodInitialPolicies = Collections.<String>emptySet();
-        this.certPathCheckers = new ArrayList<PKIXCertPathChecker>();
-        this.certStores = new ArrayList<CertStore>();
+        this.certPathCheckers = new ArrayList<>();
+        this.certStores = new ArrayList<>();
     }
 
     /**
@@ -207,7 +207,7 @@
             }
         }
         this.unmodTrustAnchors = Collections.unmodifiableSet
-                (new HashSet<TrustAnchor>(trustAnchors));
+                (new HashSet<>(trustAnchors));
     }
 
     /**
@@ -256,7 +256,7 @@
                         + "of type java.lang.String");
             }
             this.unmodInitialPolicies =
-                Collections.unmodifiableSet(new HashSet<String>(initialPolicies));
+                Collections.unmodifiableSet(new HashSet<>(initialPolicies));
         } else
             this.unmodInitialPolicies = Collections.<String>emptySet();
     }
@@ -280,7 +280,7 @@
      */
     public void setCertStores(List<CertStore> stores) {
         if (stores == null) {
-            this.certStores = new ArrayList<CertStore>();
+            this.certStores = new ArrayList<>();
         } else {
             for (Iterator<CertStore> i = stores.iterator(); i.hasNext();) {
                 if (!(i.next() instanceof CertStore)) {
@@ -288,7 +288,7 @@
                         + "of type java.security.cert.CertStore");
                 }
             }
-            this.certStores = new ArrayList<CertStore>(stores);
+            this.certStores = new ArrayList<>(stores);
         }
     }
 
@@ -316,7 +316,7 @@
      */
     public List<CertStore> getCertStores() {
         return Collections.unmodifiableList
-                (new ArrayList<CertStore>(this.certStores));
+                (new ArrayList<>(this.certStores));
     }
 
     /**
@@ -544,14 +544,13 @@
      */
     public void setCertPathCheckers(List<PKIXCertPathChecker> checkers) {
         if (checkers != null) {
-            List<PKIXCertPathChecker> tmpList =
-                        new ArrayList<PKIXCertPathChecker>();
+            List<PKIXCertPathChecker> tmpList = new ArrayList<>();
             for (PKIXCertPathChecker checker : checkers) {
                 tmpList.add((PKIXCertPathChecker)checker.clone());
             }
             this.certPathCheckers = tmpList;
         } else {
-            this.certPathCheckers = new ArrayList<PKIXCertPathChecker>();
+            this.certPathCheckers = new ArrayList<>();
         }
     }
 
@@ -567,7 +566,7 @@
      * @see #setCertPathCheckers
      */
     public List<PKIXCertPathChecker> getCertPathCheckers() {
-        List<PKIXCertPathChecker> tmpList = new ArrayList<PKIXCertPathChecker>();
+        List<PKIXCertPathChecker> tmpList = new ArrayList<>();
         for (PKIXCertPathChecker ck : certPathCheckers) {
             tmpList.add((PKIXCertPathChecker)ck.clone());
         }
@@ -667,11 +666,11 @@
 
             // must clone these because addCertStore, et al. modify them
             if (certStores != null) {
-                copy.certStores = new ArrayList<CertStore>(certStores);
+                copy.certStores = new ArrayList<>(certStores);
             }
             if (certPathCheckers != null) {
                 copy.certPathCheckers =
-                    new ArrayList<PKIXCertPathChecker>(certPathCheckers.size());
+                    new ArrayList<>(certPathCheckers.size());
                 for (PKIXCertPathChecker checker : certPathCheckers) {
                     copy.certPathCheckers.add(
                                     (PKIXCertPathChecker)checker.clone());
--- a/jdk/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java	Mon Apr 27 09:17:39 2015 -0700
@@ -170,7 +170,7 @@
     {
         this.ocspExtensions = (extensions == null)
                               ? Collections.<Extension>emptyList()
-                              : new ArrayList<Extension>(extensions);
+                              : new ArrayList<>(extensions);
     }
 
     /**
@@ -232,7 +232,7 @@
     public void setOptions(Set<Option> options) {
         this.options = (options == null)
                        ? Collections.<Option>emptySet()
-                       : new HashSet<Option>(options);
+                       : new HashSet<>(options);
     }
 
     /**
--- a/jdk/src/java.base/share/classes/java/security/cert/X509CRLSelector.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/X509CRLSelector.java	Mon Apr 27 09:17:39 2015 -0700
@@ -124,8 +124,8 @@
             issuerX500Principals = null;
         } else {
             // clone
-            issuerX500Principals = new HashSet<X500Principal>(issuers);
-            issuerNames = new HashSet<Object>();
+            issuerX500Principals = new HashSet<>(issuers);
+            issuerNames = new HashSet<>();
             for (X500Principal p : issuerX500Principals) {
                 issuerNames.add(p.getEncoded());
             }
@@ -288,10 +288,10 @@
      */
     private void addIssuerNameInternal(Object name, X500Principal principal) {
         if (issuerNames == null) {
-            issuerNames = new HashSet<Object>();
+            issuerNames = new HashSet<>();
         }
         if (issuerX500Principals == null) {
-            issuerX500Principals = new HashSet<X500Principal>();
+            issuerX500Principals = new HashSet<>();
         }
         issuerNames.add(name);
         issuerX500Principals.add(principal);
@@ -311,7 +311,7 @@
     private static HashSet<Object> cloneAndCheckIssuerNames(Collection<?> names)
         throws IOException
     {
-        HashSet<Object> namesCopy = new HashSet<Object>();
+        HashSet<Object> namesCopy = new HashSet<>();
         Iterator<?> i = names.iterator();
         while (i.hasNext()) {
             Object nameObject = i.next();
@@ -363,7 +363,7 @@
      */
     private static HashSet<X500Principal> parseIssuerNames(Collection<Object> names)
     throws IOException {
-        HashSet<X500Principal> x500Principals = new HashSet<X500Principal>();
+        HashSet<X500Principal> x500Principals = new HashSet<>();
         for (Iterator<Object> t = names.iterator(); t.hasNext(); ) {
             Object nameObject = t.next();
             if (nameObject instanceof String) {
@@ -701,9 +701,9 @@
             X509CRLSelector copy = (X509CRLSelector)super.clone();
             if (issuerNames != null) {
                 copy.issuerNames =
-                        new HashSet<Object>(issuerNames);
+                        new HashSet<>(issuerNames);
                 copy.issuerX500Principals =
-                        new HashSet<X500Principal>(issuerX500Principals);
+                        new HashSet<>(issuerX500Principals);
             }
             return copy;
         } catch (CloneNotSupportedException e) {
--- a/jdk/src/java.base/share/classes/java/security/cert/X509CertSelector.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/security/cert/X509CertSelector.java	Mon Apr 27 09:17:39 2015 -0700
@@ -619,8 +619,8 @@
             keyPurposeOIDSet = null;
         } else {
             this.keyPurposeSet =
-                Collections.unmodifiableSet(new HashSet<String>(keyPurposeSet));
-            keyPurposeOIDSet = new HashSet<ObjectIdentifier>();
+                Collections.unmodifiableSet(new HashSet<>(keyPurposeSet));
+            keyPurposeOIDSet = new HashSet<>();
             for (String s : this.keyPurposeSet) {
                 keyPurposeOIDSet.add(new ObjectIdentifier(s));
             }
@@ -815,12 +815,12 @@
         // First, ensure that the name parses
         GeneralNameInterface tempName = makeGeneralNameInterface(type, name);
         if (subjectAlternativeNames == null) {
-            subjectAlternativeNames = new HashSet<List<?>>();
+            subjectAlternativeNames = new HashSet<>();
         }
         if (subjectAlternativeGeneralNames == null) {
-            subjectAlternativeGeneralNames = new HashSet<GeneralNameInterface>();
+            subjectAlternativeGeneralNames = new HashSet<>();
         }
-        List<Object> list = new ArrayList<Object>(2);
+        List<Object> list = new ArrayList<>(2);
         list.add(Integer.valueOf(type));
         list.add(name);
         subjectAlternativeNames.add(list);
@@ -845,7 +845,7 @@
      * @throws IOException if a parsing error occurs
      */
     private static Set<GeneralNameInterface> parseNames(Collection<List<?>> names) throws IOException {
-        Set<GeneralNameInterface> genNames = new HashSet<GeneralNameInterface>();
+        Set<GeneralNameInterface> genNames = new HashSet<>();
         for (List<?> nameList : names) {
             if (nameList.size() != 2) {
                 throw new IOException("name list size not 2");
@@ -1096,10 +1096,10 @@
         } else {
             // Snapshot set and parse it
             Set<String> tempSet = Collections.unmodifiableSet
-                                        (new HashSet<String>(certPolicySet));
+                                        (new HashSet<>(certPolicySet));
             /* Convert to Vector of ObjectIdentifiers */
             Iterator<String> i = tempSet.iterator();
-            Vector<CertificatePolicyId> polIdVector = new Vector<CertificatePolicyId>();
+            Vector<CertificatePolicyId> polIdVector = new Vector<>();
             while (i.hasNext()) {
                 Object o = i.next();
                 if (!(o instanceof String)) {
@@ -1267,10 +1267,10 @@
         // First, ensure that the name parses
         GeneralNameInterface tempName = makeGeneralNameInterface(type, name);
         if (pathToGeneralNames == null) {
-            pathToNames = new HashSet<List<?>>();
-            pathToGeneralNames = new HashSet<GeneralNameInterface>();
+            pathToNames = new HashSet<>();
+            pathToGeneralNames = new HashSet<>();
         }
-        List<Object> list = new ArrayList<Object>(2);
+        List<Object> list = new ArrayList<>(2);
         list.add(Integer.valueOf(type));
         list.add(name);
         pathToNames.add(list);
@@ -1671,10 +1671,10 @@
      */
     private static Set<List<?>> cloneAndCheckNames(Collection<List<?>> names) throws IOException {
         // Copy the Lists and Collection
-        Set<List<?>> namesCopy = new HashSet<List<?>>();
+        Set<List<?>> namesCopy = new HashSet<>();
         for (List<?> o : names)
         {
-            namesCopy.add(new ArrayList<Object>(o));
+            namesCopy.add(new ArrayList<>(o));
         }
 
         // Check the contents of the Lists and clone any byte arrays
@@ -2397,7 +2397,7 @@
              * Convert the Vector of PolicyInformation to a Vector
              * of CertificatePolicyIds for easier comparison.
              */
-            List<CertificatePolicyId> policyIDs = new ArrayList<CertificatePolicyId>(policies.size());
+            List<CertificatePolicyId> policyIDs = new ArrayList<>(policies.size());
             for (PolicyInformation info : policies) {
                 policyIDs.add(info.getPolicyIdentifier());
             }
--- a/jdk/src/java.base/share/classes/java/time/format/DateTimeParseContext.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/time/format/DateTimeParseContext.java	Mon Apr 27 09:17:39 2015 -0700
@@ -399,7 +399,7 @@
      */
     void addChronoChangedListener(Consumer<Chronology> listener) {
         if (chronoListeners == null) {
-            chronoListeners = new ArrayList<Consumer<Chronology>>();
+            chronoListeners = new ArrayList<>();
         }
         chronoListeners.add(listener);
     }
--- a/jdk/src/java.base/share/classes/java/time/zone/ZoneRulesProvider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/time/zone/ZoneRulesProvider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -141,7 +141,7 @@
         // if the property java.time.zone.DefaultZoneRulesProvider is
         // set then its value is the class name of the default provider
         final List<ZoneRulesProvider> loaded = new ArrayList<>();
-        AccessController.doPrivileged(new PrivilegedAction<Object>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Object run() {
                 String prop = System.getProperty("java.time.zone.DefaultZoneRulesProvider");
                 if (prop != null) {
--- a/jdk/src/java.base/share/classes/java/util/Calendar.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/Calendar.java	Mon Apr 27 09:17:39 2015 -0700
@@ -3579,7 +3579,7 @@
         ZoneInfo zi = null;
         try {
             zi = AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<ZoneInfo>() {
+                    new PrivilegedExceptionAction<>() {
                         @Override
                         public ZoneInfo run() throws Exception {
                             return (ZoneInfo) input.readObject();
--- a/jdk/src/java.base/share/classes/java/util/Currency.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/Currency.java	Mon Apr 27 09:17:39 2015 -0700
@@ -212,7 +212,7 @@
     private static final int VALID_FORMAT_VERSION = 2;
 
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Void run() {
                 try {
--- a/jdk/src/java.base/share/classes/java/util/ResourceBundle.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/ResourceBundle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -2655,7 +2655,7 @@
                 InputStream stream = null;
                 try {
                     stream = AccessController.doPrivileged(
-                        new PrivilegedExceptionAction<InputStream>() {
+                        new PrivilegedExceptionAction<>() {
                             public InputStream run() throws IOException {
                                 InputStream is = null;
                                 if (reloadFlag) {
--- a/jdk/src/java.base/share/classes/java/util/TimeZone.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/TimeZone.java	Mon Apr 27 09:17:39 2015 -0700
@@ -678,7 +678,7 @@
         assert tz != null;
 
         final String id = zoneID;
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
                 public Void run() {
                     System.setProperty("user.timezone", id);
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java	Mon Apr 27 09:17:39 2015 -0700
@@ -2411,7 +2411,7 @@
                 int j = ((am & s) << ASHIFT) + ABASE;
                 U.putOrderedObject(a, j, task);
                 U.putOrderedInt(q, QTOP, s + 1);
-                U.putOrderedInt(q, QLOCK, 0);
+                U.putIntVolatile(q, QLOCK, 0);
                 if (n <= 1)
                     signalWork(ws, q);
                 return;
--- a/jdk/src/java.base/share/classes/java/util/jar/JarFile.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/jar/JarFile.java	Mon Apr 27 09:17:39 2015 -0700
@@ -593,7 +593,7 @@
         if (includeUnsigned) {
             return unsignedEntryNames();
         } else {
-            return new Enumeration<String>() {
+            return new Enumeration<>() {
 
                 public boolean hasMoreElements() {
                     return false;
@@ -619,7 +619,7 @@
 
         // screen out entries which are never signed
         final Enumeration<? extends ZipEntry> enum_ = super.entries();
-        return new Enumeration<JarEntry>() {
+        return new Enumeration<>() {
 
             ZipEntry entry;
 
@@ -669,7 +669,7 @@
 
     private Enumeration<String> unsignedEntryNames() {
         final Enumeration<JarEntry> entries = entries();
-        return new Enumeration<String>() {
+        return new Enumeration<>() {
 
             String name;
 
--- a/jdk/src/java.base/share/classes/java/util/jar/JarVerifier.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/java/util/jar/JarVerifier.java	Mon Apr 27 09:17:39 2015 -0700
@@ -684,7 +684,7 @@
         final List<CodeSigner[]> signersReq = req;
         final Enumeration<String> enum2 = (matchUnsigned) ? unsignedEntryNames(jar) : emptyEnumeration;
 
-        return new Enumeration<String>() {
+        return new Enumeration<>() {
 
             String name;
 
@@ -726,7 +726,7 @@
         final Map<String, CodeSigner[]> map = new HashMap<>();
         map.putAll(signerMap());
         final Enumeration<? extends ZipEntry> enum_ = e;
-        return new Enumeration<JarEntry>() {
+        return new Enumeration<>() {
 
             Enumeration<String> signers = null;
             JarEntry entry;
@@ -786,7 +786,7 @@
     private Enumeration<String> unsignedEntryNames(JarFile jar) {
         final Map<String, CodeSigner[]> map = signerMap();
         final Enumeration<JarEntry> entries = jar.entries();
-        return new Enumeration<String>() {
+        return new Enumeration<>() {
 
             String name;
 
--- a/jdk/src/java.base/share/classes/javax/crypto/JceSecurity.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/crypto/JceSecurity.java	Mon Apr 27 09:17:39 2015 -0700
@@ -76,7 +76,7 @@
     static {
         try {
             AccessController.doPrivileged(
-                new PrivilegedExceptionAction<Void> () {
+                new PrivilegedExceptionAction<> () {
                     @Override
                     public Void run() throws Exception {
                         setupJurisdictionPolicies();
@@ -225,7 +225,7 @@
             URL url = codeBaseCacheRef.get(clazz);
             if (url == null) {
                 url = AccessController.doPrivileged(
-                    new PrivilegedAction<URL>() {
+                    new PrivilegedAction<>() {
                         @Override
                         public URL run() {
                             ProtectionDomain pd = clazz.getProtectionDomain();
--- a/jdk/src/java.base/share/classes/javax/crypto/JceSecurityManager.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/crypto/JceSecurityManager.java	Mon Apr 27 09:17:39 2015 -0700
@@ -66,7 +66,7 @@
         exemptPolicy = JceSecurity.getExemptPolicy();
         allPerm = CryptoAllPermission.INSTANCE;
         INSTANCE = AccessController.doPrivileged(
-                new PrivilegedAction<JceSecurityManager>() {
+                new PrivilegedAction<>() {
                     public JceSecurityManager run() {
                         return new JceSecurityManager();
                     }
--- a/jdk/src/java.base/share/classes/javax/net/ssl/KeyManagerFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/net/ssl/KeyManagerFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -63,7 +63,7 @@
      */
     public final static String getDefaultAlgorithm() {
         String type;
-        type = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        type = AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public String run() {
                 return Security.getProperty(
--- a/jdk/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -126,7 +126,7 @@
     }
 
     static String getSecurityProperty(final String name) {
-        return AccessController.doPrivileged(new PrivilegedAction<String>() {
+        return AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public String run() {
                 String s = java.security.Security.getProperty(name);
--- a/jdk/src/java.base/share/classes/javax/net/ssl/TrustManagerFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/net/ssl/TrustManagerFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -63,7 +63,7 @@
      */
     public final static String getDefaultAlgorithm() {
         String type;
-        type = AccessController.doPrivileged(new PrivilegedAction<String>() {
+        type = AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public String run() {
                 return Security.getProperty(
--- a/jdk/src/java.base/share/classes/javax/security/auth/Subject.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Subject.java	Mon Apr 27 09:17:39 2015 -0700
@@ -154,11 +154,11 @@
     public Subject() {
 
         this.principals = Collections.synchronizedSet
-                        (new SecureSet<Principal>(this, PRINCIPAL_SET));
+                        (new SecureSet<>(this, PRINCIPAL_SET));
         this.pubCredentials = Collections.synchronizedSet
-                        (new SecureSet<Object>(this, PUB_CREDENTIAL_SET));
+                        (new SecureSet<>(this, PUB_CREDENTIAL_SET));
         this.privCredentials = Collections.synchronizedSet
-                        (new SecureSet<Object>(this, PRIV_CREDENTIAL_SET));
+                        (new SecureSet<>(this, PRIV_CREDENTIAL_SET));
     }
 
     /**
@@ -206,11 +206,11 @@
         collectionNullClean(pubCredentials);
         collectionNullClean(privCredentials);
 
-        this.principals = Collections.synchronizedSet(new SecureSet<Principal>
+        this.principals = Collections.synchronizedSet(new SecureSet<>
                                 (this, PRINCIPAL_SET, principals));
-        this.pubCredentials = Collections.synchronizedSet(new SecureSet<Object>
+        this.pubCredentials = Collections.synchronizedSet(new SecureSet<>
                                 (this, PUB_CREDENTIAL_SET, pubCredentials));
-        this.privCredentials = Collections.synchronizedSet(new SecureSet<Object>
+        this.privCredentials = Collections.synchronizedSet(new SecureSet<>
                                 (this, PRIV_CREDENTIAL_SET, privCredentials));
         this.readOnly = readOnly;
     }
@@ -292,7 +292,7 @@
 
         // return the Subject from the DomainCombiner of the provided context
         return AccessController.doPrivileged
-            (new java.security.PrivilegedAction<Subject>() {
+            (new java.security.PrivilegedAction<>() {
             public Subject run() {
                 DomainCombiner dc = acc.getDomainCombiner();
                 if (!(dc instanceof SubjectDomainCombiner)) {
@@ -555,7 +555,7 @@
 
 
         return java.security.AccessController.doPrivileged
-            (new java.security.PrivilegedAction<AccessControlContext>() {
+            (new java.security.PrivilegedAction<>() {
             public AccessControlContext run() {
                 if (subject == null) {
                     return new AccessControlContext(acc, null);
@@ -801,7 +801,7 @@
             Set<Principal> thatPrincipals;
             synchronized(that.principals) {
                 // avoid deadlock from dual locks
-                thatPrincipals = new HashSet<Principal>(that.principals);
+                thatPrincipals = new HashSet<>(that.principals);
             }
             if (!principals.equals(thatPrincipals)) {
                 return false;
@@ -810,7 +810,7 @@
             Set<Object> thatPubCredentials;
             synchronized(that.pubCredentials) {
                 // avoid deadlock from dual locks
-                thatPubCredentials = new HashSet<Object>(that.pubCredentials);
+                thatPubCredentials = new HashSet<>(that.pubCredentials);
             }
             if (!pubCredentials.equals(thatPubCredentials)) {
                 return false;
@@ -819,7 +819,7 @@
             Set<Object> thatPrivCredentials;
             synchronized(that.privCredentials) {
                 // avoid deadlock from dual locks
-                thatPrivCredentials = new HashSet<Object>(that.privCredentials);
+                thatPrivCredentials = new HashSet<>(that.privCredentials);
             }
             if (!privCredentials.equals(thatPrivCredentials)) {
                 return false;
@@ -970,21 +970,21 @@
 
         // Rewrap the principals into a SecureSet
         try {
-            principals = Collections.synchronizedSet(new SecureSet<Principal>
+            principals = Collections.synchronizedSet(new SecureSet<>
                                 (this, PRINCIPAL_SET, inputPrincs));
         } catch (NullPointerException npe) {
             // Sometimes people deserialize the principals set only.
             // Subject is not accessible, so just don't fail.
             principals = Collections.synchronizedSet
-                        (new SecureSet<Principal>(this, PRINCIPAL_SET));
+                        (new SecureSet<>(this, PRINCIPAL_SET));
         }
 
         // The Credential {@code Set} is not serialized, but we do not
         // want the default deserialization routine to set it to null.
         this.pubCredentials = Collections.synchronizedSet
-                        (new SecureSet<Object>(this, PUB_CREDENTIAL_SET));
+                        (new SecureSet<>(this, PUB_CREDENTIAL_SET));
         this.privCredentials = Collections.synchronizedSet
-                        (new SecureSet<Object>(this, PRIV_CREDENTIAL_SET));
+                        (new SecureSet<>(this, PRIV_CREDENTIAL_SET));
     }
 
     /**
@@ -1497,7 +1497,7 @@
                 Object next;
                 if (which == Subject.PRIV_CREDENTIAL_SET) {
                     next = java.security.AccessController.doPrivileged
-                        (new java.security.PrivilegedAction<Object>() {
+                        (new java.security.PrivilegedAction<>() {
                         public Object run() {
                             return iterator.next();
                         }
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/Configuration.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/Configuration.java	Mon Apr 27 09:17:39 2015 -0700
@@ -229,7 +229,7 @@
             if (configuration == null) {
                 String config_class = null;
                 config_class = AccessController.doPrivileged
-                    (new PrivilegedAction<String>() {
+                    (new PrivilegedAction<>() {
                     public String run() {
                         return java.security.Security.getProperty
                                     ("login.configuration.provider");
@@ -242,7 +242,7 @@
                 try {
                     final String finalClass = config_class;
                     Configuration untrustedImpl = AccessController.doPrivileged(
-                            new PrivilegedExceptionAction<Configuration>() {
+                            new PrivilegedExceptionAction<>() {
                                 public Configuration run() throws ClassNotFoundException,
                                         InstantiationException,
                                         IllegalAccessException {
@@ -254,7 +254,7 @@
                                 }
                             });
                     AccessController.doPrivileged(
-                            new PrivilegedExceptionAction<Void>() {
+                            new PrivilegedExceptionAction<>() {
                                 public Void run() {
                                     setConfiguration(untrustedImpl);
                                     return null;
--- a/jdk/src/java.base/share/classes/javax/security/cert/X509Certificate.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/javax/security/cert/X509Certificate.java	Mon Apr 27 09:17:39 2015 -0700
@@ -142,7 +142,7 @@
 
     static {
         X509Provider = AccessController.doPrivileged(
-            new PrivilegedAction<String>() {
+            new PrivilegedAction<>() {
                 public String run() {
                     return Security.getProperty(X509_PROVIDER);
                 }
--- a/jdk/src/java.base/share/classes/sun/misc/Cleaner.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/misc/Cleaner.java	Mon Apr 27 09:17:39 2015 -0700
@@ -142,7 +142,7 @@
         try {
             thunk.run();
         } catch (final Throwable x) {
-            AccessController.doPrivileged(new PrivilegedAction<Void>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Void run() {
                         if (System.err != null)
                             new Error("Cleaner terminated abnormally", x)
--- a/jdk/src/java.base/share/classes/sun/misc/URLClassPath.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/misc/URLClassPath.java	Mon Apr 27 09:17:39 2015 -0700
@@ -97,16 +97,16 @@
     }
 
     /* The original search path of URLs. */
-    private ArrayList<URL> path = new ArrayList<URL>();
+    private ArrayList<URL> path = new ArrayList<>();
 
     /* The stack of unopened URLs */
-    Stack<URL> urls = new Stack<URL>();
+    Stack<URL> urls = new Stack<>();
 
     /* The resulting search path of Loaders */
-    ArrayList<Loader> loaders = new ArrayList<Loader>();
+    ArrayList<Loader> loaders = new ArrayList<>();
 
     /* Map of each URL opened to its corresponding Loader */
-    HashMap<String, Loader> lmap = new HashMap<String, Loader>();
+    HashMap<String, Loader> lmap = new HashMap<>();
 
     /* The jar protocol handler to use when creating new URLs */
     private URLStreamHandler jarHandler;
@@ -142,7 +142,7 @@
         if (closed) {
             return Collections.emptyList();
         }
-        List<IOException> result = new LinkedList<IOException>();
+        List<IOException> result = new LinkedList<>();
         for (Loader loader : loaders) {
             try {
                 loader.close();
@@ -234,7 +234,7 @@
      */
     public Enumeration<URL> findResources(final String name,
                                      final boolean check) {
-        return new Enumeration<URL>() {
+        return new Enumeration<>() {
             private int index = 0;
             private URL url = null;
 
@@ -281,7 +281,7 @@
      */
     public Enumeration<Resource> getResources(final String name,
                                     final boolean check) {
-        return new Enumeration<Resource>() {
+        return new Enumeration<>() {
             private int index = 0;
             private Resource res = null;
 
@@ -374,7 +374,7 @@
     private Loader getLoader(final URL url) throws IOException {
         try {
             return java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedExceptionAction<Loader>() {
+                new java.security.PrivilegedExceptionAction<>() {
                 public Loader run() throws IOException {
                     String file = url.getFile();
                     if (file != null && file.endsWith("/")) {
@@ -689,7 +689,7 @@
             if (jar == null) {
                 try {
                     java.security.AccessController.doPrivileged(
-                        new java.security.PrivilegedExceptionAction<Void>() {
+                        new java.security.PrivilegedExceptionAction<>() {
                             public Void run() throws IOException {
                                 if (DEBUG) {
                                     System.err.println("Opening " + csu);
@@ -870,7 +870,7 @@
             if (index == null)
                 return null;
 
-            HashSet<String> visited = new HashSet<String>();
+            HashSet<String> visited = new HashSet<>();
             return getResource(name, check, visited);
         }
 
@@ -912,7 +912,7 @@
                              * before
                              */
                             newLoader = AccessController.doPrivileged(
-                                new PrivilegedExceptionAction<JarLoader>() {
+                                new PrivilegedExceptionAction<>() {
                                     public JarLoader run() throws IOException {
                                         return new JarLoader(url, handler,
                                             lmap);
--- a/jdk/src/java.base/share/classes/sun/net/NetworkClient.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/NetworkClient.java	Mon Apr 27 09:17:39 2015 -0700
@@ -69,7 +69,7 @@
         final String encs[] = { null };
 
         AccessController.doPrivileged(
-                new PrivilegedAction<Void>() {
+                new PrivilegedAction<>() {
                     public Void run() {
                         vals[0] = Integer.getInteger("sun.net.client.defaultReadTimeout", 0).intValue();
                         vals[1] = Integer.getInteger("sun.net.client.defaultConnectTimeout", 0).intValue();
@@ -154,7 +154,7 @@
         if (proxy != null) {
             if (proxy.type() == Proxy.Type.SOCKS) {
                 s = AccessController.doPrivileged(
-                    new PrivilegedAction<Socket>() {
+                    new PrivilegedAction<>() {
                         public Socket run() {
                                        return new Socket(proxy);
                                    }});
@@ -201,7 +201,7 @@
         if (serverSocket == null)
             throw new IOException("not connected");
         return  AccessController.doPrivileged(
-                        new PrivilegedAction<InetAddress>() {
+                        new PrivilegedAction<>() {
                             public InetAddress run() {
                                 return serverSocket.getLocalAddress();
 
--- a/jdk/src/java.base/share/classes/sun/net/ProgressMonitor.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/ProgressMonitor.java	Mon Apr 27 09:17:39 2015 -0700
@@ -64,7 +64,7 @@
      * Return a snapshot of the ProgressSource list
      */
     public ArrayList<ProgressSource> getProgressSources()    {
-        ArrayList<ProgressSource> snapshot = new ArrayList<ProgressSource>();
+        ArrayList<ProgressSource> snapshot = new ArrayList<>();
 
         try {
             synchronized(progressSourceList)    {
@@ -114,7 +114,7 @@
         if (progressListenerList.size() > 0)
         {
             // Notify progress listener if there is progress change
-            ArrayList<ProgressListener> listeners = new ArrayList<ProgressListener>();
+            ArrayList<ProgressListener> listeners = new ArrayList<>();
 
             // Copy progress listeners to another list to avoid holding locks
             synchronized(progressListenerList) {
@@ -151,7 +151,7 @@
         if (progressListenerList.size() > 0)
         {
             // Notify progress listener if there is progress change
-            ArrayList<ProgressListener> listeners = new ArrayList<ProgressListener>();
+            ArrayList<ProgressListener> listeners = new ArrayList<>();
 
             // Copy progress listeners to another list to avoid holding locks
             synchronized(progressListenerList) {
@@ -183,7 +183,7 @@
         if (progressListenerList.size() > 0)
         {
             // Notify progress listener if there is progress change
-            ArrayList<ProgressListener> listeners = new ArrayList<ProgressListener>();
+            ArrayList<ProgressListener> listeners = new ArrayList<>();
 
             // Copy progress listeners to another list to avoid holding locks
             synchronized(progressListenerList)  {
--- a/jdk/src/java.base/share/classes/sun/net/www/MessageHeader.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/MessageHeader.java	Mon Apr 27 09:17:39 2015 -0700
@@ -244,7 +244,7 @@
     public synchronized Map<String, List<String>> filterAndAddHeaders(
             String[] excludeList, Map<String, List<String>>  include) {
         boolean skipIt = false;
-        Map<String, List<String>> m = new HashMap<String, List<String>>();
+        Map<String, List<String>> m = new HashMap<>();
         for (int i = nkeys; --i >= 0;) {
             if (excludeList != null) {
                 // check if the key is in the excludeList.
@@ -260,7 +260,7 @@
             if (!skipIt) {
                 List<String> l = m.get(keys[i]);
                 if (l == null) {
-                    l = new ArrayList<String>();
+                    l = new ArrayList<>();
                     m.put(keys[i], l);
                 }
                 l.add(values[i]);
@@ -274,7 +274,7 @@
                 for (Map.Entry<String,List<String>> entry: include.entrySet()) {
                 List<String> l = m.get(entry.getKey());
                 if (l == null) {
-                    l = new ArrayList<String>();
+                    l = new ArrayList<>();
                     m.put(entry.getKey(), l);
                 }
                 l.addAll(entry.getValue());
--- a/jdk/src/java.base/share/classes/sun/net/www/http/HttpCapture.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/http/HttpCapture.java	Mon Apr 27 09:17:39 2015 -0700
@@ -64,7 +64,7 @@
     private static synchronized void init() {
         initialized = true;
         String rulesFile = java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<String>() {
+            new java.security.PrivilegedAction<>() {
                 public String run() {
                     return NetProperties.get("sun.net.http.captureRules");
                 }
@@ -85,8 +85,8 @@
                         String[] s = line.split(",");
                         if (s.length == 2) {
                             if (patterns == null) {
-                                patterns = new ArrayList<Pattern>();
-                                capFiles = new ArrayList<String>();
+                                patterns = new ArrayList<>();
+                                capFiles = new ArrayList<>();
                             }
                             patterns.add(Pattern.compile(s[0].trim()));
                             capFiles.add(s[1].trim());
--- a/jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java	Mon Apr 27 09:17:39 2015 -0700
@@ -479,7 +479,7 @@
     {
         try {
             java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedExceptionAction<Void>() {
+                new java.security.PrivilegedExceptionAction<>() {
                     public Void run() throws IOException {
                     openServer(server.getHostString(), server.getPort());
                     return null;
--- a/jdk/src/java.base/share/classes/sun/net/www/http/KeepAliveCache.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/http/KeepAliveCache.java	Mon Apr 27 09:17:39 2015 -0700
@@ -94,7 +94,7 @@
              */
             final KeepAliveCache cache = this;
             java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction<Void>() {
+                new java.security.PrivilegedAction<>() {
                 public Void run() {
                     keepAliveTimer = new InnocuousThread(cache, "Keep-Alive-Timer");
                     keepAliveTimer.setDaemon(true);
@@ -178,7 +178,7 @@
                 long currentTime = System.currentTimeMillis();
 
                 ArrayList<KeepAliveKey> keysToRemove
-                    = new ArrayList<KeepAliveKey>();
+                    = new ArrayList<>();
 
                 for (KeepAliveKey key : keySet()) {
                     ClientVector v = get(key);
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java	Mon Apr 27 09:17:39 2015 -0700
@@ -122,7 +122,7 @@
         this.dontUseNegotiate = dontUseNegotiate;
         rsp = response;
         this.hdrname = hdrname;
-        schemes = new HashMap<String,SchemeMapValue>();
+        schemes = new HashMap<>();
         parse();
     }
 
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/http/DigestAuthentication.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/http/DigestAuthentication.java	Mon Apr 27 09:17:39 2015 -0700
@@ -62,7 +62,7 @@
 
     static {
         Boolean b = AccessController.doPrivileged(
-            new PrivilegedAction<Boolean>() {
+            new PrivilegedAction<>() {
                 public Boolean run() {
                     return NetProperties.getBoolean(compatPropName);
                 }
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	Mon Apr 27 09:17:39 2015 -0700
@@ -244,7 +244,7 @@
                 new sun.security.action.GetBooleanAction(
                     "sun.net.http.allowRestrictedHeaders")).booleanValue();
         if (!allowRestrictedHeaders) {
-            restrictedHeaderSet = new HashSet<String>(restrictedHeaders.length);
+            restrictedHeaderSet = new HashSet<>(restrictedHeaders.length);
             for (int i=0; i < restrictedHeaders.length; i++) {
                 restrictedHeaderSet.add(restrictedHeaders[i].toLowerCase());
             }
@@ -413,7 +413,7 @@
                             final URL url,
                             final RequestorType authType) {
         return java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<PasswordAuthentication>() {
+            new java.security.PrivilegedAction<>() {
                 public PasswordAuthentication run() {
                     if (logger.isLoggable(PlatformLogger.Level.FINEST)) {
                         logger.finest("Requesting Authentication: host =" + host + " url = " + url);
@@ -817,14 +817,14 @@
             } catch (SecurityException se) { /* swallow exception */ }
         } else {
             cookieHandler = java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction<CookieHandler>() {
+                new java.security.PrivilegedAction<>() {
                 public CookieHandler run() {
                     return CookieHandler.getDefault();
                 }
             });
         }
         cacheHandler = java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<ResponseCache>() {
+            new java.security.PrivilegedAction<>() {
                 public ResponseCache run() {
                 return ResponseCache.getDefault();
             }
@@ -909,7 +909,7 @@
         final boolean result[] = {false};
 
         java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                 try {
                     InetAddress a1 = InetAddress.getByName(h1);
@@ -954,7 +954,7 @@
         try {
             // lookup hostname and use IP address if available
             host = AccessController.doPrivileged(
-                new PrivilegedExceptionAction<String>() {
+                new PrivilegedExceptionAction<>() {
                     public String run() throws IOException {
                             InetAddress addr = InetAddress.getByName(hostarg);
                             return addr.getHostAddress();
@@ -984,7 +984,7 @@
         if (p != null) {
             try {
                 AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<Void>() {
+                    new PrivilegedExceptionAction<>() {
                         public Void run() throws IOException {
                             plainConnect0();
                             return null;
@@ -1086,7 +1086,7 @@
                  */
                 ProxySelector sel =
                     java.security.AccessController.doPrivileged(
-                        new java.security.PrivilegedAction<ProxySelector>() {
+                        new java.security.PrivilegedAction<>() {
                             public ProxySelector run() {
                                      return ProxySelector.getDefault();
                                  }
@@ -1245,7 +1245,7 @@
         if (p != null) {
             try {
                 return AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<OutputStream>() {
+                    new PrivilegedExceptionAction<>() {
                         public OutputStream run() throws IOException {
                             return getOutputStream0();
                         }
@@ -1423,7 +1423,7 @@
         if (p != null) {
             try {
                 return AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<InputStream>() {
+                    new PrivilegedExceptionAction<>() {
                         public InputStream run() throws IOException {
                             return getInputStream0();
                         }
@@ -1877,7 +1877,7 @@
             final Object[] args = { rememberedException.getMessage() };
             IOException chainedException =
                 java.security.AccessController.doPrivileged(
-                    new java.security.PrivilegedExceptionAction<IOException>() {
+                    new java.security.PrivilegedExceptionAction<>() {
                         public IOException run() throws Exception {
                             return (IOException)
                                 rememberedException.getClass()
@@ -2204,7 +2204,7 @@
                     try {
                         final String finalHost = host;
                         addr = java.security.AccessController.doPrivileged(
-                            new java.security.PrivilegedExceptionAction<InetAddress>() {
+                            new java.security.PrivilegedExceptionAction<>() {
                                 public InetAddress run()
                                     throws java.net.UnknownHostException {
                                     return InetAddress.getByName(finalHost);
@@ -2566,7 +2566,7 @@
         if (p != null) {
             try {
                 return AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<Boolean>() {
+                    new PrivilegedExceptionAction<>() {
                         public Boolean run() throws IOException {
                             return followRedirect0(loc, stat, locUrl0);
                         }
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/URLJarFile.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/URLJarFile.java	Mon Apr 27 09:17:39 2015 -0700
@@ -213,7 +213,7 @@
             /* get the stream before asserting privileges */
             try (final InputStream in = url.openConnection().getInputStream()) {
                 result = AccessController.doPrivileged(
-                    new PrivilegedExceptionAction<JarFile>() {
+                    new PrivilegedExceptionAction<>() {
                         public JarFile run() throws IOException {
                             Path tmpFile = Files.createTempFile("jar_cache", null);
                             try {
--- a/jdk/src/java.base/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -76,7 +76,7 @@
         this.pool = pool;
 
         if (pool.isFixedThreadPool()) {
-            taskQueue = new ConcurrentLinkedQueue<Runnable>();
+            taskQueue = new ConcurrentLinkedQueue<>();
         } else {
             taskQueue = null;   // not used
         }
@@ -115,7 +115,7 @@
     }
 
     private void startInternalThread(final Runnable task) {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Void run() {
                 // internal threads should not be visible to application so
@@ -246,7 +246,7 @@
     abstract void shutdownHandlerTasks();
 
     private void shutdownExecutors() {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Void run() {
                 pool.executor().shutdown();
                 timeoutExecutor.shutdown();
@@ -323,7 +323,7 @@
             task = new Runnable() {
                 @Override
                 public void run() {
-                    AccessController.doPrivileged(new PrivilegedAction<Void>() {
+                    AccessController.doPrivileged(new PrivilegedAction<>() {
                         @Override
                         public Void run() {
                             delegate.run();
--- a/jdk/src/java.base/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -228,7 +228,7 @@
         static final Set<SocketOption<?>> defaultOptions = defaultOptions();
 
         private static Set<SocketOption<?>> defaultOptions() {
-            HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(2);
+            HashSet<SocketOption<?>> set = new HashSet<>(2);
             set.add(StandardSocketOptions.SO_RCVBUF);
             set.add(StandardSocketOptions.SO_REUSEADDR);
             return Collections.unmodifiableSet(set);
--- a/jdk/src/java.base/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -503,7 +503,7 @@
         static final Set<SocketOption<?>> defaultOptions = defaultOptions();
 
         private static Set<SocketOption<?>> defaultOptions() {
-            HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(5);
+            HashSet<SocketOption<?>> set = new HashSet<>(5);
             set.add(StandardSocketOptions.SO_SNDBUF);
             set.add(StandardSocketOptions.SO_RCVBUF);
             set.add(StandardSocketOptions.SO_KEEPALIVE);
--- a/jdk/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -294,7 +294,7 @@
         static final Set<SocketOption<?>> defaultOptions = defaultOptions();
 
         private static Set<SocketOption<?>> defaultOptions() {
-            HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(8);
+            HashSet<SocketOption<?>> set = new HashSet<>(8);
             set.add(StandardSocketOptions.SO_SNDBUF);
             set.add(StandardSocketOptions.SO_RCVBUF);
             set.add(StandardSocketOptions.SO_REUSEADDR);
--- a/jdk/src/java.base/share/classes/sun/nio/ch/MembershipKeyImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/MembershipKeyImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -184,7 +184,7 @@
 
             // created blocked set if required and add source address
             if (blockedSet == null)
-                blockedSet = new HashSet<InetAddress>();
+                blockedSet = new HashSet<>();
             blockedSet.add(toBlock);
         }
         return this;
--- a/jdk/src/java.base/share/classes/sun/nio/ch/MembershipRegistry.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/MembershipRegistry.java	Mon Apr 27 09:17:39 2015 -0700
@@ -84,13 +84,13 @@
         InetAddress group = key.group();
         List<MembershipKeyImpl> keys;
         if (groups == null) {
-            groups = new HashMap<InetAddress,List<MembershipKeyImpl>>();
+            groups = new HashMap<>();
             keys = null;
         } else {
             keys = groups.get(group);
         }
         if (keys == null) {
-            keys = new LinkedList<MembershipKeyImpl>();
+            keys = new LinkedList<>();
             groups.put(group, keys);
         }
         keys.add(key);
--- a/jdk/src/java.base/share/classes/sun/nio/ch/SelectorImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/SelectorImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -52,8 +52,8 @@
 
     protected SelectorImpl(SelectorProvider sp) {
         super(sp);
-        keys = new HashSet<SelectionKey>();
-        selectedKeys = new HashSet<SelectionKey>();
+        keys = new HashSet<>();
+        selectedKeys = new HashSet<>();
         if (Util.atBugLevel("1.4")) {
             publicKeys = keys;
             publicSelectedKeys = selectedKeys;
--- a/jdk/src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -182,7 +182,7 @@
         static final Set<SocketOption<?>> defaultOptions = defaultOptions();
 
         private static Set<SocketOption<?>> defaultOptions() {
-            HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(2);
+            HashSet<SocketOption<?>> set = new HashSet<>(2);
             set.add(StandardSocketOptions.SO_RCVBUF);
             set.add(StandardSocketOptions.SO_REUSEADDR);
             set.add(StandardSocketOptions.IP_TOS);
--- a/jdk/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -229,7 +229,7 @@
         static final Set<SocketOption<?>> defaultOptions = defaultOptions();
 
         private static Set<SocketOption<?>> defaultOptions() {
-            HashSet<SocketOption<?>> set = new HashSet<SocketOption<?>>(8);
+            HashSet<SocketOption<?>> set = new HashSet<>(8);
             set.add(StandardSocketOptions.SO_SNDBUF);
             set.add(StandardSocketOptions.SO_RCVBUF);
             set.add(StandardSocketOptions.SO_KEEPALIVE);
--- a/jdk/src/java.base/share/classes/sun/nio/cs/CharsetMapping.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/cs/CharsetMapping.java	Mon Apr 27 09:17:39 2015 -0700
@@ -135,7 +135,7 @@
 
     // init the CharsetMapping object from the .dat binary file
     public static CharsetMapping get(final InputStream is) {
-        return AccessController.doPrivileged(new PrivilegedAction<CharsetMapping>() {
+        return AccessController.doPrivileged(new PrivilegedAction<>() {
             public CharsetMapping run() {
                 return new CharsetMapping().load(is);
             }
--- a/jdk/src/java.base/share/classes/sun/nio/fs/AbstractPoller.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/fs/AbstractPoller.java	Mon Apr 27 09:17:39 2015 -0700
@@ -48,7 +48,7 @@
     private boolean shutdown;
 
     protected AbstractPoller() {
-        this.requestList = new LinkedList<Request>();
+        this.requestList = new LinkedList<>();
         this.shutdown = false;
     }
 
@@ -57,7 +57,7 @@
      */
     public void start() {
         final Runnable thisRunnable = this;
-        AccessController.doPrivileged(new PrivilegedAction<Object>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Object run() {
                 Thread thr = new ManagedLocalsThread(thisRunnable);
--- a/jdk/src/java.base/share/classes/sun/nio/fs/AbstractWatchKey.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/nio/fs/AbstractWatchKey.java	Mon Apr 27 09:17:39 2015 -0700
@@ -70,8 +70,8 @@
         this.watcher = watcher;
         this.dir = dir;
         this.state = State.READY;
-        this.events = new ArrayList<WatchEvent<?>>();
-        this.lastModifyEvents = new HashMap<Object,WatchEvent<?>>();
+        this.events = new ArrayList<>();
+        this.lastModifyEvents = new HashMap<>();
     }
 
     final AbstractWatchService watcher() {
@@ -146,7 +146,7 @@
 
             // non-repeated event
             Event<Object> ev =
-                new Event<Object>((WatchEvent.Kind<Object>)kind, context);
+                new Event<>((WatchEvent.Kind<Object>)kind, context);
             if (isModify) {
                 lastModifyEvents.put(context, ev);
             } else if (kind == StandardWatchEventKinds.OVERFLOW) {
@@ -163,7 +163,7 @@
     public final List<WatchEvent<?>> pollEvents() {
         synchronized (this) {
             List<WatchEvent<?>> result = events;
-            events = new ArrayList<WatchEvent<?>>();
+            events = new ArrayList<>();
             lastModifyEvents.clear();
             return result;
         }
--- a/jdk/src/java.base/share/classes/sun/reflect/ReflectionFactory.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/reflect/ReflectionFactory.java	Mon Apr 27 09:17:39 2015 -0700
@@ -375,7 +375,7 @@
     private static void checkInitted() {
         if (initted) return;
         AccessController.doPrivileged(
-            new PrivilegedAction<Void>() {
+            new PrivilegedAction<>() {
                 public Void run() {
                     // Tests to ensure the system properties table is fully
                     // initialized. This is needed because reflection code is
--- a/jdk/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -106,16 +106,16 @@
             throw new IllegalArgumentException("Not an annotation type");
 
         Method[] methods =
-            AccessController.doPrivileged(new PrivilegedAction<Method[]>() {
+            AccessController.doPrivileged(new PrivilegedAction<>() {
                 public Method[] run() {
                     // Initialize memberTypes and defaultValues
                     return annotationClass.getDeclaredMethods();
                 }
             });
 
-        memberTypes = new HashMap<String,Class<?>>(methods.length+1, 1.0f);
-        memberDefaults = new HashMap<String, Object>(0);
-        members = new HashMap<String, Method>(methods.length+1, 1.0f);
+        memberTypes = new HashMap<>(methods.length+1, 1.0f);
+        memberDefaults = new HashMap<>(0);
+        members = new HashMap<>(methods.length+1, 1.0f);
 
         for (Method method : methods) {
             if (method.getParameterTypes().length != 0)
--- a/jdk/src/java.base/share/classes/sun/security/pkcs/PKCS7.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/pkcs/PKCS7.java	Mon Apr 27 09:17:39 2015 -0700
@@ -530,7 +530,7 @@
         // CRLs (optional)
         if (crls != null && crls.length != 0) {
             // cast to X509CRLImpl[] since X509CRLImpl implements DerEncoder
-            Set<X509CRLImpl> implCRLs = new HashSet<X509CRLImpl>(crls.length);
+            Set<X509CRLImpl> implCRLs = new HashSet<>(crls.length);
             for (X509CRL crl: crls) {
                 if (crl instanceof X509CRLImpl)
                     implCRLs.add((X509CRLImpl) crl);
@@ -590,7 +590,7 @@
     public SignerInfo[] verify(byte[] bytes)
     throws NoSuchAlgorithmException, SignatureException {
 
-        Vector<SignerInfo> intResult = new Vector<SignerInfo>();
+        Vector<SignerInfo> intResult = new Vector<>();
         for (int i = 0; i < signerInfos.length; i++) {
 
             SignerInfo signerInfo = verify(signerInfos[i], bytes);
--- a/jdk/src/java.base/share/classes/sun/security/pkcs/PKCS9Attributes.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/pkcs/PKCS9Attributes.java	Mon Apr 27 09:17:39 2015 -0700
@@ -85,8 +85,7 @@
                            DerInputStream in) throws IOException {
         if (permittedAttributes != null) {
             this.permittedAttributes =
-                new Hashtable<ObjectIdentifier, ObjectIdentifier>(
-                                                permittedAttributes.length);
+                new Hashtable<>(permittedAttributes.length);
 
             for (int i = 0; i < permittedAttributes.length; i++)
                 this.permittedAttributes.put(permittedAttributes[i],
--- a/jdk/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java	Mon Apr 27 09:17:39 2015 -0700
@@ -237,7 +237,7 @@
         if (userCert == null)
             return null;
 
-        ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>();
+        ArrayList<X509Certificate> certList = new ArrayList<>();
         certList.add(userCert);
 
         X509Certificate[] pkcsCerts = block.getCertificates();
--- a/jdk/src/java.base/share/classes/sun/security/provider/SeedGenerator.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/provider/SeedGenerator.java	Mon Apr 27 09:17:39 2015 -0700
@@ -165,7 +165,7 @@
         md.update(b);
 
         java.security.AccessController.doPrivileged
-            (new java.security.PrivilegedAction<Void>() {
+            (new java.security.PrivilegedAction<>() {
                 @Override
                 public Void run() {
                     try {
@@ -295,7 +295,7 @@
 
             final ThreadGroup[] finalsg = new ThreadGroup[1];
             Thread t = java.security.AccessController.doPrivileged
-                (new java.security.PrivilegedAction<Thread>() {
+                (new java.security.PrivilegedAction<>() {
                         @Override
                         public Thread run() {
                             ThreadGroup parent, group =
@@ -501,7 +501,7 @@
             final URL device = new URL(deviceName);
             try {
                 seedStream = java.security.AccessController.doPrivileged
-                    (new java.security.PrivilegedExceptionAction<InputStream>() {
+                    (new java.security.PrivilegedExceptionAction<>() {
                         @Override
                         public InputStream run() throws IOException {
                             /*
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/Builder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/Builder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -102,8 +102,8 @@
 
     /**
      * Verifies whether the input certificate completes the path.
-     * When building forward, a trust anchor will complete the path.
-     * When building reverse, the target certificate will complete the path.
+     * When building in the forward direction, a trust anchor will
+     * complete the path.
      *
      * @param cert the certificate to test
      * @return a boolean value indicating whether the cert completes the path.
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/PKIX.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/PKIX.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 package sun.security.provider.certpath;
 
 import java.security.InvalidAlgorithmParameterException;
-import java.security.KeyStore;
 import java.security.PublicKey;
 import java.security.cert.*;
 import java.security.interfaces.DSAPublicKey;
@@ -194,7 +193,6 @@
 
     static class BuilderParams extends ValidatorParams {
         private PKIXBuilderParameters params;
-        private boolean buildForward = true;
         private List<CertStore> stores;
         private X500Principal targetSubject;
 
@@ -213,10 +211,6 @@
                     + "targetCertConstraints parameter must be an "
                     + "X509CertSelector");
             }
-            if (params instanceof SunCertPathBuilderParameters) {
-                buildForward =
-                    ((SunCertPathBuilderParameters)params).getBuildForward();
-            }
             this.params = params;
             this.targetSubject = getTargetSubject(
                 certStores(), (X509CertSelector)targetCertConstraints());
@@ -230,7 +224,6 @@
             return stores;
         }
         int maxPathLength() { return params.getMaxPathLength(); }
-        boolean buildForward() { return buildForward; }
         PKIXBuilderParameters params() { return params; }
         X500Principal targetSubject() { return targetSubject; }
 
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/ReverseBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,551 +0,0 @@
-/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.provider.certpath;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.security.Principal;
-import java.security.cert.CertificateException;
-import java.security.cert.CertPathValidatorException;
-import java.security.cert.CertStore;
-import java.security.cert.CertStoreException;
-import java.security.cert.PKIXBuilderParameters;
-import java.security.cert.PKIXCertPathChecker;
-import java.security.cert.PKIXParameters;
-import java.security.cert.PKIXReason;
-import java.security.cert.TrustAnchor;
-import java.security.cert.X509Certificate;
-import java.security.cert.X509CertSelector;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Set;
-
-import javax.security.auth.x500.X500Principal;
-
-import sun.security.provider.certpath.PKIX.BuilderParams;
-import sun.security.util.Debug;
-import sun.security.x509.Extension;
-import static sun.security.x509.PKIXExtensions.*;
-import sun.security.x509.X500Name;
-import sun.security.x509.X509CertImpl;
-import sun.security.x509.PolicyMappingsExtension;
-
-/**
- * This class represents a reverse builder, which is able to retrieve
- * matching certificates from CertStores and verify a particular certificate
- * against a ReverseState.
- *
- * @since       1.4
- * @author      Sean Mullan
- * @author      Yassir Elley
- */
-
-class ReverseBuilder extends Builder {
-
-    private Debug debug = Debug.getInstance("certpath");
-
-    private final Set<String> initPolicies;
-
-    /**
-     * Initialize the builder with the input parameters.
-     *
-     * @param params the parameter set used to build a certification path
-     */
-    ReverseBuilder(BuilderParams buildParams) {
-        super(buildParams);
-
-        Set<String> initialPolicies = buildParams.initialPolicies();
-        initPolicies = new HashSet<String>();
-        if (initialPolicies.isEmpty()) {
-            // if no initialPolicies are specified by user, set
-            // initPolicies to be anyPolicy by default
-            initPolicies.add(PolicyChecker.ANY_POLICY);
-        } else {
-            initPolicies.addAll(initialPolicies);
-        }
-    }
-
-    /**
-     * Retrieves all certs from the specified CertStores that satisfy the
-     * requirements specified in the parameters and the current
-     * PKIX state (name constraints, policy constraints, etc).
-     *
-     * @param currentState the current state.
-     *        Must be an instance of <code>ReverseState</code>
-     * @param certStores list of CertStores
-     */
-    @Override
-    Collection<X509Certificate> getMatchingCerts
-        (State currState, List<CertStore> certStores)
-        throws CertStoreException, CertificateException, IOException
-    {
-        ReverseState currentState = (ReverseState) currState;
-
-        if (debug != null)
-            debug.println("In ReverseBuilder.getMatchingCerts.");
-
-        /*
-         * The last certificate could be an EE or a CA certificate
-         * (we may be building a partial certification path or
-         * establishing trust in a CA).
-         *
-         * Try the EE certs before the CA certs. It will be more
-         * common to build a path to an end entity.
-         */
-        Collection<X509Certificate> certs =
-            getMatchingEECerts(currentState, certStores);
-        certs.addAll(getMatchingCACerts(currentState, certStores));
-
-        return certs;
-    }
-
-    /*
-     * Retrieves all end-entity certificates which satisfy constraints
-     * and requirements specified in the parameters and PKIX state.
-     */
-    private Collection<X509Certificate> getMatchingEECerts
-        (ReverseState currentState, List<CertStore> certStores)
-        throws CertStoreException, CertificateException, IOException {
-
-        /*
-         * Compose a CertSelector to filter out
-         * certs which do not satisfy requirements.
-         *
-         * First, retrieve clone of current target cert constraints, and
-         * then add more selection criteria based on current validation state.
-         */
-        X509CertSelector sel = (X509CertSelector) targetCertConstraints.clone();
-
-        /*
-         * Match on issuer (subject of previous cert)
-         */
-        sel.setIssuer(currentState.subjectDN);
-
-        /*
-         * Match on certificate validity date.
-         */
-        sel.setCertificateValid(buildParams.date());
-
-        /*
-         * Policy processing optimizations
-         */
-        if (currentState.explicitPolicy == 0)
-            sel.setPolicy(getMatchingPolicies());
-
-        /*
-         * If previous cert has a subject key identifier extension,
-         * use it to match on authority key identifier extension.
-         */
-        /*if (currentState.subjKeyId != null) {
-          AuthorityKeyIdentifierExtension authKeyId = new AuthorityKeyIdentifierExtension(
-                (KeyIdentifier) currentState.subjKeyId.get(SubjectKeyIdentifierExtension.KEY_ID),
-                null, null);
-        sel.setAuthorityKeyIdentifier(authKeyId.getExtensionValue());
-        }*/
-
-        /*
-         * Require EE certs
-         */
-        sel.setBasicConstraints(-2);
-
-        /* Retrieve matching certs from CertStores */
-        HashSet<X509Certificate> eeCerts = new HashSet<>();
-        addMatchingCerts(sel, certStores, eeCerts, true);
-
-        if (debug != null) {
-            debug.println("ReverseBuilder.getMatchingEECerts got "
-                          + eeCerts.size() + " certs.");
-        }
-        return eeCerts;
-    }
-
-    /*
-     * Retrieves all CA certificates which satisfy constraints
-     * and requirements specified in the parameters and PKIX state.
-     */
-    private Collection<X509Certificate> getMatchingCACerts
-        (ReverseState currentState, List<CertStore> certStores)
-        throws CertificateException, CertStoreException, IOException {
-
-        /*
-         * Compose a CertSelector to filter out
-         * certs which do not satisfy requirements.
-         */
-        X509CertSelector sel = new X509CertSelector();
-
-        /*
-         * Match on issuer (subject of previous cert)
-         */
-        sel.setIssuer(currentState.subjectDN);
-
-        /*
-         * Match on certificate validity date.
-         */
-        sel.setCertificateValid(buildParams.date());
-
-        /*
-         * Match on target subject name (checks that current cert's
-         * name constraints permit it to certify target).
-         * (4 is the integer type for DIRECTORY name).
-         */
-        byte[] subject = targetCertConstraints.getSubjectAsBytes();
-        if (subject != null) {
-            sel.addPathToName(4, subject);
-        } else {
-            X509Certificate cert = targetCertConstraints.getCertificate();
-            if (cert != null) {
-                sel.addPathToName(4,
-                                  cert.getSubjectX500Principal().getEncoded());
-            }
-        }
-
-        /*
-         * Policy processing optimizations
-         */
-        if (currentState.explicitPolicy == 0)
-            sel.setPolicy(getMatchingPolicies());
-
-        /*
-         * If previous cert has a subject key identifier extension,
-         * use it to match on authority key identifier extension.
-         */
-        /*if (currentState.subjKeyId != null) {
-          AuthorityKeyIdentifierExtension authKeyId = new AuthorityKeyIdentifierExtension(
-                (KeyIdentifier) currentState.subjKeyId.get(SubjectKeyIdentifierExtension.KEY_ID),
-                                null, null);
-          sel.setAuthorityKeyIdentifier(authKeyId.getExtensionValue());
-        }*/
-
-        /*
-         * Require CA certs
-         */
-        sel.setBasicConstraints(0);
-
-        /* Retrieve matching certs from CertStores */
-        ArrayList<X509Certificate> reverseCerts = new ArrayList<>();
-        addMatchingCerts(sel, certStores, reverseCerts, true);
-
-        /* Sort remaining certs using name constraints */
-        Collections.sort(reverseCerts, new PKIXCertComparator());
-
-        if (debug != null)
-            debug.println("ReverseBuilder.getMatchingCACerts got " +
-                          reverseCerts.size() + " certs.");
-        return reverseCerts;
-    }
-
-    /*
-     * This inner class compares 2 PKIX certificates according to which
-     * should be tried first when building a path to the target. For
-     * now, the algorithm is to look at name constraints in each cert and those
-     * which constrain the path closer to the target should be
-     * ranked higher. Later, we may want to consider other components,
-     * such as key identifiers.
-     */
-    class PKIXCertComparator implements Comparator<X509Certificate> {
-
-        private Debug debug = Debug.getInstance("certpath");
-
-        @Override
-        public int compare(X509Certificate cert1, X509Certificate cert2) {
-
-            /*
-             * if either cert certifies the target, always
-             * put at head of list.
-             */
-            X500Principal targetSubject = buildParams.targetSubject();
-            if (cert1.getSubjectX500Principal().equals(targetSubject)) {
-                return -1;
-            }
-            if (cert2.getSubjectX500Principal().equals(targetSubject)) {
-                return 1;
-            }
-
-            int targetDist1;
-            int targetDist2;
-            try {
-                X500Name targetSubjectName = X500Name.asX500Name(targetSubject);
-                targetDist1 = Builder.targetDistance(
-                    null, cert1, targetSubjectName);
-                targetDist2 = Builder.targetDistance(
-                    null, cert2, targetSubjectName);
-            } catch (IOException e) {
-                if (debug != null) {
-                    debug.println("IOException in call to Builder.targetDistance");
-                    e.printStackTrace();
-                }
-                throw new ClassCastException
-                    ("Invalid target subject distinguished name");
-            }
-
-            if (targetDist1 == targetDist2)
-                return 0;
-
-            if (targetDist1 == -1)
-                return 1;
-
-            if (targetDist1 < targetDist2)
-                return -1;
-
-            return 1;
-        }
-    }
-
-    /**
-     * Verifies a matching certificate.
-     *
-     * This method executes any of the validation steps in the PKIX path validation
-     * algorithm which were not satisfied via filtering out non-compliant
-     * certificates with certificate matching rules.
-     *
-     * If the last certificate is being verified (the one whose subject
-     * matches the target subject, then the steps in Section 6.1.4 of the
-     * Certification Path Validation algorithm are NOT executed,
-     * regardless of whether or not the last cert is an end-entity
-     * cert or not. This allows callers to certify CA certs as
-     * well as EE certs.
-     *
-     * @param cert the certificate to be verified
-     * @param currentState the current state against which the cert is verified
-     * @param certPathList the certPathList generated thus far
-     */
-    @Override
-    void verifyCert(X509Certificate cert, State currState,
-        List<X509Certificate> certPathList)
-        throws GeneralSecurityException
-    {
-        if (debug != null) {
-            debug.println("ReverseBuilder.verifyCert(SN: "
-                + Debug.toHexString(cert.getSerialNumber())
-                + "\n  Subject: " + cert.getSubjectX500Principal() + ")");
-        }
-
-        ReverseState currentState = (ReverseState) currState;
-
-        /* we don't perform any validation of the trusted cert */
-        if (currentState.isInitial()) {
-            return;
-        }
-
-        // Don't bother to verify untrusted certificate more.
-        currentState.untrustedChecker.check(cert,
-                                    Collections.<String>emptySet());
-
-        /*
-         * check for looping - abort a loop if
-         * ((we encounter the same certificate twice) AND
-         * ((policyMappingInhibited = true) OR (no policy mapping
-         * extensions can be found between the occurrences of the same
-         * certificate)))
-         * in order to facilitate the check to see if there are
-         * any policy mapping extensions found between the occurrences
-         * of the same certificate, we reverse the certpathlist first
-         */
-        if ((certPathList != null) && (!certPathList.isEmpty())) {
-            List<X509Certificate> reverseCertList = new ArrayList<>();
-            for (X509Certificate c : certPathList) {
-                reverseCertList.add(0, c);
-            }
-
-            boolean policyMappingFound = false;
-            for (X509Certificate cpListCert : reverseCertList) {
-                X509CertImpl cpListCertImpl = X509CertImpl.toImpl(cpListCert);
-                PolicyMappingsExtension policyMappingsExt =
-                        cpListCertImpl.getPolicyMappingsExtension();
-                if (policyMappingsExt != null) {
-                    policyMappingFound = true;
-                }
-                if (debug != null)
-                    debug.println("policyMappingFound = " + policyMappingFound);
-                if (cert.equals(cpListCert)) {
-                    if ((buildParams.policyMappingInhibited()) ||
-                        (!policyMappingFound)){
-                        if (debug != null)
-                            debug.println("loop detected!!");
-                        throw new CertPathValidatorException("loop detected");
-                    }
-                }
-            }
-        }
-
-        /* check if target cert */
-        boolean finalCert = cert.getSubjectX500Principal().equals(buildParams.targetSubject());
-
-        /* check if CA cert */
-        boolean caCert = (cert.getBasicConstraints() != -1 ? true : false);
-
-        /* if there are more certs to follow, verify certain constraints */
-        if (!finalCert) {
-
-            /* check if CA cert */
-            if (!caCert)
-                throw new CertPathValidatorException("cert is NOT a CA cert");
-
-            /* If the certificate was not self-issued, verify that
-             * remainingCerts is greater than zero
-             */
-            if ((currentState.remainingCACerts <= 0) && !X509CertImpl.isSelfIssued(cert)) {
-                    throw new CertPathValidatorException
-                        ("pathLenConstraint violated, path too long", null,
-                         null, -1, PKIXReason.PATH_TOO_LONG);
-            }
-
-            /*
-             * Check keyUsage extension (only if CA cert and not final cert)
-             */
-            KeyChecker.verifyCAKeyUsage(cert);
-
-        } else {
-
-            /*
-             * If final cert, check that it satisfies specified target
-             * constraints
-             */
-            if (targetCertConstraints.match(cert) == false) {
-                throw new CertPathValidatorException("target certificate " +
-                    "constraints check failed");
-            }
-        }
-
-        /*
-         * Check revocation.
-         */
-        if (buildParams.revocationEnabled() && currentState.revChecker != null) {
-            currentState.revChecker.check(cert, Collections.<String>emptySet());
-        }
-
-        /* Check name constraints if this is not a self-issued cert */
-        if (finalCert || !X509CertImpl.isSelfIssued(cert)){
-            if (currentState.nc != null) {
-                try {
-                    if (!currentState.nc.verify(cert)){
-                        throw new CertPathValidatorException
-                            ("name constraints check failed", null, null, -1,
-                             PKIXReason.INVALID_NAME);
-                    }
-                } catch (IOException ioe) {
-                    throw new CertPathValidatorException(ioe);
-                }
-            }
-        }
-
-        /*
-         * Check policy
-         */
-        X509CertImpl certImpl = X509CertImpl.toImpl(cert);
-        currentState.rootNode = PolicyChecker.processPolicies
-            (currentState.certIndex, initPolicies,
-            currentState.explicitPolicy, currentState.policyMapping,
-            currentState.inhibitAnyPolicy,
-            buildParams.policyQualifiersRejected(), currentState.rootNode,
-            certImpl, finalCert);
-
-        /*
-         * Check CRITICAL private extensions
-         */
-        Set<String> unresolvedCritExts = cert.getCriticalExtensionOIDs();
-        if (unresolvedCritExts == null) {
-            unresolvedCritExts = Collections.<String>emptySet();
-        }
-
-        /*
-         * Check that the signature algorithm is not disabled.
-         */
-        currentState.algorithmChecker.check(cert, unresolvedCritExts);
-
-        for (PKIXCertPathChecker checker : currentState.userCheckers) {
-            checker.check(cert, unresolvedCritExts);
-        }
-
-        /*
-         * Look at the remaining extensions and remove any ones we have
-         * already checked. If there are any left, throw an exception!
-         */
-        if (!unresolvedCritExts.isEmpty()) {
-            unresolvedCritExts.remove(BasicConstraints_Id.toString());
-            unresolvedCritExts.remove(NameConstraints_Id.toString());
-            unresolvedCritExts.remove(CertificatePolicies_Id.toString());
-            unresolvedCritExts.remove(PolicyMappings_Id.toString());
-            unresolvedCritExts.remove(PolicyConstraints_Id.toString());
-            unresolvedCritExts.remove(InhibitAnyPolicy_Id.toString());
-            unresolvedCritExts.remove(SubjectAlternativeName_Id.toString());
-            unresolvedCritExts.remove(KeyUsage_Id.toString());
-            unresolvedCritExts.remove(ExtendedKeyUsage_Id.toString());
-
-            if (!unresolvedCritExts.isEmpty())
-                throw new CertPathValidatorException
-                    ("Unrecognized critical extension(s)", null, null, -1,
-                     PKIXReason.UNRECOGNIZED_CRIT_EXT);
-        }
-
-        /*
-         * Check signature.
-         */
-        if (buildParams.sigProvider() != null) {
-            cert.verify(currentState.pubKey, buildParams.sigProvider());
-        } else {
-            cert.verify(currentState.pubKey);
-        }
-    }
-
-    /**
-     * Verifies whether the input certificate completes the path.
-     * This checks whether the cert is the target certificate.
-     *
-     * @param cert the certificate to test
-     * @return a boolean value indicating whether the cert completes the path.
-     */
-    @Override
-    boolean isPathCompleted(X509Certificate cert) {
-        return cert.getSubjectX500Principal().equals(buildParams.targetSubject());
-    }
-
-    /** Adds the certificate to the certPathList
-     *
-     * @param cert the certificate to be added
-     * @param certPathList the certification path list
-     */
-    @Override
-    void addCertToPath(X509Certificate cert,
-        LinkedList<X509Certificate> certPathList) {
-        certPathList.addLast(cert);
-    }
-
-    /** Removes final certificate from the certPathList
-     *
-     * @param certPathList the certification path list
-     */
-    @Override
-    void removeFinalCertFromPath(LinkedList<X509Certificate> certPathList) {
-        certPathList.removeLast();
-    }
-}
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/ReverseState.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,406 +0,0 @@
-/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.provider.certpath;
-
-import java.io.IOException;
-import java.security.PublicKey;
-import java.security.cert.CertificateException;
-import java.security.cert.CertPathValidatorException;
-import java.security.cert.PKIXCertPathChecker;
-import java.security.cert.PKIXRevocationChecker;
-import java.security.cert.TrustAnchor;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-import javax.security.auth.x500.X500Principal;
-
-import sun.security.provider.certpath.PKIX.BuilderParams;
-import sun.security.util.Debug;
-import sun.security.x509.NameConstraintsExtension;
-import sun.security.x509.SubjectKeyIdentifierExtension;
-import sun.security.x509.X509CertImpl;
-
-/**
- * A specification of a reverse PKIX validation state
- * which is initialized by each build and updated each time a
- * certificate is added to the current path.
- * @since       1.4
- * @author      Sean Mullan
- * @author      Yassir Elley
- */
-
-class ReverseState implements State {
-
-    private static final Debug debug = Debug.getInstance("certpath");
-
-    /* The subject DN of the last cert in the path */
-    X500Principal subjectDN;
-
-    /* The subject public key of the last cert */
-    PublicKey pubKey;
-
-    /* The subject key identifier extension (if any) of the last cert */
-    SubjectKeyIdentifierExtension subjKeyId;
-
-    /* The PKIX constrained/excluded subtrees state variable */
-    NameConstraintsExtension nc;
-
-    /* The PKIX explicit policy, policy mapping, and inhibit_any-policy
-       state variables */
-    int explicitPolicy;
-    int policyMapping;
-    int inhibitAnyPolicy;
-    int certIndex;
-    PolicyNodeImpl rootNode;
-
-    /* The number of remaining CA certs which may follow in the path.
-     * -1: previous cert was an EE cert
-     * 0: only EE certs may follow.
-     * >0 and <Integer.MAX_VALUE:no more than this number of CA certs may follow
-     * Integer.MAX_VALUE: unlimited
-     */
-    int remainingCACerts;
-
-    /* The list of user-defined checkers retrieved from the PKIXParameters
-     * instance */
-    ArrayList<PKIXCertPathChecker> userCheckers;
-
-    /* Flag indicating if state is initial (path is just starting) */
-    private boolean init = true;
-
-    /* the checker used for revocation status */
-    RevocationChecker revChecker;
-
-    /* the algorithm checker */
-    AlgorithmChecker algorithmChecker;
-
-    /* the untrusted certificates checker */
-    UntrustedChecker untrustedChecker;
-
-    /* the trust anchor used to validate the path */
-    TrustAnchor trustAnchor;
-
-    /* Flag indicating if current cert can vouch for the CRL for
-     * the next cert
-     */
-    boolean crlSign = true;
-
-    /**
-     * Returns a boolean flag indicating if the state is initial
-     * (just starting)
-     *
-     * @return boolean flag indicating if the state is initial (just starting)
-     */
-    @Override
-    public boolean isInitial() {
-        return init;
-    }
-
-    /**
-     * Display state for debugging purposes
-     */
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("State [");
-        sb.append("\n  subjectDN of last cert: ").append(subjectDN);
-        sb.append("\n  subjectKeyIdentifier: ").append
-                 (String.valueOf(subjKeyId));
-        sb.append("\n  nameConstraints: ").append(String.valueOf(nc));
-        sb.append("\n  certIndex: ").append(certIndex);
-        sb.append("\n  explicitPolicy: ").append(explicitPolicy);
-        sb.append("\n  policyMapping:  ").append(policyMapping);
-        sb.append("\n  inhibitAnyPolicy:  ").append(inhibitAnyPolicy);
-        sb.append("\n  rootNode: ").append(rootNode);
-        sb.append("\n  remainingCACerts: ").append(remainingCACerts);
-        sb.append("\n  crlSign: ").append(crlSign);
-        sb.append("\n  init: ").append(init);
-        sb.append("\n]\n");
-        return sb.toString();
-    }
-
-    /**
-     * Initialize the state.
-     *
-     * @param buildParams builder parameters
-     */
-    public void initState(BuilderParams buildParams)
-        throws CertPathValidatorException
-    {
-        /*
-         * Initialize number of remainingCACerts.
-         * Note that -1 maxPathLen implies unlimited.
-         * 0 implies only an EE cert is acceptable.
-         */
-        int maxPathLen = buildParams.maxPathLength();
-        remainingCACerts = (maxPathLen == -1) ? Integer.MAX_VALUE
-                                              : maxPathLen;
-
-        /* Initialize explicit policy state variable */
-        if (buildParams.explicitPolicyRequired()) {
-            explicitPolicy = 0;
-        } else {
-            // unconstrained if maxPathLen is -1,
-            // otherwise, we want to initialize this to the value of the
-            // longest possible path + 1 (i.e. maxpathlen + finalcert + 1)
-            explicitPolicy = (maxPathLen == -1) ? maxPathLen : maxPathLen + 2;
-        }
-
-        /* Initialize policy mapping state variable */
-        if (buildParams.policyMappingInhibited()) {
-            policyMapping = 0;
-        } else {
-            policyMapping = (maxPathLen == -1) ? maxPathLen : maxPathLen + 2;
-        }
-
-        /* Initialize inhibit any policy state variable */
-        if (buildParams.anyPolicyInhibited()) {
-            inhibitAnyPolicy = 0;
-        } else {
-            inhibitAnyPolicy = (maxPathLen == -1) ? maxPathLen : maxPathLen + 2;
-        }
-
-        /* Initialize certIndex */
-        certIndex = 1;
-
-        /* Initialize policy tree */
-        Set<String> initExpPolSet = new HashSet<>(1);
-        initExpPolSet.add(PolicyChecker.ANY_POLICY);
-
-        rootNode = new PolicyNodeImpl(null, PolicyChecker.ANY_POLICY, null,
-                                      false, initExpPolSet, false);
-
-        /*
-         * Initialize each user-defined checker
-         * Shallow copy the checkers
-         */
-        userCheckers = new ArrayList<>(buildParams.certPathCheckers());
-        /* initialize each checker (just in case) */
-        for (PKIXCertPathChecker checker : userCheckers) {
-            checker.init(false);
-        }
-
-        /* Start by trusting the cert to sign CRLs */
-        crlSign = true;
-
-        init = true;
-    }
-
-    /**
-     * Update the state with the specified trust anchor.
-     *
-     * @param anchor the most-trusted CA
-     * @param buildParams builder parameters
-     */
-    public void updateState(TrustAnchor anchor, BuilderParams buildParams)
-        throws CertificateException, IOException, CertPathValidatorException
-    {
-        trustAnchor = anchor;
-        X509Certificate trustedCert = anchor.getTrustedCert();
-        if (trustedCert != null) {
-            updateState(trustedCert);
-        } else {
-            X500Principal caName = anchor.getCA();
-            updateState(anchor.getCAPublicKey(), caName);
-        }
-
-        // The user specified AlgorithmChecker and RevocationChecker may not be
-        // able to set the trust anchor until now.
-        boolean revCheckerAdded = false;
-        for (PKIXCertPathChecker checker : userCheckers) {
-            if (checker instanceof AlgorithmChecker) {
-                ((AlgorithmChecker)checker).trySetTrustAnchor(anchor);
-            } else if (checker instanceof PKIXRevocationChecker) {
-                if (revCheckerAdded) {
-                    throw new CertPathValidatorException(
-                        "Only one PKIXRevocationChecker can be specified");
-                }
-                // if it's our own, initialize it
-                if (checker instanceof RevocationChecker) {
-                    ((RevocationChecker)checker).init(anchor, buildParams);
-                }
-                ((PKIXRevocationChecker)checker).init(false);
-                revCheckerAdded = true;
-            }
-        }
-
-        // only create a RevocationChecker if revocation is enabled and
-        // a PKIXRevocationChecker has not already been added
-        if (buildParams.revocationEnabled() && !revCheckerAdded) {
-            revChecker = new RevocationChecker(anchor, buildParams);
-            revChecker.init(false);
-        }
-
-        init = false;
-    }
-
-    /**
-     * Update the state. This method is used when the most-trusted CA is
-     * a trusted public-key and caName, instead of a trusted cert.
-     *
-     * @param pubKey the public key of the trusted CA
-     * @param subjectDN the subject distinguished name of the trusted CA
-     */
-    private void updateState(PublicKey pubKey, X500Principal subjectDN) {
-
-        /* update subject DN */
-        this.subjectDN = subjectDN;
-
-        /* update subject public key */
-        this.pubKey = pubKey;
-    }
-
-    /**
-     * Update the state with the next certificate added to the path.
-     *
-     * @param cert the certificate which is used to update the state
-     */
-    public void updateState(X509Certificate cert)
-        throws CertificateException, IOException, CertPathValidatorException {
-
-        if (cert == null) {
-            return;
-        }
-
-        /* update subject DN */
-        subjectDN = cert.getSubjectX500Principal();
-
-        /* check for key needing to inherit alg parameters */
-        X509CertImpl icert = X509CertImpl.toImpl(cert);
-        PublicKey newKey = cert.getPublicKey();
-        if (PKIX.isDSAPublicKeyWithoutParams(newKey)) {
-            newKey = BasicChecker.makeInheritedParamsKey(newKey, pubKey);
-        }
-
-        /* update subject public key */
-        pubKey = newKey;
-
-        /*
-         * if this is a trusted cert (init == true), then we
-         * don't update any of the remaining fields
-         */
-        if (init) {
-            init = false;
-            return;
-        }
-
-        /* update subject key identifier */
-        subjKeyId = icert.getSubjectKeyIdentifierExtension();
-
-        /* update crlSign */
-        crlSign = RevocationChecker.certCanSignCrl(cert);
-
-        /* update current name constraints */
-        if (nc != null) {
-            nc.merge(icert.getNameConstraintsExtension());
-        } else {
-            nc = icert.getNameConstraintsExtension();
-            if (nc != null) {
-                // Make sure we do a clone here, because we're probably
-                // going to modify this object later and we don't want to
-                // be sharing it with a Certificate object!
-                nc = (NameConstraintsExtension) nc.clone();
-            }
-        }
-
-        /* update policy state variables */
-        explicitPolicy =
-            PolicyChecker.mergeExplicitPolicy(explicitPolicy, icert, false);
-        policyMapping =
-            PolicyChecker.mergePolicyMapping(policyMapping, icert);
-        inhibitAnyPolicy =
-            PolicyChecker.mergeInhibitAnyPolicy(inhibitAnyPolicy, icert);
-        certIndex++;
-
-        /*
-         * Update remaining CA certs
-         */
-        remainingCACerts =
-            ConstraintsChecker.mergeBasicConstraints(cert, remainingCACerts);
-
-        init = false;
-    }
-
-    /**
-     * Returns a boolean flag indicating if a key lacking necessary key
-     * algorithm parameters has been encountered.
-     *
-     * @return boolean flag indicating if key lacking parameters encountered.
-     */
-    @Override
-    public boolean keyParamsNeeded() {
-        /* when building in reverse, we immediately get parameters needed
-         * or else throw an exception
-         */
-        return false;
-    }
-
-    /*
-     * Clone current state. The state is cloned as each cert is
-     * added to the path. This is necessary if backtracking occurs,
-     * and a prior state needs to be restored.
-     *
-     * Note that this is a SMART clone. Not all fields are fully copied,
-     * because some of them (e.g., subjKeyId) will
-     * not have their contents modified by subsequent calls to updateState.
-     */
-    @Override
-    @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly
-    public Object clone() {
-        try {
-            ReverseState clonedState = (ReverseState) super.clone();
-
-            /* clone checkers, if cloneable */
-            clonedState.userCheckers =
-                        (ArrayList<PKIXCertPathChecker>)userCheckers.clone();
-            ListIterator<PKIXCertPathChecker> li =
-                        clonedState.userCheckers.listIterator();
-            while (li.hasNext()) {
-                PKIXCertPathChecker checker = li.next();
-                if (checker instanceof Cloneable) {
-                    li.set((PKIXCertPathChecker)checker.clone());
-                }
-            }
-
-            /* make copy of name constraints */
-            if (nc != null) {
-                clonedState.nc = (NameConstraintsExtension) nc.clone();
-            }
-
-            /* make copy of policy tree */
-            if (rootNode != null) {
-                clonedState.rootNode = rootNode.copyTree();
-            }
-
-            return clonedState;
-        } catch (CloneNotSupportedException e) {
-            throw new InternalError(e.toString(), e);
-        }
-    }
-}
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -35,8 +35,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.LinkedList;
 import java.util.Set;
@@ -47,8 +45,7 @@
 import sun.security.util.Debug;
 
 /**
- * This class is able to build certification paths in either the forward
- * or reverse directions.
+ * This class builds certification paths in the forward direction.
  *
  * <p> If successful, it returns a certification path which has successfully
  * satisfied all the constraints and requirements specified in the
@@ -102,10 +99,8 @@
     /**
      * Attempts to build a certification path using the Sun build
      * algorithm from a trusted anchor(s) to a target subject, which must both
-     * be specified in the input parameter set. By default, this method will
-     * attempt to build in the forward direction. In order to build in the
-     * reverse direction, the caller needs to pass in an instance of
-     * SunCertPathBuilderParameters with the buildForward flag set to false.
+     * be specified in the input parameter set. This method will
+     * attempt to build in the forward direction: from the target to the CA.
      *
      * <p>The certification path that is constructed is validated
      * according to the PKIX specification.
@@ -162,11 +157,7 @@
         policyTreeResult = null;
         LinkedList<X509Certificate> certPathList = new LinkedList<>();
         try {
-            if (buildParams.buildForward()) {
-                buildForward(adjList, certPathList, searchAllCertStores);
-            } else {
-                buildReverse(adjList, certPathList);
-            }
+            buildForward(adjList, certPathList, searchAllCertStores);
         } catch (GeneralSecurityException | IOException e) {
             if (debug != null) {
                 debug.println("SunCertPathBuilder.engineBuild() exception in "
@@ -210,81 +201,6 @@
     }
 
     /*
-     * Private build reverse method.
-     */
-    private void buildReverse(List<List<Vertex>> adjacencyList,
-                              LinkedList<X509Certificate> certPathList)
-        throws GeneralSecurityException, IOException
-    {
-        if (debug != null) {
-            debug.println("SunCertPathBuilder.buildReverse()...");
-            debug.println("SunCertPathBuilder.buildReverse() InitialPolicies: "
-                + buildParams.initialPolicies());
-        }
-
-        ReverseState currentState = new ReverseState();
-        /* Initialize adjacency list */
-        adjacencyList.clear();
-        adjacencyList.add(new LinkedList<Vertex>());
-
-        /*
-         * Perform a search using each trust anchor, until a valid
-         * path is found
-         */
-        Iterator<TrustAnchor> iter = buildParams.trustAnchors().iterator();
-        while (iter.hasNext()) {
-            TrustAnchor anchor = iter.next();
-
-            /* check if anchor satisfies target constraints */
-            if (anchorIsTarget(anchor, buildParams.targetCertConstraints())) {
-                this.trustAnchor = anchor;
-                this.pathCompleted = true;
-                this.finalPublicKey = anchor.getTrustedCert().getPublicKey();
-                break;
-            }
-
-            // skip anchor if it contains a DSA key with no DSA params
-            X509Certificate trustedCert = anchor.getTrustedCert();
-            PublicKey pubKey = trustedCert != null ? trustedCert.getPublicKey()
-                                                   : anchor.getCAPublicKey();
-
-            if (PKIX.isDSAPublicKeyWithoutParams(pubKey)) {
-                continue;
-            }
-
-            /* Initialize current state */
-            currentState.initState(buildParams);
-            currentState.updateState(anchor, buildParams);
-
-            currentState.algorithmChecker = new AlgorithmChecker(anchor);
-            currentState.untrustedChecker = new UntrustedChecker();
-            try {
-                depthFirstSearchReverse(null, currentState,
-                                        new ReverseBuilder(buildParams),
-                                        adjacencyList, certPathList);
-            } catch (GeneralSecurityException | IOException e) {
-                // continue on error if more anchors to try
-                if (iter.hasNext())
-                    continue;
-                else
-                    throw e;
-            }
-
-            // break out of loop if search is successful
-            if (pathCompleted) {
-                break;
-            }
-        }
-
-        if (debug != null) {
-            debug.println("SunCertPathBuilder.buildReverse() returned from "
-                + "depthFirstSearchReverse()");
-            debug.println("SunCertPathBuilder.buildReverse() "
-                + "certPathList.size: " + certPathList.size());
-        }
-    }
-
-    /*
      * Private build forward method.
      */
     private void buildForward(List<List<Vertex>> adjacencyList,
@@ -632,147 +548,6 @@
     }
 
     /*
-     * This method performs a depth first search for a certification
-     * path while building reverse which meets the requirements set in
-     * the parameters object.
-     * It uses an adjacency list to store all certificates which were
-     * tried (i.e. at one time added to the path - they may not end up in
-     * the final path if backtracking occurs). This information can
-     * be used later to debug or demo the build.
-     *
-     * See "Data Structure and Algorithms, by Aho, Hopcroft, and Ullman"
-     * for an explanation of the DFS algorithm.
-     *
-     * @param dN the distinguished name being currently searched for certs
-     * @param currentState the current PKIX validation state
-     */
-    private void depthFirstSearchReverse(X500Principal dN,
-                                         ReverseState currentState,
-                                         ReverseBuilder builder,
-                                         List<List<Vertex>> adjList,
-                                         LinkedList<X509Certificate> cpList)
-        throws GeneralSecurityException, IOException
-    {
-        if (debug != null)
-            debug.println("SunCertPathBuilder.depthFirstSearchReverse(" + dN
-                + ", " + currentState.toString() + ")");
-
-        /*
-         * Find all the certificates issued by dN which
-         * satisfy the PKIX certification path constraints.
-         */
-        Collection<X509Certificate> certs =
-            builder.getMatchingCerts(currentState, buildParams.certStores());
-        List<Vertex> vertices = addVertices(certs, adjList);
-        if (debug != null)
-            debug.println("SunCertPathBuilder.depthFirstSearchReverse(): "
-                + "certs.size=" + vertices.size());
-
-        /*
-         * For each cert in the collection, verify anything
-         * that hasn't been checked yet (signature, revocation, etc)
-         * and check for loops. Call depthFirstSearchReverse()
-         * recursively for each good cert.
-         */
-        for (Vertex vertex : vertices) {
-            /**
-             * Restore state to currentState each time through the loop.
-             * This is important because some of the user-defined
-             * checkers modify the state, which MUST be restored if
-             * the cert eventually fails to lead to the target and
-             * the next matching cert is tried.
-             */
-            ReverseState nextState = (ReverseState) currentState.clone();
-            X509Certificate cert = vertex.getCertificate();
-            try {
-                builder.verifyCert(cert, nextState, cpList);
-            } catch (GeneralSecurityException gse) {
-                if (debug != null)
-                    debug.println("SunCertPathBuilder.depthFirstSearchReverse()"
-                        + ": validation failed: " + gse);
-                vertex.setThrowable(gse);
-                continue;
-            }
-
-            /*
-             * Certificate is good, add it to the path (if it isn't a
-             * self-signed cert) and update state
-             */
-            if (!currentState.isInitial())
-                builder.addCertToPath(cert, cpList);
-            // save trust anchor
-            this.trustAnchor = currentState.trustAnchor;
-
-            /*
-             * Check if path is completed, return ASAP if so.
-             */
-            if (builder.isPathCompleted(cert)) {
-                if (debug != null)
-                    debug.println("SunCertPathBuilder.depthFirstSearchReverse()"
-                        + ": path completed!");
-                pathCompleted = true;
-
-                PolicyNodeImpl rootNode = nextState.rootNode;
-
-                if (rootNode == null)
-                    policyTreeResult = null;
-                else {
-                    policyTreeResult = rootNode.copyTree();
-                    ((PolicyNodeImpl)policyTreeResult).setImmutable();
-                }
-
-                /*
-                 * Extract and save the final target public key
-                 */
-                finalPublicKey = cert.getPublicKey();
-                if (PKIX.isDSAPublicKeyWithoutParams(finalPublicKey)) {
-                    finalPublicKey =
-                        BasicChecker.makeInheritedParamsKey
-                            (finalPublicKey, currentState.pubKey);
-                }
-
-                return;
-            }
-
-            /* Update the PKIX state */
-            nextState.updateState(cert);
-
-            /*
-             * Append an entry for cert in adjacency list and
-             * set index for current vertex.
-             */
-            adjList.add(new LinkedList<Vertex>());
-            vertex.setIndex(adjList.size() - 1);
-
-            /* recursively search for matching certs at next dN */
-            depthFirstSearchReverse(cert.getSubjectX500Principal(), nextState,
-                                    builder, adjList, cpList);
-
-            /*
-             * If path has been completed, return ASAP!
-             */
-            if (pathCompleted) {
-                return;
-            } else {
-                /*
-                 * If we get here, it means we have searched all possible
-                 * certs issued by the dN w/o finding any matching certs. This
-                 * means we have to backtrack to the previous cert in the path
-                 * and try some other paths.
-                 */
-                if (debug != null)
-                    debug.println("SunCertPathBuilder.depthFirstSearchReverse()"
-                        + ": backtracking");
-                if (!currentState.isInitial())
-                    builder.removeFinalCertFromPath(cpList);
-            }
-        }
-        if (debug != null)
-            debug.println("SunCertPathBuilder.depthFirstSearchReverse() all "
-                + "certs in this adjacency list checked");
-    }
-
-    /*
      * Adds a collection of matching certificates to the
      * adjacency list.
      */
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.provider.certpath;
-
-import java.security.InvalidAlgorithmParameterException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.cert.*;
-import java.util.Set;
-
-/**
- * This class specifies the set of parameters used as input for the Sun
- * certification path build algorithm. It is identical to PKIXBuilderParameters
- * with the addition of a <code>buildForward</code> parameter which allows
- * the caller to specify whether or not the path should be constructed in
- * the forward direction.
- *
- * The default for the <code>buildForward</code> parameter is
- * true, which means that the build algorithm should construct paths
- * from the target subject back to the trusted anchor.
- *
- * @since       1.4
- * @author      Sean Mullan
- * @author      Yassir Elley
- */
-public class SunCertPathBuilderParameters extends PKIXBuilderParameters {
-
-    private boolean buildForward = true;
-
-    /**
-     * Creates an instance of <code>SunCertPathBuilderParameters</code> with the
-     * specified parameter values.
-     *
-     * @param trustAnchors a <code>Set</code> of <code>TrustAnchor</code>s
-     * @param targetConstraints a <code>CertSelector</code> specifying the
-     * constraints on the target certificate
-     * @throws InvalidAlgorithmParameterException if the specified
-     * <code>Set</code> is empty <code>(trustAnchors.isEmpty() == true)</code>
-     * @throws NullPointerException if the specified <code>Set</code> is
-     * <code>null</code>
-     * @throws ClassCastException if any of the elements in the <code>Set</code>
-     * are not of type <code>java.security.cert.TrustAnchor</code>
-     */
-    public SunCertPathBuilderParameters(Set<TrustAnchor> trustAnchors,
-        CertSelector targetConstraints) throws InvalidAlgorithmParameterException
-    {
-        super(trustAnchors, targetConstraints);
-        setBuildForward(true);
-    }
-
-    /**
-     * Creates an instance of <code>SunCertPathBuilderParameters</code> that
-     * uses the specified <code>KeyStore</code> to populate the set
-     * of most-trusted CA certificates.
-     *
-     * @param keystore A keystore from which the set of most-trusted
-     * CA certificates will be populated.
-     * @param targetConstraints a <code>CertSelector</code> specifying the
-     * constraints on the target certificate
-     * @throws KeyStoreException if the keystore has not been initialized.
-     * @throws InvalidAlgorithmParameterException if the keystore does
-     * not contain at least one trusted certificate entry
-     * @throws NullPointerException if the keystore is <code>null</code>
-     */
-    public SunCertPathBuilderParameters(KeyStore keystore,
-        CertSelector targetConstraints)
-        throws KeyStoreException, InvalidAlgorithmParameterException
-    {
-        super(keystore, targetConstraints);
-        setBuildForward(true);
-    }
-
-    /**
-     * Returns the value of the buildForward flag.
-     *
-     * @return the value of the buildForward flag
-     */
-    public boolean getBuildForward() {
-        return this.buildForward;
-    }
-
-    /**
-     * Sets the value of the buildForward flag. If true, paths
-     * are built from the target subject to the trusted anchor.
-     * If false, paths are built from the trusted anchor to the
-     * target subject. The default value if not specified is true.
-     *
-     * @param buildForward the value of the buildForward flag
-     */
-    public void setBuildForward(boolean buildForward) {
-        this.buildForward = buildForward;
-    }
-
-    /**
-     * Returns a formatted string describing the parameters.
-     *
-     * @return a formatted string describing the parameters.
-     */
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("[\n");
-        sb.append(super.toString());
-        sb.append("  Build Forward Flag: " + String.valueOf(buildForward) + "\n");
-        sb.append("]\n");
-        return sb.toString();
-    }
-}
--- a/jdk/src/java.base/share/classes/sun/security/ssl/SunJSSE.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/ssl/SunJSSE.java	Mon Apr 27 09:17:39 2015 -0700
@@ -148,7 +148,7 @@
     }
 
     private void registerAlgorithms(final boolean isfips) {
-        AccessController.doPrivileged(new PrivilegedAction<Object>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Object run() {
                 doRegister(isfips);
--- a/jdk/src/java.base/share/classes/sun/security/util/DerInputStream.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/util/DerInputStream.java	Mon Apr 27 09:17:39 2015 -0700
@@ -394,7 +394,7 @@
         /*
          * Pull values out of the stream.
          */
-        Vector<DerValue> vec = new Vector<DerValue>(startLen);
+        Vector<DerValue> vec = new Vector<>(startLen);
         DerValue value;
 
         do {
--- a/jdk/src/java.base/share/classes/sun/security/util/ManifestDigester.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/util/ManifestDigester.java	Mon Apr 27 09:17:39 2015 -0700
@@ -110,7 +110,7 @@
     public ManifestDigester(byte bytes[])
     {
         rawBytes = bytes;
-        entries = new HashMap<String, Entry>();
+        entries = new HashMap<>();
 
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
--- a/jdk/src/java.base/share/classes/sun/security/util/ManifestEntryVerifier.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/util/ManifestEntryVerifier.java	Mon Apr 27 09:17:39 2015 -0700
@@ -77,9 +77,9 @@
      */
     public ManifestEntryVerifier(Manifest man)
     {
-        createdDigests = new HashMap<String, MessageDigest>(11);
-        digests = new ArrayList<MessageDigest>();
-        manifestHashes = new ArrayList<byte[]>();
+        createdDigests = new HashMap<>(11);
+        digests = new ArrayList<>();
+        manifestHashes = new ArrayList<>();
         this.man = man;
     }
 
--- a/jdk/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java	Mon Apr 27 09:17:39 2015 -0700
@@ -203,7 +203,7 @@
     private MessageDigest getDigest(String algorithm)
     {
         if (createdDigests == null)
-            createdDigests = new HashMap<String, MessageDigest>();
+            createdDigests = new HashMap<>();
 
         MessageDigest digest = createdDigests.get(algorithm);
 
@@ -523,7 +523,7 @@
             ArrayList<X509Certificate> chain = info.getCertificateChain(block);
             CertPath certChain = certificateFactory.generateCertPath(chain);
             if (signers == null) {
-                signers = new ArrayList<CodeSigner>();
+                signers = new ArrayList<>();
             }
             // Append the new code signer
             signers.add(new CodeSigner(certChain, info.getTimestamp()));
--- a/jdk/src/java.base/share/classes/sun/security/x509/AVA.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/x509/AVA.java	Mon Apr 27 09:17:39 2015 -0700
@@ -307,7 +307,7 @@
         // doublequote.
         int c = readChar(in, "Quoted string did not end in quote");
 
-        List<Byte> embeddedHex = new ArrayList<Byte>();
+        List<Byte> embeddedHex = new ArrayList<>();
         boolean isPrintableString = true;
         while (c != '"') {
             if (c == '\\') {
--- a/jdk/src/java.base/share/classes/sun/security/x509/AlgorithmId.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/x509/AlgorithmId.java	Mon Apr 27 09:17:39 2015 -0700
@@ -571,7 +571,7 @@
                             break;
                         }
                         if (oidTable == null) {
-                            oidTable = new HashMap<String,ObjectIdentifier>();
+                            oidTable = new HashMap<>();
                         }
                         oidString = alias.substring(index);
                         String stdAlgName = provs[i].getProperty(alias);
@@ -588,7 +588,7 @@
             }
 
             if (oidTable == null) {
-                oidTable = new HashMap<String,ObjectIdentifier>(1);
+                oidTable = new HashMap<>(1);
             }
             initOidTable = true;
         }
@@ -887,7 +887,7 @@
      */
         sha1WithDSA_oid = ObjectIdentifier.newInternal(dsaWithSHA1_PKIX_data);
 
-        nameTable = new HashMap<ObjectIdentifier,String>();
+        nameTable = new HashMap<>();
         nameTable.put(MD5_oid, "MD5");
         nameTable.put(MD2_oid, "MD2");
         nameTable.put(SHA_oid, "SHA-1");
--- a/jdk/src/java.base/share/classes/sun/security/x509/CertificatePolicySet.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/x509/CertificatePolicySet.java	Mon Apr 27 09:17:39 2015 -0700
@@ -58,7 +58,7 @@
      * @exception IOException on decoding errors.
      */
     public CertificatePolicySet(DerInputStream in) throws IOException {
-        ids = new Vector<CertificatePolicyId>();
+        ids = new Vector<>();
         DerValue[] seq = in.getSequence(5);
 
         for (int i = 0; i < seq.length; i++) {
--- a/jdk/src/java.base/share/classes/sun/security/x509/GeneralSubtrees.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/x509/GeneralSubtrees.java	Mon Apr 27 09:17:39 2015 -0700
@@ -59,11 +59,11 @@
      * The default constructor for the class.
      */
     public GeneralSubtrees() {
-        trees = new ArrayList<GeneralSubtree>();
+        trees = new ArrayList<>();
     }
 
     private GeneralSubtrees(GeneralSubtrees source) {
-        trees = new ArrayList<GeneralSubtree>(source.trees);
+        trees = new ArrayList<>(source.trees);
     }
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/x509/RDN.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/x509/RDN.java	Mon Apr 27 09:17:39 2015 -0700
@@ -102,7 +102,7 @@
         int quoteCount = 0;
         int searchOffset = 0;
         int avaOffset = 0;
-        List<AVA> avaVec = new ArrayList<AVA>(3);
+        List<AVA> avaVec = new ArrayList<>(3);
         int nextPlus = name.indexOf('+');
         while (nextPlus >= 0) {
             quoteCount += X500Name.countQuotes(name, searchOffset, nextPlus);
@@ -182,7 +182,7 @@
         }
         int searchOffset = 0;
         int avaOffset = 0;
-        List<AVA> avaVec = new ArrayList<AVA>(3);
+        List<AVA> avaVec = new ArrayList<>(3);
         int nextPlus = name.indexOf('+');
         while (nextPlus >= 0) {
             /*
@@ -453,7 +453,7 @@
         } else {
             // order the string type AVA's alphabetically,
             // followed by the oid type AVA's numerically
-            List<AVA> avaList = new ArrayList<AVA>(assertion.length);
+            List<AVA> avaList = new ArrayList<>(assertion.length);
             for (int i = 0; i < assertion.length; i++) {
                 avaList.add(assertion[i]);
             }
--- a/jdk/src/java.base/share/classes/sun/security/x509/X500Name.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/x509/X500Name.java	Mon Apr 27 09:17:39 2015 -0700
@@ -342,7 +342,7 @@
     public List<AVA> allAvas() {
         List<AVA> list = allAvaList;
         if (list == null) {
-            list = new ArrayList<AVA>();
+            list = new ArrayList<>();
             for (int i = 0; i < names.length; i++) {
                 list.addAll(names[i].avas());
             }
@@ -1382,7 +1382,7 @@
      */
     static {
         PrivilegedExceptionAction<Object[]> pa =
-                new PrivilegedExceptionAction<Object[]>() {
+                new PrivilegedExceptionAction<>() {
             public Object[] run() throws Exception {
                 Class<X500Principal> pClass = X500Principal.class;
                 Class<?>[] args = new Class<?>[] { X500Name.class };
--- a/jdk/src/java.base/share/classes/sun/util/PreHashedMap.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/PreHashedMap.java	Mon Apr 27 09:17:39 2015 -0700
@@ -166,14 +166,14 @@
     }
 
     public Set<String> keySet() {
-        return new AbstractSet<String> () {
+        return new AbstractSet<> () {
 
             public int size() {
                 return size;
             }
 
             public Iterator<String> iterator() {
-                return new Iterator<String>() {
+                return new Iterator<>() {
                     private int i = -1;
                     Object[] a = null;
                     String cur = null;
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java	Mon Apr 27 09:17:39 2015 -0700
@@ -47,6 +47,7 @@
 import java.util.LinkedHashSet;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -250,17 +251,17 @@
         return (String) localeName;
     }
 
-    String[] getTimeZoneNames(String key, int size) {
+    String[] getTimeZoneNames(String key) {
         String[] names = null;
-        String cacheKey = TIME_ZONE_NAMES + size + '.' + key;
+        String cacheKey = TIME_ZONE_NAMES + '.' + key;
 
         removeEmptyReferences();
         ResourceReference data = cache.get(cacheKey);
 
-        if (data == null || ((names = (String[]) data.get()) == null)) {
+        if (Objects.isNull(data) || Objects.isNull((names = (String[]) data.get()))) {
             TimeZoneNamesBundle tznb = localeData.getTimeZoneNames(locale);
             if (tznb.containsKey(key)) {
-                names = tznb.getStringArray(key, size);
+                names = tznb.getStringArray(key);
                 cache.put(cacheKey,
                           new ResourceReference(cacheKey, (Object) names, referenceQueue));
             }
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/TimeZoneNameProviderImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/TimeZoneNameProviderImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,6 +26,7 @@
 package sun.util.locale.provider;
 
 import java.util.Locale;
+import java.util.Objects;
 import java.util.Set;
 import java.util.TimeZone;
 import java.util.spi.TimeZoneNameProvider;
@@ -95,8 +96,9 @@
      */
     @Override
     public String getDisplayName(String id, boolean daylight, int style, Locale locale) {
-        String[] names = getDisplayNameArray(id, 5, locale);
-        if (names != null) {
+        String[] names = getDisplayNameArray(id, locale);
+        if (Objects.nonNull(names)) {
+            assert names.length >= 7;
             int index = daylight ? 3 : 1;
             if (style == TimeZone.SHORT) {
                 index++;
@@ -108,18 +110,18 @@
 
     @Override
     public String getGenericDisplayName(String id, int style, Locale locale) {
-        String[] names = getDisplayNameArray(id, 7, locale);
-        if (names != null && names.length >= 7) {
+        String[] names = getDisplayNameArray(id, locale);
+        if (Objects.nonNull(names)) {
+            assert names.length >= 7;
             return names[(style == TimeZone.LONG) ? 5 : 6];
         }
         return null;
     }
 
-    private String[] getDisplayNameArray(String id, int n, Locale locale) {
-        if (id == null || locale == null) {
-            throw new NullPointerException();
-        }
-        return LocaleProviderAdapter.forType(type).getLocaleResources(locale).getTimeZoneNames(id, n);
+    private String[] getDisplayNameArray(String id, Locale locale) {
+        Objects.requireNonNull(id);
+        Objects.requireNonNull(locale);
+        return LocaleProviderAdapter.forType(type).getLocaleResources(locale).getTimeZoneNames(id);
     }
 
     /**
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/TimeZoneNameUtility.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/TimeZoneNameUtility.java	Mon Apr 27 09:17:39 2015 -0700
@@ -30,6 +30,7 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.spi.TimeZoneNameProvider;
@@ -100,9 +101,9 @@
      * Retrieve display names for a time zone ID.
      */
     public static String[] retrieveDisplayNames(String id, Locale locale) {
-        if (id == null || locale == null) {
-            throw new NullPointerException();
-        }
+        Objects.requireNonNull(id);
+        Objects.requireNonNull(locale);
+
         return retrieveDisplayNamesImpl(id, locale);
     }
 
@@ -115,9 +116,12 @@
      * @return the requested generic time zone display name, or null if not found.
      */
     public static String retrieveGenericDisplayName(String id, int style, Locale locale) {
-        LocaleServiceProviderPool pool =
-            LocaleServiceProviderPool.getPool(TimeZoneNameProvider.class);
-        return pool.getLocalizedObject(TimeZoneNameGetter.INSTANCE, locale, "generic", style, id);
+        String[] names = retrieveDisplayNamesImpl(id, locale);
+        if (Objects.nonNull(names)) {
+            return names[6 - style];
+        } else {
+            return null;
+        }
     }
 
     /**
@@ -130,140 +134,53 @@
      * @return the requested time zone name, or null if not found.
      */
     public static String retrieveDisplayName(String id, boolean daylight, int style, Locale locale) {
-        LocaleServiceProviderPool pool =
-            LocaleServiceProviderPool.getPool(TimeZoneNameProvider.class);
-        return pool.getLocalizedObject(TimeZoneNameGetter.INSTANCE, locale, daylight ? "dst" : "std", style, id);
+        String[] names = retrieveDisplayNamesImpl(id, locale);
+        if (Objects.nonNull(names)) {
+            return names[(daylight ? 4 : 2) - style];
+        } else {
+            return null;
+        }
     }
 
     private static String[] retrieveDisplayNamesImpl(String id, Locale locale) {
         LocaleServiceProviderPool pool =
             LocaleServiceProviderPool.getPool(TimeZoneNameProvider.class);
+        String[] names;
+        Map<Locale, String[]> perLocale = null;
 
         SoftReference<Map<Locale, String[]>> ref = cachedDisplayNames.get(id);
-        if (ref != null) {
-            Map<Locale, String[]> perLocale = ref.get();
-            if (perLocale != null) {
-                String[] names = perLocale.get(locale);
-                if (names != null) {
+        if (Objects.nonNull(ref)) {
+            perLocale = ref.get();
+            if (Objects.nonNull(perLocale)) {
+                names = perLocale.get(locale);
+                if (Objects.nonNull(names)) {
                     return names;
                 }
-                names = pool.getLocalizedObject(TimeZoneNameArrayGetter.INSTANCE, locale, id);
-                if (names != null) {
-                    perLocale.put(locale, names);
-                }
-                return names;
             }
         }
 
-        String[] names = pool.getLocalizedObject(TimeZoneNameArrayGetter.INSTANCE, locale, id);
-        if (names != null) {
-            Map<Locale, String[]> perLocale = new ConcurrentHashMap<>();
-            perLocale.put(locale, names);
-            ref = new SoftReference<>(perLocale);
-            cachedDisplayNames.put(id, ref);
+        // build names array
+        names = new String[7];
+        names[0] = id;
+        for (int i = 1; i <= 6; i ++) {
+            names[i] = pool.getLocalizedObject(TimeZoneNameGetter.INSTANCE, locale,
+                    i<5 ? (i<3 ? "std" : "dst") : "generic", i%2, id);
         }
+
+        if (Objects.isNull(perLocale)) {
+            perLocale = new ConcurrentHashMap<>();
+        }
+        perLocale.put(locale, names);
+        ref = new SoftReference<>(perLocale);
+        cachedDisplayNames.put(id, ref);
         return names;
     }
 
+
     /**
      * Obtains a localized time zone strings from a TimeZoneNameProvider
      * implementation.
      */
-    private static class TimeZoneNameArrayGetter
-        implements LocaleServiceProviderPool.LocalizedObjectGetter<TimeZoneNameProvider,
-                                                                   String[]>{
-        private static final TimeZoneNameArrayGetter INSTANCE =
-            new TimeZoneNameArrayGetter();
-
-        @Override
-        public String[] getObject(TimeZoneNameProvider timeZoneNameProvider,
-                                  Locale locale,
-                                  String requestID,
-                                  Object... params) {
-            assert params.length == 0;
-
-            // First, try to get names with the request ID
-            String[] names = buildZoneStrings(timeZoneNameProvider, locale, requestID);
-
-            if (names == null) {
-                Map<String, String> aliases = ZoneInfo.getAliasTable();
-
-                if (aliases != null) {
-                    // Check whether this id is an alias, if so,
-                    // look for the standard id.
-                    String canonicalID = aliases.get(requestID);
-                    if (canonicalID != null) {
-                        names = buildZoneStrings(timeZoneNameProvider, locale, canonicalID);
-                    }
-                    if (names == null) {
-                        // There may be a case that a standard id has become an
-                        // alias.  so, check the aliases backward.
-                        names = examineAliases(timeZoneNameProvider, locale,
-                                   canonicalID == null ? requestID : canonicalID, aliases);
-                    }
-                }
-            }
-
-            if (names != null) {
-                names[0] = requestID;
-            }
-
-            return names;
-        }
-
-        private static String[] examineAliases(TimeZoneNameProvider tznp, Locale locale,
-                                               String id,
-                                               Map<String, String> aliases) {
-            if (aliases.containsValue(id)) {
-                for (Map.Entry<String, String> entry : aliases.entrySet()) {
-                    if (entry.getValue().equals(id)) {
-                        String alias = entry.getKey();
-                        String[] names = buildZoneStrings(tznp, locale, alias);
-                        if (names != null) {
-                            return names;
-                        }
-                        names = examineAliases(tznp, locale, alias, aliases);
-                        if (names != null) {
-                            return names;
-                        }
-                    }
-                }
-            }
-
-            return null;
-        }
-
-        private static String[] buildZoneStrings(TimeZoneNameProvider tznp,
-                                                 Locale locale, String id) {
-            String[] names = new String[5];
-
-            for (int i = 1; i <= 4; i ++) {
-                names[i] = tznp.getDisplayName(id, i>=3, i%2, locale);
-
-                if (names[i] == null) {
-                    switch (i) {
-                    case 1:
-                        // this id seems not localized by this provider
-                        return null;
-                    case 2:
-                    case 4:
-                        // If the display name for SHORT is not supplied,
-                        // copy the LONG name.
-                        names[i] = names[i-1];
-                        break;
-                    case 3:
-                        // If the display name for DST is not supplied,
-                        // copy the "standard" name.
-                        names[3] = names[1];
-                        break;
-                }
-            }
-            }
-
-            return names;
-        }
-    }
-
     private static class TimeZoneNameGetter
         implements LocaleServiceProviderPool.LocalizedObjectGetter<TimeZoneNameProvider,
                                                                    String> {
@@ -299,18 +216,16 @@
         private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                              String requestID, String tzid, int style,
                                              Map<String, String> aliases) {
-            if (aliases.containsValue(tzid)) {
-                for (Map.Entry<String, String> entry : aliases.entrySet()) {
-                    if (entry.getValue().equals(tzid)) {
-                        String alias = entry.getKey();
-                        String name = getName(tznp, locale, requestID, style, alias);
-                        if (name != null) {
-                            return name;
-                        }
-                        name = examineAliases(tznp, locale, requestID, alias, style, aliases);
-                        if (name != null) {
-                            return name;
-                        }
+            for (Map.Entry<String, String> entry : aliases.entrySet()) {
+                if (entry.getValue().equals(tzid)) {
+                    String alias = entry.getKey();
+                    String name = getName(tznp, locale, requestID, style, alias);
+                    if (name != null) {
+                        return name;
+                    }
+                    name = examineAliases(tznp, locale, requestID, alias, style, aliases);
+                    if (name != null) {
+                        return name;
                     }
                 }
             }
--- a/jdk/src/java.base/share/classes/sun/util/logging/PlatformLogger.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/logging/PlatformLogger.java	Mon Apr 27 09:17:39 2015 -0700
@@ -161,7 +161,7 @@
     private static boolean loggingEnabled;
     static {
         loggingEnabled = AccessController.doPrivileged(
-            new PrivilegedAction<Boolean>() {
+            new PrivilegedAction<>() {
                 public Boolean run() {
                     String cname = System.getProperty("java.util.logging.config.class");
                     String fname = System.getProperty("java.util.logging.config.file");
--- a/jdk/src/java.base/share/classes/sun/util/resources/LocaleData.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/resources/LocaleData.java	Mon Apr 27 09:17:39 2015 -0700
@@ -159,7 +159,7 @@
     }
 
     public static ResourceBundle getBundle(final String baseName, final Locale locale) {
-        return AccessController.doPrivileged(new PrivilegedAction<ResourceBundle>() {
+        return AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public ResourceBundle run() {
                 return ResourceBundle
@@ -169,7 +169,7 @@
     }
 
     private static OpenListResourceBundle getSupplementary(final String baseName, final Locale locale) {
-        return AccessController.doPrivileged(new PrivilegedAction<OpenListResourceBundle>() {
+        return AccessController.doPrivileged(new PrivilegedAction<>() {
            @Override
            public OpenListResourceBundle run() {
                OpenListResourceBundle rb = null;
--- a/jdk/src/java.base/share/classes/sun/util/resources/ParallelListResourceBundle.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/resources/ParallelListResourceBundle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -213,7 +213,7 @@
             if (parent == null) {
                 return set.iterator();
             }
-            return new Iterator<String>() {
+            return new Iterator<>() {
                 private Iterator<String> itr = set.iterator();
                 private boolean usingParent;
 
--- a/jdk/src/java.base/share/classes/sun/util/resources/TimeZoneNamesBundle.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/resources/TimeZoneNamesBundle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -44,6 +44,7 @@
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.MissingResourceException;
+import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -61,26 +62,6 @@
 public abstract class TimeZoneNamesBundle extends OpenListResourceBundle {
 
     /**
-     * Returns a String array containing time zone names. The String array has
-     * at most size elements.
-     *
-     * @param key  the time zone ID for which names are obtained
-     * @param size the requested size of array for names
-     * @return a String array containing names
-     */
-    public String[] getStringArray(String key, int size) {
-        String[] names = handleGetObject(key, size);
-        if ((names == null || names.length != size) && parent != null) {
-            names = ((TimeZoneNamesBundle)parent).getStringArray(key, size);
-        }
-        if (names == null) {
-            throw new MissingResourceException("no time zone names", getClass().getName(), key);
-        }
-        return names;
-
-    }
-
-    /**
      * Maps time zone IDs to locale-specific names.
      * The value returned is an array of five strings:
      * <ul>
@@ -89,6 +70,8 @@
      * <li>The short name of the time zone in standard time (localized).
      * <li>The long name of the time zone in daylight savings time (localized).
      * <li>The short name of the time zone in daylight savings time (localized).
+     * <li>The long name of the time zone in generic form (localized).
+     * <li>The short name of the time zone in generic form (localized).
      * </ul>
      * The localized names come from the subclasses's
      * <code>getContents</code> implementations, while the time zone
@@ -96,16 +79,12 @@
      */
     @Override
     public Object handleGetObject(String key) {
-        return handleGetObject(key, 5);
-    }
-
-    private String[] handleGetObject(String key, int n) {
         String[] contents = (String[]) super.handleGetObject(key);
-        if (contents == null) {
+        if (Objects.isNull(contents)) {
             return null;
         }
-        int clen = Math.min(n - 1, contents.length);
-        String[] tmpobj = new String[clen+1];
+        int clen = contents.length;
+        String[] tmpobj = new String[7];
         tmpobj[0] = key;
         System.arraycopy(contents, 0, tmpobj, 1, clen);
         return tmpobj;
--- a/jdk/src/java.base/share/classes/sun/util/resources/en/TimeZoneNames_en_IE.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/share/classes/sun/util/resources/en/TimeZoneNames_en_IE.java	Mon Apr 27 09:17:39 2015 -0700
@@ -47,7 +47,8 @@
     protected final Object[][] getContents() {
         return new Object[][] {
             {"Europe/London", new String[] {"Greenwich Mean Time", "GMT",
-                                    "Irish Summer Time", "IST" /*Dublin*/}},
+                                    "Irish Summer Time", "IST", /*Dublin*/
+                                    "Irish Time", "IT" /*Dublin*/}},
         };
     }
 }
--- a/jdk/src/java.base/unix/classes/java/lang/ProcessEnvironment.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/java/lang/ProcessEnvironment.java	Mon Apr 27 09:17:39 2015 -0700
@@ -99,7 +99,7 @@
 
     /* Only for use by Runtime.exec(...String[]envp...) */
     static Map<String,String> emptyEnvironment(int capacity) {
-        return new StringEnvironment(new HashMap<Variable,Value>(capacity));
+        return new StringEnvironment(new HashMap<>(capacity));
     }
 
     private static native byte[][] environ();
--- a/jdk/src/java.base/unix/classes/sun/net/PortConfig.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/net/PortConfig.java	Mon Apr 27 09:17:39 2015 -0700
@@ -42,7 +42,7 @@
 
     static {
         AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     String os = System.getProperty("os.name");
--- a/jdk/src/java.base/unix/classes/sun/net/dns/ResolverConfigurationImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/net/dns/ResolverConfigurationImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -85,6 +85,15 @@
                     if (val.charAt(0) == '#' || val.charAt(0) == ';') {
                         break;
                     }
+                    if ("nameserver".equals(keyword)) {
+                        if (val.indexOf(':') >= 0 &&
+                            val.indexOf('.') < 0 && // skip for IPv4 literals with port
+                            val.indexOf('[') < 0 &&
+                            val.indexOf(']') < 0 ) {
+                            // IPv6 literal, in non-BSD-style.
+                            val = "[" + val + "]";
+                        }
+                    }
                     ll.add(val);
                     if (--maxvalues == 0) {
                         break;
@@ -122,7 +131,7 @@
         // get the name servers from /etc/resolv.conf
         nameservers =
             java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction<LinkedList<String>>() {
+                new java.security.PrivilegedAction<>() {
                     public LinkedList<String> run() {
                         // typically MAXNS is 3 but we've picked 5 here
                         // to allow for additional servers if required.
@@ -147,7 +156,7 @@
         // first try the search keyword in /etc/resolv.conf
 
         sl = java.security.AccessController.doPrivileged(
-                 new java.security.PrivilegedAction<LinkedList<String>>() {
+                 new java.security.PrivilegedAction<>() {
                     public LinkedList<String> run() {
                         LinkedList<String> ll;
 
@@ -173,7 +182,7 @@
 
         String localDomain = localDomain0();
         if (localDomain != null && localDomain.length() > 0) {
-            sl = new LinkedList<String>();
+            sl = new LinkedList<>();
             sl.add(localDomain);
             return sl;
         }
@@ -181,7 +190,7 @@
         // try domain keyword in /etc/resolv.conf
 
         sl = java.security.AccessController.doPrivileged(
-                 new java.security.PrivilegedAction<LinkedList<String>>() {
+                 new java.security.PrivilegedAction<>() {
                     public LinkedList<String> run() {
                         LinkedList<String> ll;
 
@@ -251,7 +260,7 @@
 
     static {
         java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<Void>() {
+            new java.security.PrivilegedAction<>() {
                 public Void run() {
                     System.loadLibrary("net");
                     return null;
--- a/jdk/src/java.base/unix/classes/sun/net/sdp/SdpProvider.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/net/sdp/SdpProvider.java	Mon Apr 27 09:17:39 2015 -0700
@@ -198,7 +198,7 @@
     {
         Scanner scanner = new Scanner(new File(file));
         try {
-            List<Rule> result = new ArrayList<Rule>();
+            List<Rule> result = new ArrayList<>();
             while (scanner.hasNextLine()) {
                 String line = scanner.nextLine().trim();
 
--- a/jdk/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java	Mon Apr 27 09:17:39 2015 -0700
@@ -95,7 +95,7 @@
     private void init0() {
 
         hostname = java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction<String>() {
+            new java.security.PrivilegedAction<>() {
             public String run() {
                 String localhost;
                 try {
--- a/jdk/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -216,7 +216,7 @@
         // permission check must always be in initiator's context
         try {
             if (acc != null) {
-                AccessController.doPrivileged(new PrivilegedAction<Void>() {
+                AccessController.doPrivileged(new PrivilegedAction<>() {
                     public Void run() {
                         SecurityManager sm = System.getSecurityManager();
                         if (sm != null) {
@@ -287,7 +287,7 @@
                 synchronized (updateLock) {
                     if (handler == null) {
                         this.acceptHandler = null;
-                        result = new PendingFuture<AsynchronousSocketChannel,Object>(this);
+                        result = new PendingFuture<>(this);
                         this.acceptFuture = result;
                     } else {
                         this.acceptHandler = handler;
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java	Mon Apr 27 09:17:39 2015 -0700
@@ -93,7 +93,7 @@
     private static native byte[] probeUsingGnomeVfs(long pathAddress);
 
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Void run() {
                 System.loadLibrary("nio");
                 return null;
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/MimeTypesFileTypeDetector.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/MimeTypesFileTypeDetector.java	Mon Apr 27 09:17:39 2015 -0700
@@ -106,7 +106,7 @@
             synchronized (this) {
                 if (!loaded) {
                     List<String> lines = AccessController.doPrivileged(
-                        new PrivilegedAction<List<String>>() {
+                        new PrivilegedAction<>() {
                             @Override
                             public List<String> run() {
                                 try {
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixCopyFile.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixCopyFile.java	Mon Apr 27 09:17:39 2015 -0700
@@ -606,7 +606,7 @@
         throws UnixException;
 
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Void run() {
                 System.loadLibrary("nio");
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileStore.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileStore.java	Mon Apr 27 09:17:39 2015 -0700
@@ -222,7 +222,7 @@
             synchronized (loadLock) {
                 if (props == null) {
                     props = AccessController.doPrivileged(
-                        new PrivilegedAction<Properties>() {
+                        new PrivilegedAction<>() {
                             @Override
                             public Properties run() {
                                 return loadProperties();
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileSystem.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixFileSystem.java	Mon Apr 27 09:17:39 2015 -0700
@@ -152,7 +152,7 @@
     public final Iterable<Path> getRootDirectories() {
         final List<Path> allowedList =
            Collections.unmodifiableList(Arrays.asList((Path)rootDirectory));
-        return new Iterable<Path>() {
+        return new Iterable<>() {
             public Iterator<Path> iterator() {
                 try {
                     SecurityManager sm = System.getSecurityManager();
@@ -254,7 +254,7 @@
                 return Collections.emptyList();
             }
         }
-        return new Iterable<FileStore>() {
+        return new Iterable<>() {
             public Iterator<FileStore> iterator() {
                 return new FileStoreIterator();
             }
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java	Mon Apr 27 09:17:39 2015 -0700
@@ -568,7 +568,7 @@
 
     private static native int init();
     static {
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
+        AccessController.doPrivileged(new PrivilegedAction<>() {
             public Void run() {
                 System.loadLibrary("nio");
                 return null;
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/UnixPath.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/nio/fs/UnixPath.java	Mon Apr 27 09:17:39 2015 -0700
@@ -121,7 +121,7 @@
             ce = Util.jnuEncoding().newEncoder()
                 .onMalformedInput(CodingErrorAction.REPORT)
                 .onUnmappableCharacter(CodingErrorAction.REPORT);
-            encoder.set(new SoftReference<CharsetEncoder>(ce));
+            encoder.set(new SoftReference<>(ce));
         }
 
         char[] ca = fs.normalizeNativePath(input.toCharArray());
--- a/jdk/src/java.base/unix/classes/sun/security/provider/NativePRNG.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/unix/classes/sun/security/provider/NativePRNG.java	Mon Apr 27 09:17:39 2015 -0700
@@ -125,7 +125,7 @@
      */
     private static RandomIO initIO(final Variant v) {
         return AccessController.doPrivileged(
-            new PrivilegedAction<RandomIO>() {
+            new PrivilegedAction<>() {
                 @Override
                 public RandomIO run() {
 
@@ -440,7 +440,7 @@
                 if (seedOutInitialized == false) {
                     seedOutInitialized = true;
                     seedOut = AccessController.doPrivileged(
-                            new PrivilegedAction<OutputStream>() {
+                            new PrivilegedAction<>() {
                         @Override
                         public OutputStream run() {
                             try {
--- a/jdk/src/java.base/windows/native/launcher/java.manifest	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/windows/native/launcher/java.manifest	Mon Apr 27 09:17:39 2015 -0700
@@ -4,12 +4,12 @@
           xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"
 >
 <assemblyIdentity
-    version="IMVERSION"
+    name=""
+    version=""
     processorArchitecture="X86"
-    name="Oracle Corporation, Java(tm) 2 Standard Edition"
     type="win32"
 />
-<description>Java(TM) SE PROGRAM process</description>
+<description>Java(TM) SE process</description>
 <dependency>
     <dependentAssembly>
         <assemblyIdentity
--- a/jdk/src/java.base/windows/native/launcher/java.rc	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/windows/native/launcher/java.rc	Mon Apr 27 09:17:39 2015 -0700
@@ -7,9 +7,3 @@
 // Icon
 //
 IDI_ICON           ICON    DISCARDABLE     "awt.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// RT_MANIFEST
-//
-1                  RT_MANIFEST             "java.manifest"
--- a/jdk/src/java.base/windows/native/libjava/TimeZone_md.c	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.base/windows/native/libjava/TimeZone_md.c	Mon Apr 27 09:17:39 2015 -0700
@@ -147,219 +147,248 @@
  */
 static int getWinTimeZone(char *winZoneName, char *winMapID)
 {
-    TIME_ZONE_INFORMATION tzi;
-    OSVERSIONINFO ver;
-    int onlyMapID;
-    HANDLE hKey = NULL, hSubKey = NULL;
+    DYNAMIC_TIME_ZONE_INFORMATION dtzi;
+    DWORD timeType;
+    DWORD bufSize;
+    DWORD val;
+    HANDLE hKey = NULL;
     LONG ret;
-    DWORD nSubKeys, i;
     ULONG valueType;
-    TCHAR subKeyName[MAX_ZONE_CHAR];
-    TCHAR szValue[MAX_ZONE_CHAR];
-    WCHAR stdNameInReg[MAX_ZONE_CHAR];
-    TziValue tempTzi;
-    WCHAR *stdNamePtr = tzi.StandardName;
-    DWORD valueSize;
-    DWORD timeType;
-    int isVista;
 
     /*
-     * Get the current time zone setting of the platform.
+     * Get the dynamic time zone information so that time zone redirection
+     * can be supported. (see JDK-7044727)
      */
-    timeType = GetTimeZoneInformation(&tzi);
+    timeType = GetDynamicTimeZoneInformation(&dtzi);
     if (timeType == TIME_ZONE_ID_INVALID) {
         goto err;
     }
 
     /*
-     * Determine if this is an NT system.
+     * Make sure TimeZoneKeyName is available from the API call. If
+     * DynamicDaylightTime is disabled, return a custom time zone name
+     * based on the GMT offset. Otherwise, return the TimeZoneKeyName
+     * value.
      */
-    ver.dwOSVersionInfoSize = sizeof(ver);
-    GetVersionEx(&ver);
-    isVista = ver.dwMajorVersion >= 6;
+    if (dtzi.TimeZoneKeyName[0] != 0) {
+        if (dtzi.DynamicDaylightTimeDisabled) {
+            customZoneName(dtzi.Bias, winZoneName);
+            return VALUE_GMTOFFSET;
+        }
+        wcstombs(winZoneName, dtzi.TimeZoneKeyName, MAX_ZONE_CHAR);
+        return VALUE_KEY;
+    }
 
-    ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, WIN_CURRENT_TZ_KEY, 0,
-                       KEY_READ, (PHKEY)&hKey);
-    if (ret == ERROR_SUCCESS) {
-        DWORD val;
-        DWORD bufSize;
+    /*
+     * If TimeZoneKeyName is not available, check whether StandardName
+     * is available to fall back to the older API GetTimeZoneInformation.
+     * If not, directly read the value from registry keys.
+     */
+    if (dtzi.StandardName[0] == 0) {
+        ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, WIN_CURRENT_TZ_KEY, 0,
+                           KEY_READ, (PHKEY)&hKey);
+        if (ret != ERROR_SUCCESS) {
+            goto err;
+        }
 
         /*
          * Determine if auto-daylight time adjustment is turned off.
          */
-        valueType = 0;
         bufSize = sizeof(val);
-        ret = RegQueryValueExA(hKey, "DisableAutoDaylightTimeSet",
-                               NULL, &valueType, (LPBYTE) &val, &bufSize);
+        ret = RegQueryValueExA(hKey, "DynamicDaylightTimeDisabled", NULL,
+                               &valueType, (LPBYTE) &val, &bufSize);
+        if (ret != ERROR_SUCCESS) {
+            goto err;
+        }
         /*
-         * Vista uses the different key name.
+         * Return a custom time zone name if auto-daylight time adjustment
+         * is disabled.
          */
+        if (val == 1) {
+            customZoneName(dtzi.Bias, winZoneName);
+            (void) RegCloseKey(hKey);
+            return VALUE_GMTOFFSET;
+        }
+
+        bufSize = MAX_ZONE_CHAR;
+        ret = RegQueryValueExA(hKey, "TimeZoneKeyName", NULL,
+                               &valueType, (LPBYTE) winZoneName, &bufSize);
         if (ret != ERROR_SUCCESS) {
-            bufSize = sizeof(val);
-            ret = RegQueryValueExA(hKey, "DynamicDaylightTimeDisabled",
-                                   NULL, &valueType, (LPBYTE) &val, &bufSize);
+            goto err;
+        }
+        (void) RegCloseKey(hKey);
+        return VALUE_KEY;
+    } else {
+        /*
+         * Fall back to GetTimeZoneInformation
+         */
+        TIME_ZONE_INFORMATION tzi;
+        HANDLE hSubKey = NULL;
+        DWORD nSubKeys, i;
+        ULONG valueType;
+        TCHAR subKeyName[MAX_ZONE_CHAR];
+        TCHAR szValue[MAX_ZONE_CHAR];
+        WCHAR stdNameInReg[MAX_ZONE_CHAR];
+        TziValue tempTzi;
+        WCHAR *stdNamePtr = tzi.StandardName;
+        DWORD valueSize;
+        int onlyMapID;
+
+        timeType = GetTimeZoneInformation(&tzi);
+        if (timeType == TIME_ZONE_ID_INVALID) {
+            goto err;
         }
 
+        ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, WIN_CURRENT_TZ_KEY, 0,
+                           KEY_READ, (PHKEY)&hKey);
         if (ret == ERROR_SUCCESS) {
-            int daylightSavingsUpdateDisabledOther = val == 1 && tzi.DaylightDate.wMonth != 0;
-            int daylightSavingsUpdateDisabledVista = val == 1;
-            int daylightSavingsUpdateDisabled = isVista ? daylightSavingsUpdateDisabledVista : daylightSavingsUpdateDisabledOther;
+            /*
+             * Determine if auto-daylight time adjustment is turned off.
+             */
+            bufSize = sizeof(val);
+            ret = RegQueryValueExA(hKey, "DynamicDaylightTimeDisabled", NULL,
+                                   &valueType, (LPBYTE) &val, &bufSize);
+            if (ret == ERROR_SUCCESS) {
+                if (val == 1 && tzi.DaylightDate.wMonth != 0) {
+                    (void) RegCloseKey(hKey);
+                    customZoneName(tzi.Bias, winZoneName);
+                    return VALUE_GMTOFFSET;
+                }
+            }
 
-            if (daylightSavingsUpdateDisabled) {
-                (void) RegCloseKey(hKey);
-                customZoneName(tzi.Bias, winZoneName);
-                return VALUE_GMTOFFSET;
+            /*
+             * Win32 problem: If the length of the standard time name is equal
+             * to (or probably longer than) 32 in the registry,
+             * GetTimeZoneInformation() on NT returns a null string as its
+             * standard time name. We need to work around this problem by
+             * getting the same information from the TimeZoneInformation
+             * registry.
+             */
+            if (tzi.StandardName[0] == 0) {
+                bufSize = sizeof(stdNameInReg);
+                ret = getValueInRegistry(hKey, STANDARD_NAME, &valueType,
+                                         (LPBYTE) stdNameInReg, &bufSize);
+                if (ret != ERROR_SUCCESS) {
+                    goto err;
+                }
+                stdNamePtr = stdNameInReg;
+            }
+            (void) RegCloseKey(hKey);
+        }
+
+        /*
+         * Open the "Time Zones" registry.
+         */
+        ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, NT_TZ_KEY, 0, KEY_READ, (PHKEY)&hKey);
+        if (ret != ERROR_SUCCESS) {
+            ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, WIN_TZ_KEY, 0, KEY_READ, (PHKEY)&hKey);
+            /*
+             * If both failed, then give up.
+             */
+            if (ret != ERROR_SUCCESS) {
+                return VALUE_UNKNOWN;
             }
         }
 
         /*
-         * Vista has the key for the current "Time Zones" entry.
-         */
-        if (isVista) {
-            valueType = 0;
-            bufSize = MAX_ZONE_CHAR;
-            ret = RegQueryValueExA(hKey, "TimeZoneKeyName", NULL,
-                                   &valueType, (LPBYTE) winZoneName, &bufSize);
-            if (ret != ERROR_SUCCESS) {
-                goto err;
-            }
-            (void) RegCloseKey(hKey);
-            return VALUE_KEY;
-        }
-
-        /*
-         * Win32 problem: If the length of the standard time name is equal
-         * to (or probably longer than) 32 in the registry,
-         * GetTimeZoneInformation() on NT returns a null string as its
-         * standard time name. We need to work around this problem by
-         * getting the same information from the TimeZoneInformation
-         * registry. The function on Win98 seems to return its key name.
-         * We can't do anything in that case.
+         * Get the number of subkeys of the "Time Zones" registry for
+         * enumeration.
          */
-        if (tzi.StandardName[0] == 0) {
-            bufSize = sizeof(stdNameInReg);
-            ret = getValueInRegistry(hKey, STANDARD_NAME, &valueType,
-                                     (LPBYTE) stdNameInReg, &bufSize);
-            if (ret != ERROR_SUCCESS) {
-                goto err;
-            }
-            stdNamePtr = stdNameInReg;
-        }
-        (void) RegCloseKey(hKey);
-    }
-
-    /*
-     * Open the "Time Zones" registry.
-     */
-    ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, NT_TZ_KEY, 0, KEY_READ, (PHKEY)&hKey);
-    if (ret != ERROR_SUCCESS) {
-        ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, WIN_TZ_KEY, 0, KEY_READ, (PHKEY)&hKey);
-        /*
-         * If both failed, then give up.
-         */
-        if (ret != ERROR_SUCCESS) {
-            return VALUE_UNKNOWN;
-        }
-    }
-
-    /*
-     * Get the number of subkeys of the "Time Zones" registry for
-     * enumeration.
-     */
-    ret = RegQueryInfoKey(hKey, NULL, NULL, NULL, &nSubKeys,
-                          NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-    if (ret != ERROR_SUCCESS) {
-        goto err;
-    }
-
-    /*
-     * Compare to the "Std" value of each subkey and find the entry that
-     * matches the current control panel setting.
-     */
-    onlyMapID = 0;
-    for (i = 0; i < nSubKeys; ++i) {
-        DWORD size = sizeof(subKeyName);
-        ret = RegEnumKeyEx(hKey, i, subKeyName, &size, NULL, NULL, NULL, NULL);
-        if (ret != ERROR_SUCCESS) {
-            goto err;
-        }
-        ret = RegOpenKeyEx(hKey, subKeyName, 0, KEY_READ, (PHKEY)&hSubKey);
+        ret = RegQueryInfoKey(hKey, NULL, NULL, NULL, &nSubKeys,
+                              NULL, NULL, NULL, NULL, NULL, NULL, NULL);
         if (ret != ERROR_SUCCESS) {
             goto err;
         }
 
-        size = sizeof(szValue);
-        ret = getValueInRegistry(hSubKey, STD_NAME, &valueType,
-                                 szValue, &size);
-        if (ret != ERROR_SUCCESS) {
-            /*
-             * NT 4.0 SP3 fails here since it doesn't have the "Std"
-             * entry in the Time Zones registry.
-             */
-            RegCloseKey(hSubKey);
-            onlyMapID = 1;
-            ret = RegOpenKeyExW(hKey, stdNamePtr, 0, KEY_READ, (PHKEY)&hSubKey);
+        /*
+         * Compare to the "Std" value of each subkey and find the entry that
+         * matches the current control panel setting.
+         */
+        onlyMapID = 0;
+        for (i = 0; i < nSubKeys; ++i) {
+            DWORD size = sizeof(subKeyName);
+            ret = RegEnumKeyEx(hKey, i, subKeyName, &size, NULL, NULL, NULL, NULL);
+            if (ret != ERROR_SUCCESS) {
+                goto err;
+            }
+            ret = RegOpenKeyEx(hKey, subKeyName, 0, KEY_READ, (PHKEY)&hSubKey);
             if (ret != ERROR_SUCCESS) {
                 goto err;
             }
-            break;
-        }
 
-        if (wcscmp((WCHAR *)szValue, stdNamePtr) == 0) {
-            /*
-             * Some localized Win32 platforms use a same name to
-             * different time zones. So, we can't rely only on the name
-             * here. We need to check GMT offsets and transition dates
-             * to make sure it's the registry of the current time
-             * zone.
-             */
-            DWORD tziValueSize = sizeof(tempTzi);
-            ret = RegQueryValueEx(hSubKey, "TZI", NULL, &valueType,
-                                  (unsigned char *) &tempTzi, &tziValueSize);
-            if (ret == ERROR_SUCCESS) {
-                if ((tzi.Bias != tempTzi.bias) ||
-                    (memcmp((const void *) &tzi.StandardDate,
-                            (const void *) &tempTzi.stdDate,
-                            sizeof(SYSTEMTIME)) != 0)) {
-                        goto out;
+            size = sizeof(szValue);
+            ret = getValueInRegistry(hSubKey, STD_NAME, &valueType,
+                                     szValue, &size);
+            if (ret != ERROR_SUCCESS) {
+                /*
+                 * NT 4.0 SP3 fails here since it doesn't have the "Std"
+                 * entry in the Time Zones registry.
+                 */
+                RegCloseKey(hSubKey);
+                onlyMapID = 1;
+                ret = RegOpenKeyExW(hKey, stdNamePtr, 0, KEY_READ, (PHKEY)&hSubKey);
+                if (ret != ERROR_SUCCESS) {
+                    goto err;
                 }
+                break;
+            }
 
-                if (tzi.DaylightBias != 0) {
-                    if ((tzi.DaylightBias != tempTzi.dstBias) ||
-                        (memcmp((const void *) &tzi.DaylightDate,
-                                (const void *) &tempTzi.dstDate,
+            if (wcscmp((WCHAR *)szValue, stdNamePtr) == 0) {
+                /*
+                 * Some localized Win32 platforms use a same name to
+                 * different time zones. So, we can't rely only on the name
+                 * here. We need to check GMT offsets and transition dates
+                 * to make sure it's the registry of the current time
+                 * zone.
+                 */
+                DWORD tziValueSize = sizeof(tempTzi);
+                ret = RegQueryValueEx(hSubKey, "TZI", NULL, &valueType,
+                                      (unsigned char *) &tempTzi, &tziValueSize);
+                if (ret == ERROR_SUCCESS) {
+                    if ((tzi.Bias != tempTzi.bias) ||
+                        (memcmp((const void *) &tzi.StandardDate,
+                                (const void *) &tempTzi.stdDate,
                                 sizeof(SYSTEMTIME)) != 0)) {
                         goto out;
                     }
+
+                    if (tzi.DaylightBias != 0) {
+                        if ((tzi.DaylightBias != tempTzi.dstBias) ||
+                            (memcmp((const void *) &tzi.DaylightDate,
+                                    (const void *) &tempTzi.dstDate,
+                                    sizeof(SYSTEMTIME)) != 0)) {
+                            goto out;
+                        }
+                    }
                 }
-            }
-
-            /*
-             * found matched record, terminate search
-             */
-            strcpy(winZoneName, subKeyName);
-            break;
-        }
-    out:
-        (void) RegCloseKey(hSubKey);
-    }
 
-    /*
-     * Get the "MapID" value of the registry to be able to eliminate
-     * duplicated key names later.
-     */
-    valueSize = MAX_MAPID_LENGTH;
-    ret = RegQueryValueExA(hSubKey, "MapID", NULL, &valueType, winMapID, &valueSize);
-    (void) RegCloseKey(hSubKey);
-    (void) RegCloseKey(hKey);
+                /*
+                 * found matched record, terminate search
+                 */
+                strcpy(winZoneName, subKeyName);
+                break;
+            }
+        out:
+            (void) RegCloseKey(hSubKey);
+        }
 
-    if (ret != ERROR_SUCCESS) {
         /*
-         * Vista doesn't have mapID. VALUE_UNKNOWN should be returned
-         * only for Windows NT.
+         * Get the "MapID" value of the registry to be able to eliminate
+         * duplicated key names later.
          */
-        if (onlyMapID == 1) {
-            return VALUE_UNKNOWN;
+        valueSize = MAX_MAPID_LENGTH;
+        ret = RegQueryValueExA(hSubKey, "MapID", NULL, &valueType, winMapID, &valueSize);
+        (void) RegCloseKey(hSubKey);
+        (void) RegCloseKey(hKey);
+
+        if (ret != ERROR_SUCCESS) {
+            /*
+             * Vista doesn't have mapID. VALUE_UNKNOWN should be returned
+             * only for Windows NT.
+             */
+            if (onlyMapID == 1) {
+                return VALUE_UNKNOWN;
+            }
         }
     }
 
--- a/jdk/src/java.management/share/classes/javax/management/AttributeValueExp.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/AttributeValueExp.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,11 +93,10 @@
      *
      * @return  The <CODE>ValueExp</CODE>.
      *
-     * @exception BadAttributeValueExpException
-     * @exception InvalidApplicationException
-     * @exception BadStringOperationException
-     * @exception BadBinaryOpValueExpException
-     *
+     * @throws BadStringOperationException {@inheritDoc}
+     * @throws BadBinaryOpValueExpException {@inheritDoc}
+     * @throws BadAttributeValueExpException {@inheritDoc}
+     * @throws InvalidApplicationException  {@inheritDoc}
      */
     @Override
     public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException,
--- a/jdk/src/java.management/share/classes/javax/management/DescriptorKey.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/DescriptorKey.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -168,5 +168,9 @@
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
 public @interface DescriptorKey {
+    /**
+     * Returns the descriptor key.
+     * @return the descriptor key
+     */
     String value();
 }
--- a/jdk/src/java.management/share/classes/javax/management/DynamicMBean.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/DynamicMBean.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
      *
      * @return  The value of the attribute retrieved.
      *
-     * @exception AttributeNotFoundException
+     * @exception AttributeNotFoundException if specified attribute does not exist or cannot be retrieved
      * @exception MBeanException  Wraps a <CODE>java.lang.Exception</CODE> thrown by the MBean's getter.
      * @exception ReflectionException  Wraps a <CODE>java.lang.Exception</CODE> thrown while trying to invoke the getter.
      *
@@ -58,8 +58,8 @@
      * @param attribute The identification of the attribute to
      * be set and  the value it is to be set to.
      *
-     * @exception AttributeNotFoundException
-     * @exception InvalidAttributeValueException
+     * @exception AttributeNotFoundException if specified attribute does not exist or cannot be retrieved
+     * @exception InvalidAttributeValueException if value specified is not valid for the attribute
      * @exception MBeanException Wraps a <CODE>java.lang.Exception</CODE> thrown by the MBean's setter.
      * @exception ReflectionException Wraps a <CODE>java.lang.Exception</CODE> thrown while trying to invoke the MBean's setter.
      *
--- a/jdk/src/java.management/share/classes/javax/management/ImmutableDescriptor.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/ImmutableDescriptor.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,8 @@
     /**
      * Construct a descriptor containing the given fields and values.
      *
+     * @param fieldNames the field names
+     * @param fieldValues the field values
      * @throws IllegalArgumentException if either array is null, or
      * if the arrays have different sizes, or
      * if a field name is null or empty, or if the same field name
@@ -81,6 +83,7 @@
      * is {@code a=b=c} then the field name is {@code a} and its value
      * is {@code b=c}.
      *
+     * @param fields the field names
      * @throws IllegalArgumentException if the parameter is null, or
      * if a field name is empty, or if the same field name appears
      * more than once, or if one of the strings does not contain
@@ -94,6 +97,7 @@
      * <p>Construct a descriptor where the names and values of the fields
      * are the keys and values of the given Map.</p>
      *
+     * @param fields the field names and values
      * @throws IllegalArgumentException if the parameter is null, or
      * if a field name is null or empty, or if the same field name appears
      * more than once (which can happen because field names are not case
--- a/jdk/src/java.management/share/classes/javax/management/QueryExp.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/QueryExp.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,10 +53,13 @@
       *
       * @return  True if the query was successfully applied to the MBean, false otherwise
       *
-      * @exception BadStringOperationException
-      * @exception BadBinaryOpValueExpException
-      * @exception BadAttributeValueExpException
-      * @exception InvalidApplicationException
+      * @throws BadStringOperationException when an invalid string
+      * operation is passed to a method for constructing a query
+      * @throws BadBinaryOpValueExpException when an invalid expression
+      * is passed to a method for constructing a query
+      * @throws BadAttributeValueExpException when an invalid MBean
+      * attribute is passed to a query constructing method
+      * @throws InvalidApplicationException when an invalid apply is attempted
       */
      public boolean apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException,
          BadAttributeValueExpException, InvalidApplicationException ;
--- a/jdk/src/java.management/share/classes/javax/management/StandardEmitterMBean.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/StandardEmitterMBean.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -91,6 +91,7 @@
      * that will have no effect on this object's
      * {@code getNotificationInfo()}.</p>
      *
+     * @param <T> the implementation type of the MBean
      * @param implementation the implementation of the MBean interface.
      * @param mbeanInterface a Standard MBean interface.
      * @param emitter the object that will handle notifications.
@@ -129,6 +130,7 @@
      * that will have no effect on this object's
      * {@code getNotificationInfo()}.</p>
      *
+     * @param <T> the implementation type of the MBean
      * @param implementation the implementation of the MBean interface.
      * @param mbeanInterface a Standard MBean interface.
      * @param isMXBean If true, the {@code mbeanInterface} parameter
--- a/jdk/src/java.management/share/classes/javax/management/StringValueExp.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/StringValueExp.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,11 +95,12 @@
      *
      * @return  The <CODE>ValueExp</CODE>.
      *
-     * @exception BadStringOperationException
-     * @exception BadBinaryOpValueExpException
-     * @exception BadAttributeValueExpException
-     * @exception InvalidApplicationException
+     * @throws BadStringOperationException {@inheritDoc}
+     * @throws BadBinaryOpValueExpException {@inheritDoc}
+     * @throws BadAttributeValueExpException {@inheritDoc}
+     * @throws InvalidApplicationException  {@inheritDoc}
      */
+    @Override
     public ValueExp apply(ObjectName name) throws BadStringOperationException, BadBinaryOpValueExpException,
         BadAttributeValueExpException, InvalidApplicationException  {
         return this;
--- a/jdk/src/java.management/share/classes/javax/management/ValueExp.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/ValueExp.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -80,10 +80,13 @@
      *
      * @return  The <CODE>ValueExp</CODE>.
      *
-     * @exception BadStringOperationException
-     * @exception BadBinaryOpValueExpException
-     * @exception BadAttributeValueExpException
-     * @exception InvalidApplicationException
+     * @throws BadStringOperationException when an invalid string
+     * operation is passed to a method for constructing a query
+     * @throws BadBinaryOpValueExpException when an invalid expression
+     * is passed to a method for constructing a query
+     * @throws BadAttributeValueExpException when an invalid MBean
+     * attribute is passed to a query constructing method
+     * @throws InvalidApplicationException when an invalid apply is attempted
      */
     public ValueExp apply(ObjectName name)
             throws BadStringOperationException, BadBinaryOpValueExpException,
--- a/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanInfo.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanInfo.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -307,6 +307,7 @@
 
     /**
      * Creates and returns a copy of this object.
+     * @return a copy of this object
      */
     public java.lang.Object clone();
 
--- a/jdk/src/java.management/share/classes/javax/management/monitor/Monitor.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/monitor/Monitor.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -387,7 +387,7 @@
      *
      * @return The name of the monitor MBean registered.
      *
-     * @exception Exception
+     * @exception Exception if something goes wrong
      */
     public ObjectName preRegister(MBeanServer server, ObjectName name)
         throws Exception {
@@ -416,7 +416,7 @@
      * <P>
      * Stops the monitor.
      *
-     * @exception Exception
+     * @exception Exception if something goes wrong
      */
     public void preDeregister() throws Exception {
 
--- a/jdk/src/java.management/share/classes/javax/management/openmbean/ArrayType.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/openmbean/ArrayType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -793,6 +793,7 @@
      * array type description = 3-dimension array of java.lang.String
      * }</pre>
      *
+     * @param <E> the Java type that described instances must have
      * @param  elementType  the <i>open type</i> of element values contained
      *                      in the arrays described by this <tt>ArrayType</tt>
      *                      instance; must be an instance of either
@@ -800,7 +801,7 @@
      *                      <tt>TabularType</tt> or another <tt>ArrayType</tt>
      *                      with a <tt>SimpleType</tt>, <tt>CompositeType</tt>
      *                      or <tt>TabularType</tt> as its <tt>elementType</tt>.
-     *
+     * @return an {@code ArrayType} instance
      * @throws OpenDataException if <var>elementType's className</var> is not
      *                           one of the allowed Java class names for open
      *                           data.
@@ -834,12 +835,14 @@
      * array type description = 3-dimension array of int
      * }</pre>
      *
+     * @param <T> the Java type that described instances must have
      * @param arrayClass a primitive array class such as {@code int[].class},
      *                   {@code boolean[][].class}, etc. The {@link
      *                   #getElementOpenType()} method of the returned
      *                   {@code ArrayType} returns the {@link SimpleType}
      *                   corresponding to the wrapper type of the primitive
      *                   type of the array.
+     * @return an {@code ArrayType} instance
      *
      * @throws IllegalArgumentException if <var>arrayClass</var> is not
      *                                  a primitive array.
--- a/jdk/src/java.management/share/classes/javax/management/timer/Timer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/timer/Timer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -195,7 +195,7 @@
      *
      * @return The name of the timer MBean registered.
      *
-     * @exception java.lang.Exception
+     * @exception java.lang.Exception if something goes wrong
      */
     public ObjectName preRegister(MBeanServer server, ObjectName name)
         throws java.lang.Exception {
@@ -217,7 +217,7 @@
      * <P>
      * Stops the timer.
      *
-     * @exception java.lang.Exception
+     * @exception java.lang.Exception if something goes wrong
      */
     public void preDeregister() throws java.lang.Exception {
 
--- a/jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapURL.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapURL.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,9 +26,6 @@
 package com.sun.jndi.ldap;
 
 import javax.naming.*;
-import javax.naming.directory.*;
-import javax.naming.spi.*;
-import java.net.URL;
 import java.net.MalformedURLException;
 import java.io.UnsupportedEncodingException;
 import java.util.StringTokenizer;
@@ -211,43 +208,52 @@
 
         // query begins with a '?' or is null
 
-        if (query == null) {
+        if (query == null || query.length() < 2) {
+            return;
+        }
+
+        int currentIndex = 1;
+        int nextQmark;
+        int endIndex;
+
+        // attributes:
+        nextQmark = query.indexOf('?', currentIndex);
+        endIndex = nextQmark == -1 ? query.length() : nextQmark;
+        if (endIndex - currentIndex > 0) {
+            attributes = query.substring(currentIndex, endIndex);
+        }
+        currentIndex = endIndex + 1;
+        if (currentIndex >= query.length()) {
             return;
         }
 
-        int qmark2 = query.indexOf('?', 1);
-
-        if (qmark2 < 0) {
-            attributes = query.substring(1);
+        // scope:
+        nextQmark = query.indexOf('?', currentIndex);
+        endIndex = nextQmark == -1 ? query.length() : nextQmark;
+        if (endIndex - currentIndex > 0) {
+            scope = query.substring(currentIndex, endIndex);
+        }
+        currentIndex = endIndex + 1;
+        if (currentIndex >= query.length()) {
             return;
-        } else if (qmark2 != 1) {
-            attributes = query.substring(1, qmark2);
         }
 
-        int qmark3 = query.indexOf('?', qmark2 + 1);
-
-        if (qmark3 < 0) {
-            scope = query.substring(qmark2 + 1);
+        // filter:
+        nextQmark = query.indexOf('?', currentIndex);
+        endIndex = nextQmark == -1 ? query.length() : nextQmark;
+        if (endIndex - currentIndex > 0) {
+            filter = query.substring(currentIndex, endIndex);
+            filter = UrlUtil.decode(filter, "UTF8");
+        }
+        currentIndex = endIndex + 1;
+        if (currentIndex >= query.length()) {
             return;
-        } else if (qmark3 != qmark2 + 1) {
-            scope = query.substring(qmark2 + 1, qmark3);
         }
 
-        int qmark4 = query.indexOf('?', qmark3 + 1);
-
-        if (qmark4 < 0) {
-            filter = query.substring(qmark3 + 1);
-        } else {
-            if (qmark4 != qmark3 + 1) {
-                filter = query.substring(qmark3 + 1, qmark4);
-            }
-            extensions = query.substring(qmark4 + 1);
-            if (extensions.length() > 0) {
-                extensions = UrlUtil.decode(extensions, "UTF8");
-            }
-        }
-        if (filter != null && filter.length() > 0) {
-            filter = UrlUtil.decode(filter, "UTF8");
+        // extensions:
+        if (query.length() - currentIndex > 0) {
+            extensions = query.substring(currentIndex);
+            extensions = UrlUtil.decode(extensions, "UTF8");
         }
     }
 
--- a/jdk/src/java.security.jgss/share/classes/org/ietf/jgss/GSSCredential.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.security.jgss/share/classes/org/ietf/jgss/GSSCredential.java	Mon Apr 27 09:17:39 2015 -0700
@@ -35,7 +35,7 @@
  * may be used to perform context initiation, acceptance, or both.<p>
  *
  * Credentials are instantiated using one of the
- * <code>createCredential</code> methods in the {@link GSSManager
+ * {@code createCredential} methods in the {@link GSSManager
  * GSSManager} class. GSS-API credential creation is not
  * intended to provide a "login to the network" function, as such a
  * function would involve the creation of new credentials rather than
@@ -75,7 +75,7 @@
  *
  *    Oid [] mechs = cred.getMechs();
  *    if (mechs != null) {
- *            for (int i = 0; i < mechs.length; i++)
+ *            for (int i = 0; i{@literal <} mechs.length; i++)
  *                    System.out.println(mechs[i].toString());
  *    }
  *
@@ -297,8 +297,8 @@
      * with a variety of clients using different security mechanisms.<p>
      *
      * This routine adds the new credential element "in-place".  To add the
-     * element in a new credential, first call <code>clone</code> to obtain a
-     * copy of this credential, then call its <code>add</code> method.<p>
+     * element in a new credential, first call {@code clone} to obtain a
+     * copy of this credential, then call its {@code add} method.<p>
      *
      * As always, GSS-API implementations must impose a local access-control
      * policy on callers to prevent unauthorized callers from acquiring
@@ -311,7 +311,7 @@
      * getRemainingAcceptLifetime} on the credential.
      *
      * @param name the name of the principal for whom this credential is to
-     * be acquired.  Use <code>null</code> to specify the default
+     * be acquired.  Use {@code null} to specify the default
      * principal.
      * @param initLifetime the number of seconds that the credential element
      * should remain valid for initiating of security contexts. Use {@link
@@ -354,8 +354,8 @@
      * object.  The two credentials must be acquired over the same
      * mechanisms and must refer to the same principal.
      *
-     * @return <code>true</code> if the two GSSCredentials assert the same
-     * entity; <code>false</code> otherwise.
+     * @return {@code true} if the two GSSCredentials assert the same
+     * entity; {@code false} otherwise.
      * @param another another GSSCredential for comparison to this one
      */
     public boolean equals(Object another);
--- a/jdk/src/java.smartcardio/share/classes/javax/smartcardio/Card.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.smartcardio/share/classes/javax/smartcardio/Card.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,7 @@
      * Returns the CardChannel for the basic logical channel. The basic
      * logical channel has a channel number of 0.
      *
+     * @return the CardChannel for the basic logical channel
      * @throws SecurityException if a SecurityManager exists and the
      *   caller does not have the required
      *   {@linkplain CardPermission permission}
@@ -82,6 +83,7 @@
      * opened by issuing a <code>MANAGE CHANNEL</code> command that should use
      * the format <code>[00 70 00 00 01]</code>.
      *
+     * @return the logical channel which has been opened
      * @throws SecurityException if a SecurityManager exists and the
      *   caller does not have the required
      *   {@linkplain CardPermission permission}
@@ -137,6 +139,7 @@
      *
      * @param controlCode the control code of the command
      * @param command the command data
+     * @return the response from the terminal device
      *
      * @throws SecurityException if a SecurityManager exists and the
      *   caller does not have the required
--- a/jdk/src/java.smartcardio/share/classes/javax/smartcardio/CardTerminal.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.smartcardio/share/classes/javax/smartcardio/CardTerminal.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -83,6 +83,7 @@
      * @throws SecurityException if a SecurityManager exists and the
      *   caller does not have the required
      *   {@linkplain CardPermission permission}
+     * @return the card the connection has been established with
      */
     public abstract Card connect(String protocol) throws CardException;
 
--- a/jdk/src/java.smartcardio/share/classes/javax/smartcardio/CardTerminals.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.smartcardio/share/classes/javax/smartcardio/CardTerminals.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -105,6 +105,7 @@
      * Returns the terminal with the specified name or null if no such
      * terminal exists.
      *
+     * @param name the terminal name
      * @return the terminal with the specified name or null if no such
      * terminal exists.
      *
--- a/jdk/src/java.transaction/share/classes/javax/transaction/InvalidTransactionException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.transaction/share/classes/javax/transaction/InvalidTransactionException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,10 +39,17 @@
 @SuppressWarnings("serial")             // serialVersionUID intentionally omitted
 public class InvalidTransactionException extends java.rmi.RemoteException {
 
+    /**
+     * Constructs an {@code InvalidTransactionException}.
+     */
     public InvalidTransactionException() {
         super();
     }
 
+    /**
+     * Constructs an {@code InvalidTransactionException}.
+     * @param msg the detail message
+     */
     public InvalidTransactionException(String msg) {
         super(msg);
     }
--- a/jdk/src/java.transaction/share/classes/javax/transaction/TransactionRequiredException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.transaction/share/classes/javax/transaction/TransactionRequiredException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,10 +38,17 @@
 @SuppressWarnings("serial")             // serialVersionUID intentionally omitted
 public class TransactionRequiredException extends java.rmi.RemoteException {
 
+    /**
+     * Constructs a {@code TransactionRequiredException}.
+     */
     public TransactionRequiredException() {
         super();
     }
 
+    /**
+     * Constructs a {@code TransactionRequiredException}.
+     * @param msg the detail message
+     */
     public TransactionRequiredException(String msg) {
         super(msg);
     }
--- a/jdk/src/java.transaction/share/classes/javax/transaction/TransactionRolledbackException.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.transaction/share/classes/javax/transaction/TransactionRolledbackException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,10 +41,17 @@
 @SuppressWarnings("serial")             // serialVersionUID intentionally omitted
 public class TransactionRolledbackException extends java.rmi.RemoteException {
 
+    /**
+     * Constructs a {@code TransactionRolledbackException}.
+     */
     public TransactionRolledbackException() {
         super();
     }
 
+    /**
+     * Constructs a {@code TransactionRolledbackException}.
+     * @param msg the detail message
+     */
     public TransactionRolledbackException(String msg) {
         super(msg);
     }
--- a/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dom/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dom/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -44,11 +44,7 @@
 RFC 3275: XML-Signature Syntax and Processing</a>
 </ul>
 
-<p>
-<dl>
-<dt><b>Since:</b></dt>
-  <dd>1.6</dd>
-</dl>
+@since 1.6
 
 </body>
 </html>
--- a/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/dom/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/dom/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -44,11 +44,7 @@
 RFC 3275: XML-Signature Syntax and Processing</a>
 </ul>
 
-<p>
-<dl>
-<dt><b>Since:</b></dt>
-  <dd>1.6</dd>
-</dl>
+@since 1.6
 
 </body>
 </html>
--- a/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/keyinfo/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/keyinfo/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -55,11 +55,7 @@
 RFC 3275: XML-Signature Syntax and Processing</a>
 </ul>
 
-<p>
-<dl>
-<dt><b>Since:</b></dt>
-  <dd>1.6</dd>
-</dl>
+@since 1.6
 
 </body>
 </html>
--- a/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -65,11 +65,7 @@
 RFC 3275: XML-Signature Syntax and Processing</a>
 </ul>
 
-<p>
-<dl>
-<dt><b>Since:</b></dt>
-  <dd>1.6</dd>
-</dl>
+@since 1.6
 
 </body>
 </html>
--- a/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/spec/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/spec/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -49,11 +49,7 @@
 XPath Filter 2.0 Transform Algorithm: W3C Recommendation</a>
 </ul>
 
-<p>
-<dl>
-<dt><b>Since:</b></dt>
-  <dd>1.6</dd>
-</dl>
+@since 1.6
 
 </body>
 </html>
--- a/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/package.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/java.xml.crypto/share/classes/javax/xml/crypto/package.html	Mon Apr 27 09:17:39 2015 -0700
@@ -42,11 +42,7 @@
 RFC 3275: XML-Signature Syntax and Processing</a>
 </ul>
 
-<p>
-<dl>
-<dt><b>Since:</b></dt>
-  <dd>1.6</dd>
-</dl>
+@since 1.6
 
 </body>
 </html>
--- a/jdk/src/jdk.accessibility/windows/native/jabswitch/jabswitch_manifest.rc	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-#define XSTR(x) STR(x)
-#define STR(x)  #x
-
-1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ XSTR(JAB_MANIFEST_EMBED)
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Bootstrap.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Bootstrap.java	Mon Apr 27 09:17:39 2015 -0700
@@ -43,13 +43,12 @@
      * <p> May throw an unspecified error if initialization of the
      * {@link com.sun.jdi.VirtualMachineManager} fails or if
      * the virtual machine manager is unable to locate or create
-     * any {@link com.sun.jdi.connect.Connector Connectors}. </p>
-     * <p>
+     * any {@link com.sun.jdi.connect.Connector Connectors}.
+     *
      * @throws java.lang.SecurityException if a security manager has been
      * installed and it denies {@link JDIPermission}
-     * <tt>("virtualMachineManager")</tt> or other unspecified
+     * ("{@code virtualMachineManager}") or other unspecified
      * permissions required by the implementation.
-     * </p>
      */
     static public synchronized VirtualMachineManager virtualMachineManager() {
         return com.sun.tools.jdi.VirtualMachineManagerImpl.virtualMachineManager();
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Field.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Field.java	Mon Apr 27 09:17:39 2015 -0700
@@ -65,22 +65,22 @@
      *    short s;
      *    Date d;
      *    byte[] ba;</PRE>
-     * And the JDI client defines these <CODE>Field</CODE> objects:
+     * And the JDI client defines these {@code Field} objects:
      * <PRE>
      *    Field sField = targetClass.fieldByName("s");
      *    Field dField = targetClass.fieldByName("d");
      *    Field baField = targetClass.fieldByName("ba");</PRE>
-     * to mirror the corresponding fields, then <CODE>sField.type()</CODE>
-     * is a {@link ShortType}, <CODE>dField.type()</CODE> is the
-     * {@link ReferenceType} for <CODE>java.util.Date</CODE> and
-     * <CODE>((ArrayType)(baField.type())).componentType()</CODE> is a
+     * to mirror the corresponding fields, then {@code sField.type()}
+     * is a {@link ShortType}, {@code dField.type()} is the
+     * {@link ReferenceType} for {@code java.util.Date} and
+     * {@code ((ArrayType)(baField.type())).componentType()} is a
      * {@link ByteType}.
      * <P>
      * Note: if the type of this field is a reference type (class,
      * interface, or array) and it has not been created or loaded
      * by the declaring type's class loader - that is,
-     * {@link TypeComponent#declaringType <CODE>declaringType()</CODE>}
-     * <CODE>.classLoader()</CODE>,
+     * {@link TypeComponent#declaringType declaringType()}
+     * {@code .classLoader()},
      * then ClassNotLoadedException will be thrown.
      * Also, a reference type may have been loaded but not yet prepared,
      * in which case the type will be returned
@@ -100,28 +100,28 @@
     /**
      * Determine if this is a transient field.
      *
-     * @return <code>true</code> if this field is transient; false otherwise.
+     * @return {@code true} if this field is transient; {@code false} otherwise.
      */
     boolean isTransient();
 
     /**
      * Determine if this is a volatile field.
      *
-     * @return <code>true</code> if this field is volatile; false otherwise.
+     * @return {@code true} if this field is volatile; {@code false} otherwise.
      */
     boolean isVolatile();
 
     /**
      * Determine if this is a field that represents an enum constant.
-     * @return <code>true</code> if this field represents an enum constant;
-     * false otherwise.
+     * @return {@code true} if this field represents an enum constant;
+     * {@code false} otherwise.
      */
     boolean isEnumConstant();
 
     /**
      * Compares the specified Object with this field for equality.
      *
-     * @return true if the Object is a Field and if both
+     * @return {@code true} if the Object is a Field and if both
      * mirror the same field (declared in the same class or interface, in
      * the same VM).
      */
@@ -130,7 +130,7 @@
     /**
      * Returns the hash code value for this Field.
      *
-     * @return the integer hash code
+     * @return the integer hash code.
      */
     int hashCode();
 }
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,20 +26,20 @@
 package com.sun.jdi;
 
 /**
- * The <code>JDIPermission</code> class represents access rights to
- * the <code>VirtualMachineManager</code>.  This is the permission
+ * The {@code JDIPermission} class represents access rights to
+ * the {@code VirtualMachineManager}.  This is the permission
  * which the SecurityManager will check when code that is running with
  * a SecurityManager requests access to the VirtualMachineManager, as
  * defined in the Java Debug Interface (JDI) for the Java platform.
  * <P>
- * A <code>JDIPermission</code> object contains a name (also referred
+ * A {@code JDIPermission} object contains a name (also referred
  * to as a "target name") but no actions list; you either have the
  * named permission or you don't.
  * <P>
  * The following table provides a summary description of what the
  * permission allows, and discusses the risks of granting code the
  * permission.
- * <P>
+ *
  * <table border=1 cellpadding=5 summary="Table shows permission
  * target name, what the permission allows, and associated risks">
  * <tr>
@@ -51,10 +51,10 @@
  * <tr>
  *   <td>virtualMachineManager</td>
  *   <td>Ability to inspect and modify the JDI objects in the
- *   <code>VirtualMachineManager</code>
+ *   {@code VirtualMachineManager}
  *   </td>
  *   <td>This allows an attacker to control the
- *   <code>VirtualMachineManager</code> and cause the system to
+ *   {@code VirtualMachineManager} and cause the system to
  *   misbehave.
  *   </td>
  * </tr>
@@ -82,8 +82,8 @@
 public final class JDIPermission extends java.security.BasicPermission {
     private static final long serialVersionUID = -6988461416938786271L;
     /**
-     * The <code>JDIPermission</code> class represents access rights to the
-     * <code>VirtualMachineManager</code>
+     * The {@code JDIPermission} class represents access rights to the
+     * {@code VirtualMachineManager}
      * @param name Permission name. Must be "virtualMachineManager".
      * @throws IllegalArgumentException if the name argument is invalid.
      */
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Method.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Method.java	Mon Apr 27 09:17:39 2015 -0700
@@ -49,7 +49,7 @@
      * This type name is always available even if
      * the type has not yet been created or loaded.
      *
-     * @return a String containing the return type name.
+     * @return a {@code String} containing the return type name.
      */
     String returnTypeName();
 
@@ -60,8 +60,8 @@
      * Note: if the return type of this method is a reference type (class,
      * interface, or array) and it has not been created or loaded
      * by the declaring type's class loader - that is,
-     * {@link TypeComponent#declaringType <CODE>declaringType()</CODE>}
-     * <CODE>.classLoader()</CODE>,
+     * {@link TypeComponent#declaringType declaringType()}
+     * {@code .classLoader()},
      * then ClassNotLoadedException will be thrown.
      * Also, a reference type may have been loaded but not yet prepared,
      * in which case the type will be returned
@@ -93,7 +93,6 @@
      * as specified at compile-time.
      * If the formal parameter was declared with an ellipsis, then
      * it is represented as an array of the type before the ellipsis.
-     *
      */
     List<String> argumentTypeNames();
 
@@ -105,8 +104,8 @@
      * is a reference type (class, interface, or array)
      * and it has not been created or loaded
      * by the declaring type's class loader - that is,
-     * {@link TypeComponent#declaringType <CODE>declaringType()</CODE>}
-     * <CODE>.classLoader()</CODE>,
+     * {@link TypeComponent#declaringType declaringType()}
+     * {@code .classLoader()},
      * then ClassNotLoadedException will be thrown.
      * Also, a reference type may have been loaded but not yet prepared,
      * in which case the list will be returned
@@ -132,16 +131,16 @@
     /**
      * Determine if this method is abstract.
      *
-     * @return <code>true</code> if the method is declared abstract;
-     * false otherwise.
+     * @return {@code true} if the method is declared abstract;
+     * {@code false} otherwise.
      */
     boolean isAbstract();
 
     /**
      * Determine if this method is a default method
      *
-     * @return <code>true</code> if the method is declared default;
-     * false otherwise
+     * @return {@code true} if the method is declared default;
+     * {@code false} otherwise.
      *
      * @since 1.8
      */
@@ -152,24 +151,24 @@
     /**
      * Determine if this method is synchronized.
      *
-     * @return <code>true</code> if the method is declared synchronized;
-     * false otherwise.
+     * @return {@code true} if the method is declared synchronized;
+     * {@code false} otherwise.
      */
     boolean isSynchronized();
 
     /**
      * Determine if this method is native.
      *
-     * @return <code>true</code> if the method is declared native;
-     * false otherwise.
+     * @return {@code true} if the method is declared native;
+     * {@code false} otherwise.
      */
     boolean isNative();
 
     /**
      * Determine if this method accepts a variable number of arguments.
      *
-     * @return <code>true</code> if the method accepts a variable number
-     * of arguments, false otherwise.
+     * @return {@code true} if the method accepts a variable number
+     * of arguments, {@code false} otherwise.
      *
      * @since 1.5
      */
@@ -180,8 +179,8 @@
      * methods are defined in
      * <cite>The Java&trade; Language Specification</cite>.
      *
-     * @return <code>true</code> if the method is a bridge method,
-     * false otherwise.
+     * @return {@code true} if the method is a bridge method,
+     * {@code false} otherwise.
      *
      * @since 1.5
      */
@@ -190,23 +189,23 @@
     /**
      * Determine if this method is a constructor.
      *
-     * @return <code>true</code> if the method is a constructor;
-     * false otherwise.
+     * @return {@code true} if the method is a constructor;
+     * {@code false} otherwise.
      */
     boolean isConstructor();
 
     /**
      * Determine if this method is a static initializer.
      *
-     * @return <code>true</code> if the method is a static initializer;
-     * false otherwise.
+     * @return {@code true} if the method is a static initializer;
+     * {@code false} otherwise.
      */
     boolean isStaticInitializer();
 
     /**
      * Determine if this method is obsolete.
      *
-     * @return <code>true</code> if this method has been made obsolete by a
+     * @return {@code true} if this method has been made obsolete by a
      * {@link VirtualMachine#redefineClasses} operation.
      *
      * @since 1.4
@@ -218,7 +217,7 @@
      * each executable source line in this method.
      * <P>
      * This method is equivalent to
-     * <code>allLineLocations(vm.getDefaultStratum(),null)</code> -
+     * {@code allLineLocations(vm.getDefaultStratum(),null)} -
      * see {@link #allLineLocations(String,String)}
      * for more information.
      *
@@ -252,16 +251,16 @@
      * (see {@link Location} for a description of strata).
      *
      * @param stratum The stratum to retrieve information from
-     * or <code>null</code> for the {@link ReferenceType#defaultStratum()}
+     * or {@code null} for the {@link ReferenceType#defaultStratum()}
      *
      * @param sourceName Return locations only within this
-     * source file or <code>null</code> to return locations.
+     * source file or {@code null} to return locations.
      *
      * @return a List of all source line {@link Location} objects.
      *
      * @throws AbsentInformationException if there is no line
      * number information for this (non-native, non-abstract)
-     * method.  Or if <i>sourceName</i> is non-<code>null</code>
+     * method.  Or if <i>sourceName</i> is non-{@code null}
      * and source name information is not present.
      *
      * @since 1.4
@@ -274,8 +273,8 @@
      * that map to the given line number.
      * <P>
      * This method is equivalent to
-     * <code>locationsOfLine(vm.getDefaultStratum(), null,
-     * lineNumber)</code> -
+     * {@code locationsOfLine(vm.getDefaultStratum(), null,
+     * lineNumber)} -
      * see {@link
      * #locationsOfLine(java.lang.String,java.lang.String,int)}
      * for more information.
@@ -320,7 +319,7 @@
      *
      * @throws AbsentInformationException if there is no line
      * number information for this method.
-     * Or if <i>sourceName</i> is non-<code>null</code>
+     * Or if <i>sourceName</i> is non-{@code null}
      * and source name information is not present.
      *
      * @since 1.4
@@ -436,7 +435,7 @@
     /**
      * Returns the hash code value for this Method.
      *
-     * @return the integer hash code
+     * @return the integer hash code.
      */
     int hashCode();
 }
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Value.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Value.java	Mon Apr 27 09:17:39 2015 -0700
@@ -63,47 +63,47 @@
  *   <TH id="type"     align="left">{@link Type} of value<br>{@link #type() Value.type()}</TH>
  * <TR>
  *   <TD headers="primval kind">     a boolean</TD>
- *   <TD headers="primval example">  <CODE>true</CODE></TD>
+ *   <TD headers="primval example">  {@code true}</TD>
  *   <TD headers="primval mirrored"> {@link BooleanValue}</TD>
  *   <TD headers="primval type">     {@link BooleanType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a byte</TD>
- *   <TD headers="primval example">  <CODE>(byte)4</CODE></TD>
+ *   <TD headers="primval example">  {@code (byte)4}</TD>
  *   <TD headers="primval mirrored"> {@link ByteValue}</TD>
  *   <TD headers="primval type">     {@link ByteType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a char</TD>
- *   <TD headers="primval example">  <CODE>'a'</CODE></TD>
+ *   <TD headers="primval example">  {@code 'a'}</TD>
  *   <TD headers="primval mirrored"> {@link CharValue}</TD>
  *   <TD headers="primval type">     {@link CharType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a double</TD>
- *   <TD headers="primval example">  <CODE>3.1415926</CODE></TD>
+ *   <TD headers="primval example">  {@code 3.1415926}</TD>
  *   <TD headers="primval mirrored"> {@link DoubleValue}</TD>
  *   <TD headers="primval type">     {@link DoubleType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a float</TD>
- *   <TD headers="primval example">  <CODE>2.5f</CODE></TD>
+ *   <TD headers="primval example">  {@code 2.5f}</TD>
  *   <TD headers="primval mirrored"> {@link FloatValue}</TD>
  *   <TD headers="primval type">     {@link FloatType}</TD>
  * <TR>
  *   <TD headers="primval kind">     an int</TD>
- *   <TD headers="primval example">  <CODE>22</CODE></TD>
+ *   <TD headers="primval example">  {@code 22}</TD>
  *   <TD headers="primval mirrored"> {@link IntegerValue}</TD>
  *   <TD headers="primval type">     {@link IntegerType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a long</TD>
- *   <TD headers="primval example">  <CODE>1024L</CODE></TD>
+ *   <TD headers="primval example">  {@code 1024L}</TD>
  *   <TD headers="primval mirrored"> {@link LongValue}</TD>
  *   <TD headers="primval type">     {@link LongType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a short</TD>
- *   <TD headers="primval example">  <CODE>(short)12</CODE></TD>
+ *   <TD headers="primval example">  {@code (short)12}</TD>
  *   <TD headers="primval mirrored"> {@link ShortValue}</TD>
  *   <TD headers="primval type">     {@link ShortType}</TD>
  * <TR>
  *   <TD headers="primval kind">     a void</TD>
- *   <TD headers="primval example">  <CODE>&nbsp;</CODE></TD>
+ *   <TD headers="primval example">  </TD>
  *   <TD headers="primval mirrored"> {@link VoidValue}</TD>
  *   <TD headers="primval type">     {@link VoidType}</TD>
  * <TR BGCOLOR="#EEEEFF">
@@ -115,50 +115,50 @@
  *   <TH id="type2"     align="left">{@link Type} of value<br>{@link #type() Value.type()}</TH>
  * <TR>
  *   <TD headers="objref kind2">     a class instance</TD>
- *   <TD headers="objref example2">  <CODE>this</CODE></TD>
+ *   <TD headers="objref example2">  {@code this}</TD>
  *   <TD headers="objref mirrored2"> {@link ObjectReference}</TD>
  *   <TD headers="objref type2">     {@link ClassType}</TD>
  * <TR>
  *   <TD headers="objref kind2">     an array</TD>
- *   <TD headers="objref example2">  <CODE>new int[5]</CODE></TD>
+ *   <TD headers="objref example2">  {@code new int[5]}</TD>
  *   <TD headers="objref mirrored2"> {@link ArrayReference}</TD>
  *   <TD headers="objref type2">     {@link ArrayType}</TD>
  * <TR>
  *   <TD headers="objref kind2">     a string</TD>
- *   <TD headers="objref example2">  <CODE>"hello"</CODE></TD>
+ *   <TD headers="objref example2">  {@code "hello"}</TD>
  *   <TD headers="objref mirrored2"> {@link StringReference}</TD>
  *   <TD headers="objref type2">     {@link ClassType}</TD>
  * <TR>
  *   <TD headers="objref kind2">     a thread</TD>
- *   <TD headers="objref example2">  <CODE>Thread.currentThread()</CODE></TD>
+ *   <TD headers="objref example2">  {@code Thread.currentThread()}</TD>
  *   <TD headers="objref mirrored2"> {@link ThreadReference}</TD>
  *   <TD headers="objref type2">     {@link ClassType}</TD>
  * <TR>
  *   <TD headers="objref kind2">     a thread group</TD>
- *   <TD headers="objref example2">  <CODE>Thread.currentThread()<br>&nbsp;&nbsp;.getThreadGroup()</CODE></TD>
+ *   <TD headers="objref example2">  {@code Thread.currentThread()}<br>&nbsp;&nbsp;{@code .getThreadGroup()}</TD>
  *   <TD headers="objref mirrored2"> {@link ThreadGroupReference}</TD>
  *   <TD headers="objref type2">     {@link ClassType}</TD>
  * <TR>
- *   <TD headers="objref kind2">     a <CODE>java.lang.Class</CODE><br>instance</TD>
- *   <TD headers="objref example2">  <CODE>this.getClass()</CODE></TD>
+ *   <TD headers="objref kind2">     a {@code java.lang.Class}<br>instance</TD>
+ *   <TD headers="objref example2">  {@code this.getClass()}</TD>
  *   <TD headers="objref mirrored2"> {@link ClassObjectReference}</TD>
  *   <TD headers="objref type2">     {@link ClassType}</TD>
  * <TR>
  *   <TD headers="objref kind2">     a class loader</TD>
- *   <TD headers="objref example2">  <CODE>this.getClass()<br>&nbsp;&nbsp;.getClassLoader() </CODE></TD>
+ *   <TD headers="objref example2">  {@code this.getClass()}<br>&nbsp;&nbsp;{@code .getClassLoader()}</TD>
  *   <TD headers="objref mirrored2"> {@link ClassLoaderReference}</TD>
  *   <TD headers="objref type2">     {@link ClassType}</TD>
  * <TR BGCOLOR="#EEEEFF">
  *   <TH id="other" colspan=4>Other</TH>
  * <TR BGCOLOR="#EEEEFF">
- *   <TH id="kind3"     align="left">Kind of value</TD>
- *   <TH id="example3"  align="left">For example -<br>expression in target</TD>
- *   <TH id="mirrored3" align="left">Is mirrored as</TD>
- *   <TH id="type3"     align="left">{@link Type} of value</TD>
+ *   <TD id="kind3"     align="left">Kind of value</TD>
+ *   <TD id="example3"  align="left">For example -<br>expression in target</TD>
+ *   <TD id="mirrored3" align="left">Is mirrored as</TD>
+ *   <TD id="type3"     align="left">{@link Type} of value</TD>
  * <TR>
  *   <TD headers="other kind3">     null</TD>
- *   <TD headers="other example3">  <CODE>null</CODE></TD>
- *   <TD headers="other mirrored3"> <CODE>null</CODE></TD>
+ *   <TD headers="other example3">  {@code null}</TD>
+ *   <TD headers="other mirrored3"> {@code null}</TD>
  *   <TD headers="other type3">     n/a</TD>
  * </TABLE>
  *
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java	Mon Apr 27 09:17:39 2015 -0700
@@ -50,7 +50,7 @@
  * examples use the command line syntax in Sun's implementation.
  * Some {@link com.sun.jdi.connect.Connector} implementations may require slightly
  * different handling than presented below.
- * <p>
+ *
  * <TABLE BORDER WIDTH="75%" SUMMARY="Four scenarios for connecting a debugger
  *  to a virtual machine">
  * <TR>
@@ -85,7 +85,7 @@
  * <UL>
  * <LI>
  * Target VM is launched using the options
- * <code>-agentlib:jdwp=transport=xxx,server=y</code>
+ * {@code -agentlib:jdwp=transport=xxx,server=y}
  * </LI>
  * <LI>
  * Target VM generates and outputs the tranport-specific address at which it will
@@ -110,6 +110,7 @@
  * <TR>
  * <TD>Target VM attaches to previously-running debugger</TD>
  * <TD>
+ * <UL>
  * <LI>
  * At startup, debugger selects one or more connectors from
  * the list returned by {@link #listeningConnectors} for one or more
@@ -126,7 +127,7 @@
  * a target VM to connect.</LI>
  * <LI>
  * Later, target VM is launched by end user with the options
- * <code>-agentlib:jdwp=transport=xxx,address=yyy</code>
+ * {@code -agentlib:jdwp=transport=xxx,address=yyy}
  * where "xxx" the transport for one of the connectors selected by the
  * the debugger and "yyy"
  * is the address generated by
@@ -135,15 +136,17 @@
  * <LI>
  * Debugger's call to {@link com.sun.jdi.connect.ListeningConnector#accept(java.util.Map)} returns
  * a {@link VirtualMachine} mirror.</LI>
+ * </UL>
  * </TD>
  * </TR>
  *
  * <TR>
  * <TD>Target VM launches debugger (sometimes called "Just-In-Time" debugging)</TD>
  * <TD>
+ * <UL>
  * <LI>
  * Target VM is launched with the options
- * <code>-agentlib:jdwp=launch=cmdline,onuncaught=y,transport=xxx,server=y</code>
+ * {@code -agentlib:jdwp=launch=cmdline,onuncaught=y,transport=xxx,server=y}
  * </LI>
  * <LI>
  * Later, an uncaught exception is thrown in the target VM. The target
@@ -171,6 +174,7 @@
  * {@link com.sun.jdi.connect.AttachingConnector#attach(java.util.Map)} method
  * of the selected to attach to the target VM. A {@link VirtualMachine}
  * mirror is returned.
+ * </UL>
  * </TD>
  * </TR>
  * </TABLE>
@@ -380,7 +384,7 @@
       * a virtual machine mirror when a connection is established
       * to a target VM. Only developers creating new Connector
       * implementations should need to make direct use of this
-      * method. </p>
+      * method.
       *
       * @param  connection
       *         The open connection to the target VM.
@@ -415,7 +419,7 @@
       * a virtual machine mirror when a connection is established
       * to a target VM. Only developers creating new Connector
       * implementations should need to make direct use of this
-      * method. </p>
+      * method.
       *
       * @return the new virtual machine
       *
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/Connection.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/Connection.java	Mon Apr 27 09:17:39 2015 -0700
@@ -51,7 +51,7 @@
  *
  * <p> A Connection is safe for access by multiple concurrent threads,
  * although at most one thread may be reading and at most one thread may
- * be writing at any given time. </p>
+ * be writing at any given time.
  *
  * @since 1.5
  */
@@ -70,18 +70,18 @@
      *
      * <p> Reading a packet does not do any integrity checking on
      * the packet aside from a check that the length of the packet
-     * (as indicated by the value of the <tt>length</tt> field, the
+     * (as indicated by the value of the {@code length} field, the
      * first four bytes of the packet) is 11 or more bytes.
-     * If the value of the <tt>length</tt> value is less then 11
-     * then an <tt>IOException</tt> is thrown.
+     * If the value of the {@code length} value is less then 11
+     * then an {@code IOException} is thrown.
      *
      * <p> Returns a byte array of a length equal to the length
      * of the received packet, or a byte array of length 0 when an
      * end of stream is encountered. If end of stream is encountered
      * after some, but not all bytes of a packet, are read then it
-     * is considered an I/O error and an <tt>IOException</tt> is
+     * is considered an I/O error and an {@code IOException} is
      * thrown. The first byte of the packet is stored in element
-     * <tt>0</tt> of the byte array, the second in element <tt>1</tt>,
+     * {@code 0} of the byte array, the second in element {@code 1},
      * and so on. The bytes in the byte array are laid out as per the
      * <a href="../../../../../../../../../technotes/guides/jpda/jdwp-spec.html">
      * JDWP specification</a>. That is, all fields in the packet
@@ -90,7 +90,7 @@
      * <p> This method may be invoked at any time.  If another thread has
      * already initiated a {@link #readPacket readPacket} on this
      * connection then the invocation of this method will block until the
-     * first operation is complete. </p>
+     * first operation is complete.
      *
      * @return  the packet read from the target VM
      *
@@ -123,21 +123,21 @@
      * href="../../../../../../../../../technotes/guides/jpda/jdwp-spec.html">
      * JDWP specification</a>. That is, all fields in the packet
      * are in big endian order. The first byte, that is element
-     * <tt>pkt[0]</tt>, is the first byte of the <tt>length</tt> field.
-     * <tt>pkt[1]</tt> is the second byte of the <tt>length</tt> field,
+     * {@code pkt[0]}, is the first byte of the {@code length} field.
+     * {@code pkt[1]} is the second byte of the {@code length} field,
      * and so on.
      *
      * <p> Writing a packet does not do any integrity checking on
      * the packet aside from checking the packet length. Checking
      * the packet length requires checking that the value of the
-     * <tt>length</tt> field (as indicated by the first four bytes
+     * {@code length} field (as indicated by the first four bytes
      * of the packet) is 11 or greater. Consequently the length of
      * the byte array provided to this method, that is
-     * <tt>pkt.length</tt>, must be 11 or more, and must be equal
-     * or greater than the value of the <tt>length</tt> field. If the
+     * {@code pkt.length}, must be 11 or more, and must be equal
+     * or greater than the value of the {@code length} field. If the
      * length of the byte array is greater than the value of
-     * the <tt>length</tt> field then all bytes from element
-     * <tt>pkt[length]</tt> onwards are ignored. In other words,
+     * the {@code length} field then all bytes from element
+     * {@code pkt[length]} onwards are ignored. In other words,
      * any additional bytes that follow the packet in the byte
      * array are ignored and will not be transmitted to the target
      * VM.
@@ -152,7 +152,7 @@
      * <p> This method may be invoked at any time.  If another thread has
      * already initiated a write operation upon this Connection then
      * a subsequent invocation of this method will block until the first
-     * operation is complete. </p>
+     * operation is complete.
      *
      * @param   pkt
      *          The packet to write to the target VM.
@@ -165,7 +165,7 @@
      *          If an I/O error occurs.
      *
      * @throws  IllegalArgumentException
-     *          If the value of the <tt>length</tt> field is invalid,
+     *          If the value of the {@code length} field is invalid,
      *          or the byte array is of insufficient length.
      */
     public abstract void writePacket(byte pkt[]) throws IOException;
@@ -185,7 +185,7 @@
      * <p> This method may be invoked at any time.  If some other thread has
      * already invoked it, however, then another invocation will block until
      * the first invocation is complete, after which it will return without
-     * effect. </p>
+     * effect.
      *
      * @throws  java.io.IOException
      *          If an I/O error occurs
@@ -193,9 +193,9 @@
     public abstract void close() throws IOException;
 
     /**
-     * Tells whether or not this connection is open.  </p>
+     * Tells whether or not this connection is open.
      *
-     * @return <tt>true</tt> if, and only if, this connection is open
+     * @return {@code true} if and only if this connection is open
      */
     public abstract boolean isOpen();
 }
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/doc-files/signature.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/doc-files/signature.html	Mon Apr 27 09:17:39 2015 -0700
@@ -7,7 +7,7 @@
 <BODY BGCOLOR="white">
 <dl><dd>
 <Table Border="0">
-<caption><h2>JDI Type Signatures</h2></caption>
+<caption><font size=5><b>JDI Type Signatures</b></font></caption>
 <tr><th>Type Signature
 <th>Java Type
 <tr><td>Z<td>boolean
@@ -31,9 +31,9 @@
 </Table>
 </dd></dl>
 <p>For example, the Java method:
-<p><pre>    long f (int n, String s, int[] arr);
+<pre>    long f (int n, String s, int[] arr);
 </pre>has the following type signature:
-<p><pre>    (ILjava/lang/String;[I)J
+<pre>    (ILjava/lang/String;[I)J
 </pre>
 </BODY>
 </HTML>
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventSet.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventSet.java	Mon Apr 27 09:17:39 2015 -0700
@@ -51,7 +51,6 @@
  * <P>
  * The events that are grouped in an EventSet are restricted in the
  * following ways:
- * <P>
  * <UL>
  * <LI>Always singleton sets:
  *     <UL>
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java	Mon Apr 27 09:17:39 2015 -0700
@@ -29,9 +29,8 @@
 
 /**
  *
- *  Notification that a thread in the target VM is attempting
- *  to enter a monitor that is already acquired by another thread.
- * <P>
+ * Notification that a thread in the target VM is attempting
+ * to enter a monitor that is already acquired by another thread.
  *
  * @see EventQueue
  * @see MonitorContendedEnteredEvent
@@ -45,7 +44,6 @@
 
     /**
      * Returns the thread in which this event has occurred.
-     * <p>
      *
      * @return a {@link ThreadReference} which mirrors the event's thread in
      * the target VM.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java	Mon Apr 27 09:17:39 2015 -0700
@@ -31,7 +31,6 @@
  *
  *  Notification that a thread in the target VM is entering a monitor
  *  after waiting for it to be released by another thread.
- * <P>
  *
  * @see EventQueue
  * @see MonitorContendedEnterEvent
@@ -44,7 +43,6 @@
 
     /**
      * Returns the thread in which this event has occurred.
-     * <p>
      *
      * @return a {@link ThreadReference} which mirrors the event's thread in
      * the target VM.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitEvent.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitEvent.java	Mon Apr 27 09:17:39 2015 -0700
@@ -30,7 +30,6 @@
 /**
  * Notification that a thread in the target VM is about to
  * wait on a monitor object.
- * <P>
  *
  * @see EventQueue
  * @see MonitorWaitedEvent
@@ -43,7 +42,6 @@
 
     /**
      * Returns the thread in which monitor wait event has occurred.
-     * <p>
      *
      * @return a {@link ThreadReference} which mirrors the event's thread in
      * the target VM.
@@ -60,7 +58,7 @@
     /**
      * Returns the number of millisecond the thread will wait.
      *
-     * @return a <code>jlong</code> containing monitor wait time in milliseconds.
+     * @return a {@code jlong} containing monitor wait time in milliseconds.
      */
     public long  timeout();
 }
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java	Mon Apr 27 09:17:39 2015 -0700
@@ -30,7 +30,6 @@
 /**
  * Notification that a thread in the target VM has finished
  * waiting on an monitor object.
- * <P>
  *
  * @see EventQueue
  * @see MonitorWaitEvent
@@ -43,7 +42,6 @@
 
     /**
      * Returns the thread in which this event has occurred.
-     * <p>
      *
      * @return a {@link ThreadReference} which mirrors the event's thread in
      * the target VM.
@@ -60,7 +58,7 @@
     /**
      * Returns whether the wait has timed out or been interrupted.
      *
-     * @return <code>true</code> if the wait is timed out.
+     * @return {@code true} if the wait is timed out.
      */
     public boolean  timedout();
 
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequest.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -61,14 +61,14 @@
  * Filters can dramatically improve debugger performance by reducing the
  * amount of event traffic sent from the target VM to the debugger VM.
  * <p>
- * Any method on <code>EventRequest</code> which
- * takes <code>EventRequest</code> as an parameter may throw
+ * Any method on {@code EventRequest} which
+ * takes {@code EventRequest} as an parameter may throw
  * {@link com.sun.jdi.VMDisconnectedException} if the target VM is
  * disconnected and the {@link com.sun.jdi.event.VMDisconnectEvent} has been or is
  * available to be read from the {@link com.sun.jdi.event.EventQueue}.
  * <p>
- * Any method on <code>EventRequest</code> which
- * takes <code>EventRequest</code> as an parameter may throw
+ * Any method on {@code EventRequest} which
+ * takes {@code EventRequest} as an parameter may throw
  * {@link com.sun.jdi.VMOutOfMemoryException} if the target VM has run out of memory.
  *
  * @see com.sun.jdi.event.BreakpointEvent
@@ -84,8 +84,8 @@
     /**
      * Determines if this event request is currently enabled.
      *
-     * @return <code>true</code> if enabled;
-     * <code>false</code> otherwise.
+     * @return {@code true} if enabled;
+     * {@code false} otherwise.
      */
     boolean isEnabled();
 
@@ -97,18 +97,18 @@
      * and are included in event request lists such as
      * {@link EventRequestManager#breakpointRequests()}.
      *
-     * @param val <code>true</code> if the event request is to be enabled;
-     * <code>false</code> otherwise.
+     * @param val {@code true} if the event request is to be enabled;
+     * {@code false} otherwise.
      * @throws InvalidRequestStateException if this request
      * has been deleted.
      * @throws IllegalThreadStateException if this is a StepRequest,
-     * <code>val</code> is <code>true</code>, and the
+     * {@code val} is {@code true}, and the
      * thread named in the request has died or is not yet started.
      */
     void setEnabled(boolean val);
 
     /**
-     * Same as {@link #setEnabled <CODE>setEnabled(true)</CODE>}.
+     * Same as {@link #setEnabled setEnabled(true)}.
      * @throws InvalidRequestStateException if this request
      * has been deleted.
      * @throws IllegalThreadStateException if this is a StepRequest
@@ -117,7 +117,7 @@
     void enable();
 
     /**
-     * Same as {@link #setEnabled <CODE>setEnabled(false)</CODE>}.
+     * Same as {@link #setEnabled setEnabled(false)}.
      * @throws InvalidRequestStateException if this request
      * has been deleted.
      */
@@ -126,7 +126,7 @@
     /**
      * Limit the requested event to be reported at most once after a
      * given number of occurrences.  The event is not reported
-     * the first <code>count - 1</code> times this filter is reached.
+     * the first {@code count - 1} times this filter is reached.
      * To request a one-off event, call this method with a count of 1.
      * <p>
      * Once the count reaches 0, any subsequent filters in this request
@@ -139,7 +139,7 @@
      * @throws InvalidRequestStateException if this request is currently
      * enabled or has been deleted.
      * Filters may be added only to disabled requests.
-     * @throws IllegalArgumentException if <CODE>count</CODE>
+     * @throws IllegalArgumentException if {@code count}
      * is less than one.
      */
     void addCountFilter(int count);
@@ -189,7 +189,7 @@
      * These client-set properties are not used internally
      * by the JDI.
      * <p>
-     * The <code>get/putProperty</code> methods provide access to
+     * The {@code get/putProperty} methods provide access to
      * a small per-instance map. This is <b>not</b> to be confused
      * with {@link java.util.Properties}.
      * <p>
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java	Mon Apr 27 09:17:39 2015 -0700
@@ -217,20 +217,20 @@
      * activate this event request.
      * <p>
      * The returned request will control stepping only in the specified
-     * <code>thread</code>; all other threads will be unaffected.
-     * A <code>size</code>value of {@link com.sun.jdi.request.StepRequest#STEP_MIN} will generate a
+     * {@code thread}; all other threads will be unaffected.
+     * A {@code size} value of {@link com.sun.jdi.request.StepRequest#STEP_MIN} will generate a
      * step event each time the code index changes. It represents the
      * smallest step size available and often maps to the instruction
      * level.
-     * A <code>size</code> value of {@link com.sun.jdi.request.StepRequest#STEP_LINE} will generate a
+     * A {@code size} value of {@link com.sun.jdi.request.StepRequest#STEP_LINE} will generate a
      * step event each time the source line changes unless line number information is not available,
      * in which case a STEP_MIN will be done instead.  For example, no line number information is
      * available during the execution of a method that has been rendered obsolete by
      * by a {@link com.sun.jdi.VirtualMachine#redefineClasses} operation.
-     * A <code>depth</code> value of {@link com.sun.jdi.request.StepRequest#STEP_INTO} will generate
-     * step events in any called methods.  A <code>depth</code> value
+     * A {@code depth} value of {@link com.sun.jdi.request.StepRequest#STEP_INTO} will generate
+     * step events in any called methods.  A {@code depth} value
      * of {@link com.sun.jdi.request.StepRequest#STEP_OVER} restricts step events to the current frame
-     * or caller frames. A <code>depth</code> value of {@link com.sun.jdi.request.StepRequest#STEP_OUT}
+     * or caller frames. A {@code depth} value of {@link com.sun.jdi.request.StepRequest#STEP_OUT}
      * restricts step events to caller frames only. All depth
      * restrictions are relative to the call stack immediately before the
      * step takes place.
@@ -240,8 +240,7 @@
      * Note that a typical debugger will want to cancel stepping
      * after the first step is detected.  Thus a next line method
      * would do the following:
-     * <code>
-     * <pre>
+     * <pre>{@code
      *     EventRequestManager mgr = myVM.{@link VirtualMachine#eventRequestManager eventRequestManager}();
      *     StepRequest request = mgr.createStepRequest(myThread,
      *                                                 StepRequest.{@link StepRequest#STEP_LINE STEP_LINE},
@@ -249,8 +248,7 @@
      *     request.{@link EventRequest#addCountFilter addCountFilter}(1);  // next step only
      *     request.enable();
      *     myVM.{@link VirtualMachine#resume resume}();
-     * </pre>
-     * </code>
+     * }</pre>
      *
      * @param thread the thread in which to step
      * @param depth the step depth
--- a/jdk/src/jdk.jdi/share/classes/jdi-overview.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.jdi/share/classes/jdi-overview.html	Mon Apr 27 09:17:39 2015 -0700
@@ -49,7 +49,6 @@
             Any method which takes a {@link java.lang.Object} as an parameter will throw
             {@link java.lang.NullPointerException} if null is passed directly or indirectly
             -- unless null is explicitly mentioned as a valid parameter.
-        <p>
     </blockquote>
      NOTE: The exceptions below may be thrown whenever the specified
      conditions are met but a guarantee that they are thrown only
--- a/jdk/src/jdk.pack200/windows/native/unpack200/unpack200_proto.exe.manifest	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/src/jdk.pack200/windows/native/unpack200/unpack200_proto.exe.manifest	Mon Apr 27 09:17:39 2015 -0700
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
-  <assemblyIdentity version="IMVERSION"
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity
+     name=""
+     version=""
      processorArchitecture="X86"
-     name="unpack200.exe"
-     type="win32"/> 
+     type="win32"/>
 
-  <description>Java(TM) SE Runtime Environment unpack200 Process.</description> 
+  <description>Java(TM) SE Runtime Environment unpack200 Process.</description>
   <!-- Identify the application security requirements. -->
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
     <security>
--- a/jdk/test/ProblemList.txt	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/ProblemList.txt	Mon Apr 27 09:17:39 2015 -0700
@@ -164,9 +164,6 @@
 # 6988950
 demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java	generic-all
 
-# 8071968
-javax/xml/ws/8046817/GenerateEnumSchema.java                windows-all
-
 ############################################################################
 
 # jdk_net
--- a/jdk/test/com/sun/jdi/JdbReadTwiceTest.sh	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/com/sun/jdi/JdbReadTwiceTest.sh	Mon Apr 27 09:17:39 2015 -0700
@@ -206,39 +206,6 @@
 
 echo
 echo "+++++++++++++++++++++++++++++++++++"
-echo "Read an unreadable file - verify the read fails."
-
-canMakeUnreadable=No
-id > $HOME/jdb.ini
-if chmod a-r $HOME/jdb.ini 
-then
-  grep -q 'uid=0(' $HOME/jdb.ini 2> /dev/null
-  case $? in
-    0)
-      echo "Error! Can't make file unreadable running as root"
-    ;;
-    1)
-      echo "Error! Can't make file unreadable for some other reason (windows?)"
-    ;;
-    *)
-      echo "OK. the file is unreadable"
-      canMakeUnreadable=Yes 
-    ;;
-   esac
-else    
-  echo "Error! Can't create or chmod file"
-fi  
-
-if [ "$canMakeUnreadable" = "Yes" ]
-then
-    doit
-    failIfNot 1 "open: $HOME/jdb.ini"
-fi
-clean
-
-
-echo
-echo "+++++++++++++++++++++++++++++++++++"
 echo "Read a directory - verify the read fails"
 # If the file (IE. directory) exists, we try to read it.  The
 # read will fail.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.lang.reflect.Field;
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.spi.NamingManager;
+
+import com.sun.jndi.dns.DnsContext;
+
+/**
+ * @test
+ * @bug 6991580
+ * @summary IPv6 Nameservers in resolv.conf throws NumberFormatException
+ * @run main/manual IPv6NameserverPlatformParsingTest
+ *
+ * In order to run this test be sure to place, for example, the following
+ * snippet into your platform's {@code /etc/resolv.conf}:
+ * <pre>
+ * nameserver 127.0.0.1
+ * nameserver 2001:4860:4860::8888
+ * nameserver [::1]:5353
+ * nameserver 127.0.0.1:5353
+ * </pre>
+ *
+ * Then, run this test as manual jtreg test.
+ *
+ * @author Severin Gehwolf
+ *
+ */
+public class IPv6NameserverPlatformParsingTest {
+
+    private static boolean foundIPv6 = false;
+
+    public static void main(String[] args) {
+        Hashtable<String, String> env = new Hashtable<>();
+        env.put(Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.dns.DnsContextFactory.class.getName());
+
+        String[] servers;
+        try {
+            Context ctx = NamingManager.getInitialContext(env);
+            if (!com.sun.jndi.dns.DnsContextFactory.platformServersAvailable()) {
+                throw new RuntimeException("FAIL: no platform servers available, test does not make sense");
+            }
+            DnsContext context = (DnsContext)ctx;
+            servers = getServersFromContext(context);
+        } catch (NamingException e) {
+            throw new RuntimeException(e);
+        }
+        for (String server: servers) {
+            System.out.println("DEBUG: 'nameserver = " + server + "'");
+            if (server.indexOf(':') >= 0 && server.indexOf('.') < 0) {
+                System.out.println("DEBUG: ==> Found IPv6 address in servers list: " + server);
+                foundIPv6 = true;
+            }
+        }
+        try {
+            new com.sun.jndi.dns.DnsClient(servers, 100, 1);
+        } catch (NumberFormatException e) {
+            throw new RuntimeException("FAIL: Tried to parse non-[]-encapsulated IPv6 address.", e);
+        } catch (Exception e) {
+            throw new RuntimeException("ERROR: Something unexpected happened.");
+        }
+        if (!foundIPv6) {
+            // This is a manual test, since it requires changing /etc/resolv.conf on Linux/Unix
+            // platforms. See comment as to how to run this test.
+            throw new RuntimeException("ERROR: No IPv6 address returned from platform.");
+        }
+        System.out.println("PASS: Found IPv6 address and DnsClient parsed it correctly.");
+    }
+
+    private static String[] getServersFromContext(DnsContext context) {
+        try {
+            Field serversField = DnsContext.class.getDeclaredField("servers");
+            serversField.setAccessible(true);
+            return (String[])serversField.get(context);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/com/sun/jndi/ldap/LdapURLOptionalFields.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2015, Red Hat, Inc.
+ * 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 8074761
+ * @summary RFC-2255 allows attribute, scope and filter to be empty.
+ */
+
+import com.sun.jndi.ldap.LdapURL;
+
+public class LdapURLOptionalFields {
+
+    private static final String[] TEST_URLS = {
+        "ldap://localhost:10389/ou=RefPeople,dc=example,dc=com",
+        "ldap://localhost:10389/ou=RefPeople,dc=example,dc=com?",
+        "ldap://localhost:10389/ou=RefPeople,dc=example,dc=com??",
+        "ldap://localhost:10389/ou=RefPeople,dc=example,dc=com???",
+        "ldap://localhost:10389/ou=RefPeople,dc=example,dc=com????"
+    };
+
+    public static void main(String[] args) throws Exception {
+        for (int i = 0; i < TEST_URLS.length; i++) {
+            String url = TEST_URLS[i];
+            checkEmptyAttributes(url);
+        }
+    }
+
+    private static void checkEmptyAttributes(String urlString) throws Exception {
+        LdapURL url = new LdapURL(urlString);
+        if (url.getAttributes() != null) {
+            throw new Exception("Expected null attributes for url: '" + urlString + "'");
+        }
+        if (url.getScope() != null) {
+            throw new Exception("Expected null scope for url: '" + urlString + "'");
+        }
+        if (url.getFilter() != null) {
+            throw new Exception("Expected null filter for url: '" + urlString + "'");
+        }
+    }
+
+}
--- a/jdk/test/com/sun/security/auth/login/ConfigFile/InconsistentError.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/com/sun/security/auth/login/ConfigFile/InconsistentError.java	Mon Apr 27 09:17:39 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4406033
  * @summary     ConfigFile throws an inconsistent error message
  *              when the configuration file is not found
+ * @run main/othervm -Duser.language=en InconsistentError
  */
 
 import com.sun.security.auth.login.*;
--- a/jdk/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4919147
  * @summary Support for token-based KeyStores
+ * @run main/othervm -Duser.language=en OptionTest
  */
 
 import java.io.File;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URL/HandlersPkgPrefix/HandlersPkgPrefix.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.net.MalformedURLException;
+import java.net.URL;
+import java.util.function.Consumer;
+
+/*
+ * @test
+ * @bug 8075139
+ * @summary Basic test for java.protocol.handler.pkgs
+ * @compile handlers/foo/Handler.java handlers/bar/Handler.java HandlersPkgPrefix.java
+ * @run main/othervm HandlersPkgPrefix
+ */
+
+public class HandlersPkgPrefix {
+    static final Consumer<Result> KNOWN = r -> {
+        if (r.exception != null)
+            throw new RuntimeException("Unexpected exception " + r.exception);
+        String p = r.url.getProtocol();
+        if (!r.protocol.equals(p))
+            throw new RuntimeException("Expected:" + r.protocol + ", got:" + p);
+    };
+    static final Consumer<Result> UNKNOWN = r -> {
+        if (r.url != null)
+            throw new RuntimeException("Unexpected url:" + r.url);
+        if (!(r.exception instanceof MalformedURLException))
+            throw new RuntimeException("Expected MalformedURLException, got:"
+                                       + r.exception);
+    };
+
+    public static void main(String[] args) {
+        withPrefix("unknown", "", UNKNOWN);
+        withPrefix("unknown", "handlers", UNKNOWN);
+
+        withPrefix("foo", "", UNKNOWN);
+        withPrefix("foo", "xxx|yyy|zzz", UNKNOWN);
+        withPrefix("foo", "||||", UNKNOWN);
+        withPrefix("foo", "|a|b|c|handlers", KNOWN);
+
+        withPrefix("bar", "", UNKNOWN);
+        withPrefix("bar", "x.y.z|y.y.y|z.z.z", UNKNOWN);
+        withPrefix("bar", " x.y.z | y.y.y | z.z.z| |  ", UNKNOWN);
+        withPrefix("bar", "| a | b | c | handlers | d | e", KNOWN);
+    }
+
+    static void withPrefix(String protocol, String pkgPrefix,
+                           Consumer<Result> resultChecker) {
+        System.out.println("Testing, " + protocol + ", " + pkgPrefix);
+
+        // The long standing implementation behavior is that the
+        // property is read multiple times, not cached.
+        System.setProperty("java.protocol.handler.pkgs", pkgPrefix);
+        URL url = null;
+        Exception exception = null;
+        try {
+            url = new URL(protocol + "://");
+        } catch (MalformedURLException x) {
+            exception = x;
+        }
+        resultChecker.accept(new Result(protocol, url, exception));
+    }
+
+    static class Result {
+        final String protocol;
+        final URL url;
+        final Exception exception;
+        Result(String protocol, URL url, Exception exception) {
+            this.protocol = protocol;
+            this.url = url;
+            this.exception = exception;
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URL/HandlersPkgPrefix/handlers/bar/Handler.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 handlers.bar;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+public class Handler extends URLStreamHandler {
+    @Override
+    protected URLConnection openConnection(URL u) throws IOException {
+        return null;
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URL/HandlersPkgPrefix/handlers/foo/Handler.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 handlers.foo;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+public class Handler extends URLStreamHandler {
+    @Override
+    protected URLConnection openConnection(URL u) throws IOException {
+        return null;
+    }
+}
+
--- a/jdk/test/java/util/PluggableLocale/TimeZoneNameProviderTest.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/java/util/PluggableLocale/TimeZoneNameProviderTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -25,6 +25,7 @@
  */
 
 import java.text.*;
+import java.time.format.TextStyle;
 import java.util.*;
 import sun.util.locale.provider.*;
 import sun.util.resources.*;
@@ -42,6 +43,7 @@
         test2();
         test3();
         aliasTest();
+        genericFallbackTest();
     }
 
     void test1() {
@@ -169,9 +171,9 @@
             for (int style : new int[] { TimeZone.LONG, TimeZone.SHORT }) {
                 String osakaStd = tz.getDisplayName(false, style, OSAKA);
                 if (osakaStd != null) {
-                    // No API for getting generic time zone names
-                    String generic = TimeZoneNameUtility.retrieveGenericDisplayName(tzname,
-                                                                                    style, GENERIC);
+                    String generic = tz.toZoneId().getDisplayName(
+                            style == TimeZone.LONG ? TextStyle.FULL : TextStyle.SHORT,
+                            GENERIC);
                     String expected = "Generic " + osakaStd;
                     if (!expected.equals(generic)) {
                         throw new RuntimeException("Wrong generic name: got=\"" + generic
@@ -230,4 +232,20 @@
             throw new RuntimeException("Provider's localized name is not available for an alias ID: "+JAPAN+".  result: "+japan+" expected: "+JST_IN_OSAKA);
         }
     }
+
+    /*
+     * Tests whether generic names can be retrieved through fallback.
+     * The test assumes the provider impl for OSAKA locale does NOT
+     * provide generic names.
+     */
+    final String PT = "PT"; // SHORT generic name for "America/Los_Angeles"
+    void genericFallbackTest() {
+        String generic =
+            TimeZone.getTimeZone(LATIME)
+                .toZoneId()
+                .getDisplayName(TextStyle.SHORT, OSAKA);
+        if (!PT.equals(generic)) {
+            throw new RuntimeException("Generic name fallback failed. got: "+generic);
+        }
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/concurrent/forkjoin/SubmissionTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.util.concurrent.ForkJoinPool;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/*
+ * @test
+ * @bug 8078490
+ * @summary Test submission and execution of task without joining
+ */
+public class SubmissionTest {
+    public static void main(String[] args) throws Throwable {
+        final ForkJoinPool e = new ForkJoinPool(1);
+        final AtomicBoolean b = new AtomicBoolean();
+        final Runnable setFalse = () -> b.set(false);
+        for (int i = 0; i < 100000; i++) {
+            b.set(true);
+            e.execute(setFalse);
+            long st = System.nanoTime();
+            while (b.get()) {
+                if (System.nanoTime() - st >= TimeUnit.SECONDS.toNanos(10)) {
+                    throw new RuntimeException("Submitted task failed to execute");
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/security/auth/login/LoginContext/CustomLoginModule.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,275 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.IOException;
+import java.security.Principal;
+import java.util.Arrays;
+import java.util.Locale;
+import java.util.Map;
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.ChoiceCallback;
+import javax.security.auth.callback.ConfirmationCallback;
+import javax.security.auth.callback.LanguageCallback;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.TextInputCallback;
+import javax.security.auth.callback.TextOutputCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.login.FailedLoginException;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+
+public class CustomLoginModule implements LoginModule {
+
+    static final String HELLO = "Hello";
+
+    private Subject subject;
+    private CallbackHandler callbackHandler;
+    private boolean loginSucceeded = false;
+    private String username;
+    private char[] password;
+
+    /*
+     * Initialize this LoginModule.
+     */
+    @Override
+    public void initialize(Subject subject, CallbackHandler callbackHandler,
+            Map<String, ?> sharedState, Map<String, ?> options) {
+        this.subject = subject;
+        this.callbackHandler = callbackHandler;
+
+        // check if custom parameter is passed from comfiguration
+        if (options == null) {
+            throw new RuntimeException("options is null");
+        }
+
+        // read username/password from configuration
+        Object o = options.get("username");
+        if (o == null) {
+            throw new RuntimeException("Custom parameter not passed");
+        }
+        if (!(o instanceof String)) {
+            throw new RuntimeException("Password is not a string");
+        }
+        username = (String) o;
+
+        o = options.get("password");
+        if (o == null) {
+            throw new RuntimeException("Custom parameter not passed");
+        }
+        if (!(o instanceof String)) {
+            throw new RuntimeException("Password is not a string");
+        }
+        password = ((String) o).toCharArray();
+    }
+
+    /*
+     * Authenticate the user.
+     */
+    @Override
+    public boolean login() throws LoginException {
+        // prompt for a user name and password
+        if (callbackHandler == null) {
+            throw new LoginException("No CallbackHandler available");
+        }
+
+        // standard callbacks
+        NameCallback name = new NameCallback("username: ", "default");
+        PasswordCallback passwd = new PasswordCallback("password: ", false);
+
+        LanguageCallback language = new LanguageCallback();
+
+        TextOutputCallback error = new TextOutputCallback(
+                TextOutputCallback.ERROR, "This is an error");
+        TextOutputCallback warning = new TextOutputCallback(
+                TextOutputCallback.WARNING, "This is a warning");
+        TextOutputCallback info = new TextOutputCallback(
+                TextOutputCallback.INFORMATION, "This is a FYI");
+
+        TextInputCallback text = new TextInputCallback("Please type " + HELLO,
+                "Bye");
+
+        ChoiceCallback choice = new ChoiceCallback("Choice: ",
+                new String[] { "pass", "fail" }, 1, true);
+
+        ConfirmationCallback confirmation = new ConfirmationCallback(
+                "confirmation: ", ConfirmationCallback.INFORMATION,
+                ConfirmationCallback.YES_NO_OPTION, ConfirmationCallback.NO);
+
+        CustomCallback custom = new CustomCallback();
+
+        Callback[] callbacks = new Callback[] {
+            choice, info, warning, error, name, passwd, text, language,
+            confirmation, custom
+        };
+
+        boolean uce = false;
+        try {
+            callbackHandler.handle(callbacks);
+        } catch (UnsupportedCallbackException e) {
+            Callback callback = e.getCallback();
+            if (custom.equals(callback)) {
+                uce = true;
+                System.out.println("CustomLoginModule: "
+                        + "custom callback not supported as expected");
+            } else {
+                throw new LoginException("Unsupported callback: " + callback);
+            }
+        } catch (IOException ioe) {
+            throw new LoginException(ioe.toString());
+        }
+
+        if (!uce) {
+            throw new RuntimeException("UnsupportedCallbackException "
+                    + "not thrown");
+        }
+
+        if (!HELLO.equals(text.getText())) {
+            System.out.println("Text: " + text.getText());
+            throw new FailedLoginException("No hello");
+        }
+
+        if (!Locale.GERMANY.equals(language.getLocale())) {
+            System.out.println("Selected locale: " + language.getLocale());
+            throw new FailedLoginException("Achtung bitte");
+        }
+
+        String readUsername = name.getName();
+        char[] readPassword = passwd.getPassword();
+        if (readPassword == null) {
+            // treat a NULL password as an empty password
+            readPassword = new char[0];
+        }
+        passwd.clearPassword();
+
+        // verify the username/password
+        if (!username.equals(readUsername)
+                || !Arrays.equals(password, readPassword)) {
+            loginSucceeded = false;
+            throw new FailedLoginException("Username/password is not correct");
+        }
+
+        // check chosen option
+        int[] selected = choice.getSelectedIndexes();
+        if (selected == null || selected.length == 0) {
+            throw new FailedLoginException("Nothing selected");
+        }
+
+        if (selected[0] != 0) {
+            throw new FailedLoginException("Wrong choice: " + selected[0]);
+        }
+
+        // check confirmation
+        if (confirmation.getSelectedIndex() != ConfirmationCallback.YES) {
+            throw new FailedLoginException("Not confirmed: "
+                    + confirmation.getSelectedIndex());
+        }
+
+        loginSucceeded = true;
+        System.out.println("CustomLoginModule: authentication succeeded");
+        return true;
+    }
+
+    /*
+     * This method is called if the LoginContext's overall authentication
+     * succeeded.
+     */
+    @Override
+    public boolean commit() throws LoginException {
+        if (loginSucceeded) {
+            // add a Principal to the Subject
+            Principal principal = new TestPrincipal(username);
+            if (!subject.getPrincipals().contains(principal)) {
+                subject.getPrincipals().add(principal);
+            }
+            return true;
+        }
+
+        return false;
+    }
+
+    /*
+     * This method is called if the LoginContext's overall authentication
+     * failed.
+     */
+    @Override
+    public boolean abort() throws LoginException {
+        loginSucceeded = false;
+        return true;
+    }
+
+    /*
+     * Logout the user.
+     */
+    @Override
+    public boolean logout() throws LoginException {
+        loginSucceeded = false;
+        boolean removed = subject.getPrincipals().remove(
+                new TestPrincipal(username));
+        if (!removed) {
+            throw new LoginException("Coundn't remove a principal: "
+                    + username);
+        }
+        return true;
+    }
+
+    static class TestPrincipal implements Principal {
+
+        private final String name;
+
+        public TestPrincipal(String name) {
+            this.name = name;
+        }
+
+        @Override
+        public String getName() {
+            return name;
+        }
+
+        @Override
+        public String toString() {
+            return("TestPrincipal [name =" + name + "]");
+        }
+
+        @Override
+        public int hashCode() {
+            return name.hashCode();
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o == null) {
+                return false;
+            }
+            if (!(o instanceof TestPrincipal)) {
+                return false;
+            }
+            TestPrincipal other = (TestPrincipal) o;
+            return name != null ? name.equals(other.name) : other.name == null;
+        }
+    }
+
+    static class CustomCallback implements Callback {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/security/auth/login/LoginContext/SharedState.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.util.Map;
+import javax.security.auth.Subject;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.login.LoginContext;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+
+/**
+ * @test
+ * @bug 8048138
+ * @summary Check if shared state is passed to login module
+ * @run main/othervm SharedState
+ */
+public class SharedState {
+
+    static final String NAME = "name";
+    static final String VALUE = "shared";
+
+    public static void main(String[] args) throws LoginException {
+        System.setProperty("java.security.auth.login.config",
+                System.getProperty("test.src")
+                        + System.getProperty("file.separator")
+                        + "shared.config");
+
+        new LoginContext("SharedState").login();
+    }
+
+    public static abstract class Module implements LoginModule {
+
+        @Override
+        public boolean login() throws LoginException {
+            return true;
+        }
+
+        @Override
+        public boolean commit() throws LoginException {
+            return true;
+        }
+
+        @Override
+        public boolean abort() throws LoginException {
+            return true;
+        }
+
+        @Override
+        public boolean logout() throws LoginException {
+            return true;
+        }
+    }
+
+    public static class FirstModule extends Module {
+
+        @Override
+        public void initialize(Subject subject, CallbackHandler callbackHandler,
+                            Map<String,?> sharedState, Map<String,?> options) {
+            ((Map)sharedState).put(NAME, VALUE);
+        }
+
+    }
+
+    public static class SecondModule extends Module {
+
+        @Override
+        public void initialize(Subject subject, CallbackHandler callbackHandler,
+                            Map<String,?> sharedState, Map<String,?> options) {
+            // check shared object
+            Object shared = sharedState.get(NAME);
+            if (!VALUE.equals(shared)) {
+                throw new RuntimeException("Unexpected shared object: "
+                        + shared);
+            }
+        }
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/security/auth/login/LoginContext/StandardCallbacks.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.security.Principal;
+import java.util.Arrays;
+import java.util.Locale;
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.ChoiceCallback;
+import javax.security.auth.callback.ConfirmationCallback;
+import javax.security.auth.callback.LanguageCallback;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.TextInputCallback;
+import javax.security.auth.callback.TextOutputCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.login.LoginContext;
+import javax.security.auth.login.LoginException;
+
+/*
+ * @test
+ * @bug 8048138
+ * @summary Checks if JAAS login works fine with standard callbacks
+ * @compile DefaultHandlerModule.java
+ * @run main/othervm StandardCallbacks
+ */
+public class StandardCallbacks {
+
+    private static final String USERNAME = "username";
+    private static final char[] PASSWORD = "password".toCharArray();
+
+    public static void main(String[] args) throws LoginException {
+        System.setProperty("java.security.auth.login.config",
+                System.getProperty("test.src")
+                        + System.getProperty("file.separator")
+                        + "custom.config");
+
+        CustomCallbackHandler handler = new CustomCallbackHandler(USERNAME);
+        LoginContext context = new LoginContext("StandardCallbacks", handler);
+
+        handler.setPassword(PASSWORD);
+        System.out.println("Try to login with correct password, "
+                + "successful authentication is expected");
+        context.login();
+        System.out.println("Authentication succeeded!");
+
+        Subject subject = context.getSubject();
+        System.out.println("Authenticated user has the following principals ["
+                + subject.getPrincipals().size() + " ]:");
+        boolean found = true;
+        for (Principal principal : subject.getPrincipals()) {
+            System.out.println("principal: " + principal);
+            if (principal instanceof CustomLoginModule.TestPrincipal) {
+                CustomLoginModule.TestPrincipal testPrincipal =
+                        (CustomLoginModule.TestPrincipal) principal;
+                if (USERNAME.equals(testPrincipal.getName())) {
+                    System.out.println("Found test principal: "
+                            + testPrincipal);
+                    found = true;
+                    break;
+                }
+            }
+        }
+
+        if (!found) {
+            throw new RuntimeException("TestPrincipal not found");
+        }
+
+        // check if all expected text output callbacks have been called
+        if (!handler.info) {
+            throw new RuntimeException("TextOutputCallback.INFO not called");
+        }
+
+        if (!handler.warning) {
+            throw new RuntimeException("TextOutputCallback.WARNING not called");
+        }
+
+        if (!handler.error) {
+            throw new RuntimeException("TextOutputCallback.ERROR not called");
+        }
+
+        System.out.println("Authenticated user has the following public "
+                + "credentials [" + subject.getPublicCredentials().size()
+                + "]:");
+        subject.getPublicCredentials().stream().
+                forEach((o) -> {
+                    System.out.println("public credential: " + o);
+        });
+
+        context.logout();
+
+        System.out.println("Test passed");
+    }
+
+    private static class CustomCallbackHandler implements CallbackHandler {
+
+        private final String username;
+        private char[] password;
+        private boolean info = false;
+        private boolean warning = false;
+        private boolean error = false;
+
+        CustomCallbackHandler(String username) {
+            this.username = username;
+        }
+
+        void setPassword(char[] password) {
+            this.password = password;
+        }
+
+        @Override
+        public void handle(Callback[] callbacks)
+                throws UnsupportedCallbackException {
+            for (Callback callback : callbacks) {
+                if (callback instanceof TextOutputCallback) {
+                    TextOutputCallback toc = (TextOutputCallback) callback;
+                    switch (toc.getMessageType()) {
+                        case TextOutputCallback.INFORMATION:
+                            System.out.println("INFO: " + toc.getMessage());
+                            info = true;
+                            break;
+                        case TextOutputCallback.ERROR:
+                            System.out.println("ERROR: " + toc.getMessage());
+                            error = true;
+                            break;
+                        case TextOutputCallback.WARNING:
+                            System.out.println("WARNING: " + toc.getMessage());
+                            warning = true;
+                            break;
+                        default:
+                            throw new UnsupportedCallbackException(toc,
+                                    "Unsupported message type: "
+                                            + toc.getMessageType());
+                    }
+                } else if (callback instanceof TextInputCallback) {
+                    TextInputCallback tic = (TextInputCallback) callback;
+                    System.out.println(tic.getPrompt());
+                    tic.setText(CustomLoginModule.HELLO);
+                } else if (callback instanceof LanguageCallback) {
+                    LanguageCallback lc = (LanguageCallback) callback;
+                    lc.setLocale(Locale.GERMANY);
+                } else if (callback instanceof ConfirmationCallback) {
+                    ConfirmationCallback cc = (ConfirmationCallback) callback;
+                    System.out.println(cc.getPrompt());
+                    cc.setSelectedIndex(ConfirmationCallback.YES);
+                } else if (callback instanceof ChoiceCallback) {
+                    ChoiceCallback cc = (ChoiceCallback) callback;
+                    System.out.println(cc.getPrompt()
+                            + Arrays.toString(cc.getChoices()));
+                    cc.setSelectedIndex(0);
+                } else if (callback instanceof NameCallback) {
+                    NameCallback nc = (NameCallback) callback;
+                    System.out.println(nc.getPrompt());
+                    nc.setName(username);
+                } else if (callback instanceof PasswordCallback) {
+                    PasswordCallback pc = (PasswordCallback) callback;
+                    System.out.println(pc.getPrompt());
+                    pc.setPassword(password);
+                } else {
+                    throw new UnsupportedCallbackException(callback,
+                            "Unknown callback");
+                }
+            }
+        }
+
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/security/auth/login/LoginContext/custom.config	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,4 @@
+StandardCallbacks {
+    DefaultHandlerModule required;
+    CustomLoginModule required username="username" password="password";
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/security/auth/login/LoginContext/shared.config	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,4 @@
+SharedState {
+    SharedState$FirstModule required;
+    SharedState$SecondModule required;
+};
\ No newline at end of file
--- a/jdk/test/javax/xml/ws/8046817/GenerateEnumSchema.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/javax/xml/ws/8046817/GenerateEnumSchema.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,57 +23,83 @@
 
 /*
  * @test
- * @bug 8046817
- * @summary schemagen fails to generate xsd for enum types
+ * @bug 8046817 8073357
+ * @summary schemagen fails to generate xsd for enum types.
+ * Check that order of Enum values is preserved.
  * @run main/othervm GenerateEnumSchema
  */
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.nio.file.Files;
 import java.nio.file.Paths;
-import java.util.Scanner;
+import java.util.stream.Collectors;
 
 public class GenerateEnumSchema {
 
     private static final String SCHEMA_OUTPUT_FILENAME = "schema1.xsd";
     private static final File schemaOutputFile = new File(SCHEMA_OUTPUT_FILENAME);
+    private static final String[] expectedEnums = {
+        "\"FIRST\"", "\"ONE\"", "\"TWO\"", "\"THREE\"",
+        "\"FOUR\"", "\"FIVE\"", "\"SIX\"", "\"LAST\""};
+    private static String schemaContent = "";
 
-    public static void main(String[] args) throws Exception, IOException {
+    public static void main(String[] args) throws Exception {
+
         //Check schema generation for class type
         runSchemaGen("TestClassType.java");
         checkIfSchemaGenerated();
+        readSchemaContent();
         checkSchemaContent("<xs:complexType name=\"testClassType\">");
         checkSchemaContent("<xs:element name=\"a\" type=\"xs:int\"/>");
-        schemaOutputFile.delete();
+
         //Check schema generation for enum type
         runSchemaGen("TestEnumType.java");
         checkIfSchemaGenerated();
+        readSchemaContent();
+        //Check if Enum type schema is generated
         checkSchemaContent("<xs:simpleType name=\"testEnumType\">");
-        checkSchemaContent("<xs:enumeration value=\"ONE\"/>");
-        checkSchemaContent("<xs:enumeration value=\"TWO\"/>");
-        checkSchemaContent("<xs:enumeration value=\"THREE\"/>");
+        //Check the sequence of enum values order
+        checkEnumOrder();
         schemaOutputFile.delete();
     }
 
+    // Check if schema file successfully generated by schemagen
     private static void checkIfSchemaGenerated() {
         if (!schemaOutputFile.exists()) {
             throw new RuntimeException("FAIL:" + SCHEMA_OUTPUT_FILENAME + " was not generated by schemagen tool");
         }
     }
 
-    private static void checkSchemaContent(String exp_token) throws FileNotFoundException {
-        System.out.print("Check if generated schema contains '" + exp_token + "' string: ");
-        try (Scanner scanner = new Scanner(schemaOutputFile)) {
-            if (scanner.findWithinHorizon(exp_token, 0) != null) {
-                System.out.println("OK");
-                return;
-            }
+    //Read schema content from file
+    private static void readSchemaContent() throws Exception {
+        schemaContent = Files.lines(schemaOutputFile.toPath()).collect(Collectors.joining(""));
+    }
+
+    // Check if schema file contains specific string
+    private static void checkSchemaContent(String expContent) {
+        System.out.print("Check if generated schema contains '" + expContent + "' string: ");
+        if (schemaContent.contains(expContent)) {
+            System.out.println("OK");
+            return;
         }
         System.out.println("FAIL");
-        throw new RuntimeException("The '" + exp_token + "' is not found in generated schema");
+        throw new RuntimeException("The '" + expContent + "' is not found in generated schema");
+    }
 
+    // Check if the generated schema contains all enum constants
+    // and their order is preserved
+    private static void checkEnumOrder() throws Exception {
+        int prevElem = -1;
+        for (String elem : expectedEnums) {
+            int curElem = schemaContent.indexOf(elem);
+            System.out.println(elem + " position = " + curElem);
+            if (curElem < prevElem) {
+                throw new RuntimeException("FAIL: Enum values order is incorrect or " + elem + " element is not found");
+            }
+            prevElem = curElem;
+        }
     }
 
     private static String getClassFilePath(String filename) {
--- a/jdk/test/javax/xml/ws/8046817/TestEnumType.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/javax/xml/ws/8046817/TestEnumType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,5 +25,5 @@
 
 @XmlEnum(String.class)
 public enum TestEnumType {
-    ONE, TWO, THREE
+    FIRST, ONE, TWO, THREE, FOUR, FIVE, SIX, LAST
 }
--- a/jdk/test/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
 # @library /lib/testlibrary
 # @build jdk.testlibrary.* TestLogger Utils RmiBootstrapTest
 # @run shell/timeout=300  RmiSslBootstrapTest.sh
+# @ignore 8077924
 
 # Define the Java class test name
 TESTCLASS="RmiBootstrapTest"
--- a/jdk/test/sun/security/krb5/auto/KDC.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/sun/security/krb5/auto/KDC.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -149,6 +149,9 @@
     private List<String> conf = new ArrayList<>();
 
     private Thread thread1, thread2, thread3;
+    private volatile boolean udpConsumerReady = false;
+    private volatile boolean tcpConsumerReady = false;
+    private volatile boolean dispatcherReady = false;
     DatagramSocket u1 = null;
     ServerSocket t1 = null;
 
@@ -1228,6 +1231,7 @@
         // The UDP consumer
         thread1 = new Thread() {
             public void run() {
+                udpConsumerReady = true;
                 while (true) {
                     try {
                         byte[] inbuf = new byte[8192];
@@ -1248,6 +1252,7 @@
         // The TCP consumer
         thread2 = new Thread() {
             public void run() {
+                tcpConsumerReady = true;
                 while (true) {
                     try {
                         Socket socket = tcp.accept();
@@ -1270,6 +1275,7 @@
         // The dispatcher
         thread3 = new Thread() {
             public void run() {
+                dispatcherReady = true;
                 while (true) {
                     try {
                         q.take().send();
@@ -1280,6 +1286,19 @@
         };
         thread3.setDaemon(true);
         thread3.start();
+
+        // wait for the KDC is ready
+        try {
+            while (!isReady()) {
+                Thread.sleep(100);
+            }
+        } catch(InterruptedException e) {
+            throw new IOException(e);
+        }
+    }
+
+    boolean isReady() {
+        return udpConsumerReady && tcpConsumerReady && dispatcherReady;
     }
 
     public void terminate() {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/UnboundSSL.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedActionException;
+import java.util.HashMap;
+import java.util.Map;
+import javax.security.auth.login.LoginException;
+
+/*
+ * @test
+ * @bug 8025123
+ * @summary Checks if an unbound server can handle connections
+ *          only for allowed service principals
+ * @run main/othervm/policy=unbound.ssl.policy UnboundSSL
+ *                              unbound.ssl.jaas.conf server_star
+ * @run main/othervm/policy=unbound.ssl.policy UnboundSSL
+ *                              unbound.ssl.jaas.conf server_multiple_principals
+ */
+public class UnboundSSL {
+
+    public static void main(String[] args) throws IOException,
+            NoSuchAlgorithmException,LoginException, PrivilegedActionException,
+            InterruptedException {
+        UnboundSSL test = new UnboundSSL();
+        test.start(args[0], args[1]);
+    }
+
+    private void start(String jaacConfigFile, String serverJaasConfig)
+            throws IOException, NoSuchAlgorithmException,LoginException,
+            PrivilegedActionException, InterruptedException {
+
+        // define principals
+        String service1host = "service1." + UnboundSSLUtils.HOST;
+        String service2host = "service2." + UnboundSSLUtils.HOST;
+        String service3host = "service3." + UnboundSSLUtils.HOST;
+        String service1Principal = "host/" + service1host + "@"
+                + UnboundSSLUtils.REALM;
+        String service2Principal = "host/" + service2host + "@"
+                + UnboundSSLUtils.REALM;
+        String service3Principal = "host/" + service3host + "@"
+                + UnboundSSLUtils.REALM;
+
+        Map<String, String> principals = new HashMap<>();
+        principals.put(UnboundSSLUtils.USER_PRINCIPAL,
+                UnboundSSLUtils.USER_PASSWORD);
+        principals.put(UnboundSSLUtils.KRBTGT_PRINCIPAL, null);
+        principals.put(service1Principal, null);
+        principals.put(service2Principal, null);
+        principals.put(service3Principal, null);
+
+        System.setProperty("java.security.krb5.conf",
+               UnboundSSLUtils.KRB5_CONF_FILENAME);
+
+        // start a local KDC instance
+        UnboundSSLUtils.startKDC(UnboundSSLUtils.REALM, principals,
+                UnboundSSLUtils.KTAB_FILENAME, UnboundSSLUtils.KtabMode.APPEND);
+
+        System.setProperty("java.security.auth.login.config",
+                UnboundSSLUtils.TEST_SRC + UnboundSSLUtils.FS + jaacConfigFile);
+        System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
+
+        try (final SSLEchoServer server = SSLEchoServer.init(
+                UnboundSSLUtils.TLS_KRB5_FILTER, UnboundSSLUtils.SNI_PATTERN)) {
+
+            // start a server instance
+            UnboundSSLUtils.startServerWithJaas(server, serverJaasConfig);
+
+            // wait for the server is ready
+            while (!server.isReady()) {
+                Thread.sleep(UnboundSSLUtils.DELAY);
+            }
+
+            int port = server.getPort();
+
+            // run clients
+
+            // the server should have a permission to handle a request
+            // with this service principal (there should be an appropriate
+            // javax.security.auth.kerberos.ServicePermission in policy file)
+            System.out.println("Connect: SNI hostname = " + service1host
+                    + ", successful connection is expected");
+            SSLClient.init(UnboundSSLUtils.HOST, port,
+                    UnboundSSLUtils.TLS_KRB5_FILTER, service1host).connect();
+
+            // the server should NOT have a permission to handle a request
+            // with this service principal (there should be an appropriate
+            // javax.security.auth.kerberos.ServicePermission in policy file)
+            // handshake failures is expected
+            System.out.println("Connect: SNI hostname = " + service2host
+                    + ", connection failure is expected");
+            try {
+                SSLClient.init(UnboundSSLUtils.HOST, port,
+                        UnboundSSLUtils.TLS_KRB5_FILTER, service2host)
+                            .connect();
+                throw new RuntimeException("Test failed: "
+                        + "expected IOException not thrown");
+            } catch (IOException e) {
+                System.out.println("Expected exception: " + e);
+            }
+
+            // the server should have a permission to handle a request
+            // with this service principal (there should be an appropriate
+            // javax.security.auth.kerberos.ServicePermission in policy file)
+            System.out.println("Connect: SNI hostname = " + service3host
+                    + ", successful connection is expected");
+            SSLClient.init(UnboundSSLUtils.HOST, port,
+                    UnboundSSLUtils.TLS_KRB5_FILTER, service3host).connect();
+        }
+
+        System.out.println("Test passed");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/UnboundSSLMultipleKeys.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedActionException;
+import java.util.HashMap;
+import java.util.Map;
+import javax.security.auth.login.LoginException;
+
+/*
+ * @test
+ * @bug 8025123
+ * @summary Checks if an unbound server pick up a correct key from keytab
+ * @run main/othervm UnboundSSLMultipleKeys
+ *                              unbound.ssl.jaas.conf server_star
+ * @run main/othervm UnboundSSLMultipleKeys
+ *                              unbound.ssl.jaas.conf server_multiple_principals
+ */
+public class UnboundSSLMultipleKeys {
+
+    public static void main(String[] args)
+            throws IOException, NoSuchAlgorithmException, LoginException,
+            PrivilegedActionException, InterruptedException {
+        UnboundSSLMultipleKeys test = new UnboundSSLMultipleKeys();
+        test.start(args[0], args[1]);
+    }
+
+    private void start(String jaacConfigFile, String serverJaasConfig)
+            throws IOException, NoSuchAlgorithmException, LoginException,
+            PrivilegedActionException, InterruptedException {
+
+        // define service principals
+        String service1host = "service1." + UnboundSSLUtils.HOST;
+        String service2host = "service2." + UnboundSSLUtils.HOST;
+        String service3host = "service3." + UnboundSSLUtils.HOST;
+        String service1Principal = "host/" + service1host + "@"
+                + UnboundSSLUtils.REALM;
+        String service2Principal = "host/" + service2host + "@"
+                + UnboundSSLUtils.REALM;
+        String service3Principal = "host/" + service3host + "@"
+                + UnboundSSLUtils.REALM;
+
+        Map<String, String> principals = new HashMap<>();
+        principals.put(UnboundSSLUtils.USER_PRINCIPAL,
+                UnboundSSLUtils.USER_PASSWORD);
+        principals.put(UnboundSSLUtils.KRBTGT_PRINCIPAL, "pass");
+        principals.put(service1Principal, "pass0");
+        principals.put(service1Principal, "pass1");
+        principals.put(service1Principal, "pass2");
+        principals.put(service2Principal, "pass");
+        principals.put(service3Principal, "pass");
+
+        System.setProperty("java.security.krb5.conf",
+                UnboundSSLUtils.KRB5_CONF_FILENAME);
+
+        /*
+         * Start a local KDC instance
+         *
+         * Keytab file contains 3 keys (with different KVNO) for service1
+         * principal, but password for only one key is the same with the record
+         * for service1 principal in KDC.
+         */
+        UnboundSSLUtils.startKDC(UnboundSSLUtils.REALM, principals,
+                UnboundSSLUtils.KTAB_FILENAME, UnboundSSLUtils.KtabMode.APPEND);
+
+        System.setProperty("java.security.auth.login.config",
+                UnboundSSLUtils.TEST_SRC + UnboundSSLUtils.FS + jaacConfigFile);
+        System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
+
+        // start an SSL server instance
+        try (SSLEchoServer server = SSLEchoServer.init(
+                UnboundSSLUtils.TLS_KRB5_FILTER, UnboundSSLUtils.SNI_PATTERN)) {
+
+            UnboundSSLUtils.startServerWithJaas(server, serverJaasConfig);
+
+            //  wait for the server is ready
+            while (!server.isReady()) {
+                Thread.sleep(UnboundSSLUtils.DELAY);
+            }
+
+            // run a client
+            System.out.println("Successful connection is expected");
+            SSLClient.init(UnboundSSLUtils.HOST, server.getPort(),
+                    UnboundSSLUtils.TLS_KRB5_FILTER, service1host).connect();
+        }
+
+        System.out.println("Test passed");
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/UnboundSSLPrincipalProperty.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedActionException;
+import java.util.HashMap;
+import java.util.Map;
+import javax.security.auth.login.LoginException;
+
+/*
+ * @test
+ * @bug 8025123
+ * @summary Checks if an unbound server uses a service principal
+ *          from sun.security.krb5.principal system property if specified
+ * @run main/othervm UnboundSSLPrincipalProperty
+ *                              unbound.ssl.jaas.conf server_star
+ * @run main/othervm UnboundSSLPrincipalProperty
+ *                              unbound.ssl.jaas.conf server_multiple_principals
+ */
+public class UnboundSSLPrincipalProperty {
+
+    public static void main(String[] args) throws IOException,
+            NoSuchAlgorithmException,LoginException, PrivilegedActionException,
+            InterruptedException {
+        UnboundSSLPrincipalProperty test = new UnboundSSLPrincipalProperty();
+        test.start(args[0], args[1]);
+    }
+
+    public void start(String jaacConfigFile, String serverJaasConfig)
+            throws IOException, NoSuchAlgorithmException,LoginException,
+            PrivilegedActionException, InterruptedException {
+
+        // define principals
+        String service1host = "service1." + UnboundSSLUtils.HOST;
+        String service3host = "service3." + UnboundSSLUtils.HOST;
+        String service1Principal = "host/" + service1host + "@"
+                + UnboundSSLUtils.REALM;
+        String service3Principal = "host/" + service3host
+                + "@" + UnboundSSLUtils.REALM;
+
+        Map<String, String> principals = new HashMap<>();
+        principals.put(UnboundSSLUtils.USER_PRINCIPAL,
+                UnboundSSLUtils.USER_PASSWORD);
+        principals.put(UnboundSSLUtils.KRBTGT_PRINCIPAL, null);
+        principals.put(service1Principal, null);
+        principals.put(service3Principal, null);
+
+        System.setProperty("java.security.krb5.conf",
+                UnboundSSLUtils.KRB5_CONF_FILENAME);
+
+        // start a local KDC instance
+        UnboundSSLUtils.startKDC(UnboundSSLUtils.REALM, principals,
+                UnboundSSLUtils.KTAB_FILENAME, UnboundSSLUtils.KtabMode.APPEND);
+
+        System.setProperty("java.security.auth.login.config",
+                UnboundSSLUtils.TEST_SRC + UnboundSSLUtils.FS + jaacConfigFile);
+        System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
+
+        // start an SSL server instance
+        try (final SSLEchoServer server = SSLEchoServer.init(
+                UnboundSSLUtils.TLS_KRB5_FILTER, UnboundSSLUtils.SNI_PATTERN)) {
+
+            // specify a service principal for the server
+            System.setProperty("sun.security.krb5.principal",
+                    service3Principal);
+
+            UnboundSSLUtils.startServerWithJaas(server, serverJaasConfig);
+
+            // wait for the server is ready
+            while (!server.isReady()) {
+                Thread.sleep(UnboundSSLUtils.DELAY);
+            }
+
+            int port = server.getPort();
+
+            // connetion failure is expected
+            // since service3 principal was specified to use by the server
+            System.out.println("Connect: SNI hostname = " + service1host
+                    + ", connection failure is expected");
+            try {
+                SSLClient.init(UnboundSSLUtils.HOST, port,
+                        UnboundSSLUtils.TLS_KRB5_FILTER, service1host)
+                            .connect();
+                throw new RuntimeException("Test failed: "
+                        + "expected IOException not thrown");
+            } catch (IOException e) {
+                System.out.println("Expected exception: " + e);
+            }
+
+            System.out.println("Connect: SNI hostname = " + service3host
+                    + ", successful connection is expected");
+            SSLClient.init(UnboundSSLUtils.HOST, port,
+                    UnboundSSLUtils.TLS_KRB5_FILTER, service3host).connect();
+        }
+
+        System.out.println("Test passed");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/UnboundSSLUtils.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,353 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import javax.net.ssl.SNIHostName;
+import javax.net.ssl.SNIMatcher;
+import javax.net.ssl.SNIServerName;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLParameters;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginContext;
+import javax.security.auth.login.LoginException;
+
+/*
+ * Helper class for unbound krb5 tests.
+ */
+class UnboundSSLUtils {
+
+    static enum KtabMode { APPEND, EXISTING };
+
+    static final String KTAB_FILENAME = "krb5.keytab.data";
+    static final String HOST = "localhost";
+    static final String REALM = "TEST.REALM";
+    static final String KRBTGT_PRINCIPAL = "krbtgt/" + REALM;
+    static final String TEST_SRC = System.getProperty("test.src", ".");
+    static final String TLS_KRB5_FILTER = "TLS_KRB5";
+    static final String USER = "USER";
+    static final String USER_PASSWORD = "password";
+    static final String FS = System.getProperty("file.separator");
+    static final String SNI_PATTERN = ".*";
+    static final String USER_PRINCIPAL = USER + "@" + REALM;
+    static final String KRB5_CONF_FILENAME = "krb5.conf";
+    static final int DELAY = 1000;
+
+   static String[] filterStringArray(String[] src, String filter) {
+        return Arrays.stream(src).filter((item) -> item.startsWith(filter))
+                .toArray(size -> new String[size]);
+    }
+
+    /*
+     * The method does JAAS login,
+     * and runs an SSL server in the JAAS context.
+     */
+    static void startServerWithJaas(final SSLEchoServer server,
+            String config) throws LoginException, PrivilegedActionException {
+        LoginContext context = new LoginContext(config);
+        context.login();
+        System.out.println("Server: successful authentication");
+        Subject.doAs(context.getSubject(),
+                (PrivilegedExceptionAction<Object>) () -> {
+            SSLEchoServer.startServer(server);
+            return null;
+        });
+    }
+
+    /*
+     * Start a KDC server:
+     *   - create a KDC instance
+     *   - create Kerberos principals
+     *   - save Kerberos configuration
+     *   - save keys to keytab file
+     *   - no pre-auth required
+     */
+    static void startKDC(String realm, Map<String, String> principals,
+            String ktab, KtabMode mode) {
+        try {
+            KDC kdc = KDC.create(realm, HOST, 0, true);
+            kdc.setOption(KDC.Option.PREAUTH_REQUIRED, Boolean.FALSE);
+            if (principals != null) {
+                for (Map.Entry<String, String> entry : principals.entrySet()) {
+                    String name = entry.getKey();
+                    String password = entry.getValue();
+                    if (password == null || password.isEmpty()) {
+                        System.out.println("KDC: add a principal '" + name +
+                                "' with a random password");
+                        kdc.addPrincipalRandKey(name);
+                    } else {
+                        System.out.println("KDC: add a principal '" + name +
+                                "' with '" + password + "' password");
+                        kdc.addPrincipal(name, password.toCharArray());
+                    }
+                }
+            }
+
+            KDC.saveConfig(KRB5_CONF_FILENAME, kdc);
+
+            if (ktab != null) {
+                File ktabFile = new File(ktab);
+                if (mode == KtabMode.APPEND) {
+                    if (ktabFile.exists()) {
+                        System.out.println("KDC: append keys to an exising " +
+                                "keytab file " + ktab);
+                        kdc.appendKtab(ktab);
+                    } else {
+                        System.out.println("KDC: create a new keytab file " +
+                                ktab);
+                        kdc.writeKtab(ktab);
+                    }
+                } else if (mode == KtabMode.EXISTING) {
+                    System.out.println("KDC: use an existing keytab file "
+                            + ktab);
+                } else {
+                    throw new RuntimeException("KDC: unsupported keytab mode: "
+                            + mode);
+                }
+            }
+
+            System.out.println("KDC: started on " + HOST + ":" + kdc.getPort()
+                    + " with '" + realm + "' realm");
+        } catch (Exception e) {
+            throw new RuntimeException("KDC: unexpected exception", e);
+        }
+    }
+
+}
+
+class SSLClient {
+
+    private final static byte[][] arrays = {
+        new byte[] {-1, 0, 2},
+        new byte[] {}
+    };
+
+    private final SSLSocket socket;
+
+    private SSLClient(SSLSocket socket) {
+        this.socket = socket;
+    }
+
+    void connect() throws IOException {
+        System.out.println("Client: connect to server");
+        try (BufferedInputStream bis = new BufferedInputStream(
+                        socket.getInputStream());
+                BufferedOutputStream bos = new BufferedOutputStream(
+                        socket.getOutputStream())) {
+
+            for (byte[] bytes : arrays) {
+                System.out.println("Client: send byte array: "
+                        + Arrays.toString(bytes));
+
+                bos.write(bytes);
+                bos.flush();
+
+                byte[] recieved = new byte[bytes.length];
+                int read = bis.read(recieved, 0, bytes.length);
+                if (read < 0) {
+                    throw new IOException("Client: couldn't read a response");
+                }
+
+                System.out.println("Client: recieved byte array: "
+                        + Arrays.toString(recieved));
+
+                if (!Arrays.equals(bytes, recieved)) {
+                    throw new IOException("Client: sent byte array "
+                                + "is not equal with recieved byte array");
+                }
+            }
+            socket.getSession().invalidate();
+        } finally {
+            if (!socket.isClosed()) {
+                socket.close();
+            }
+        }
+    }
+
+    static SSLClient init(String host, int port, String cipherSuiteFilter,
+            String sniHostName) throws NoSuchAlgorithmException, IOException {
+        SSLContext sslContext = SSLContext.getDefault();
+        SSLSocketFactory ssf = (SSLSocketFactory) sslContext.getSocketFactory();
+        SSLSocket socket = (SSLSocket) ssf.createSocket(host, port);
+        SSLParameters params = new SSLParameters();
+
+        if (cipherSuiteFilter != null) {
+            String[] cipherSuites = UnboundSSLUtils.filterStringArray(
+                    ssf.getSupportedCipherSuites(), cipherSuiteFilter);
+            System.out.println("Client: enabled cipher suites: "
+                    + Arrays.toString(cipherSuites));
+            params.setCipherSuites(cipherSuites);
+        }
+
+        if (sniHostName != null) {
+            System.out.println("Client: set SNI hostname: " + sniHostName);
+            SNIHostName serverName = new SNIHostName(sniHostName);
+            List<SNIServerName> serverNames = new ArrayList<>();
+            serverNames.add(serverName);
+            params.setServerNames(serverNames);
+        }
+
+        socket.setSSLParameters(params);
+
+        return new SSLClient(socket);
+    }
+
+}
+
+class SSLEchoServer implements Runnable, AutoCloseable {
+
+    private final SSLServerSocket ssocket;
+    private volatile boolean stopped = false;
+    private volatile boolean ready = false;
+
+    /*
+     * Starts the server in a separate thread.
+     */
+    static void startServer(SSLEchoServer server) {
+        Thread serverThread = new Thread(server, "SSL echo server thread");
+        serverThread.setDaemon(true);
+        serverThread.start();
+    }
+
+    private SSLEchoServer(SSLServerSocket ssocket) {
+        this.ssocket = ssocket;
+    }
+
+    /*
+     * Main server loop.
+     */
+    @Override
+    public void run() {
+        System.out.println("Server: started");
+        while (!stopped) {
+            ready = true;
+            try (SSLSocket socket = (SSLSocket) ssocket.accept()) {
+                System.out.println("Server: client connection accepted");
+                try (
+                    BufferedInputStream bis = new BufferedInputStream(
+                            socket.getInputStream());
+                    BufferedOutputStream bos = new BufferedOutputStream(
+                            socket.getOutputStream())
+                ) {
+                    byte[] buffer = new byte[1024];
+                    int read;
+                    while ((read = bis.read(buffer)) > 0) {
+                        bos.write(buffer, 0, read);
+                        System.out.println("Server: recieved " + read
+                                + " bytes: "
+                                + Arrays.toString(Arrays.copyOf(buffer, read)));
+                        bos.flush();
+                    }
+                }
+            } catch (IOException e) {
+                if (stopped) {
+                    // stopped == true means that stop() method was called,
+                    // so just ignore the exception, and finish the loop
+                    break;
+                }
+                System.out.println("Server: couldn't accept client connection: "
+                        + e);
+            }
+        }
+        System.out.println("Server: finished");
+    }
+
+    boolean isReady() {
+        return ready;
+    }
+
+    void stop() {
+        stopped = true;
+        ready = false;
+
+        // close the server socket to interupt accept() method
+        try {
+            if (!ssocket.isClosed()) {
+                ssocket.close();
+            }
+        } catch (IOException e) {
+            throw new RuntimeException("Unexpected exception: " + e);
+        }
+    }
+
+    @Override
+    public void close() {
+        stop();
+    }
+
+    int getPort() {
+        return ssocket.getLocalPort();
+    }
+
+    /*
+     * Creates server instance.
+     *
+     * @param cipherSuiteFilter Filter for enabled cipher suites
+     * @param sniMatcherPattern Pattern for SNI server hame
+     */
+    static SSLEchoServer init(String cipherSuiteFilter,
+            String sniPattern) throws NoSuchAlgorithmException, IOException {
+        SSLContext context = SSLContext.getDefault();
+        SSLServerSocketFactory ssf =
+                (SSLServerSocketFactory) context.getServerSocketFactory();
+        SSLServerSocket ssocket =
+                (SSLServerSocket) ssf.createServerSocket(0);
+
+        // specify enabled cipher suites
+        if (cipherSuiteFilter != null) {
+            String[] ciphersuites = UnboundSSLUtils.filterStringArray(
+                    ssf.getSupportedCipherSuites(), cipherSuiteFilter);
+            System.out.println("Server: enabled cipher suites: "
+                    + Arrays.toString(ciphersuites));
+            ssocket.setEnabledCipherSuites(ciphersuites);
+        }
+
+        // specify SNI matcher pattern
+        if (sniPattern != null) {
+            System.out.println("Server: set SNI matcher: " + sniPattern);
+            SNIMatcher matcher = SNIHostName.createSNIMatcher(sniPattern);
+            List<SNIMatcher> matchers = new ArrayList<>();
+            matchers.add(matcher);
+            SSLParameters params = ssocket.getSSLParameters();
+            params.setSNIMatchers(matchers);
+            ssocket.setSSLParameters(params);
+        }
+
+        return new SSLEchoServer(ssocket);
+    }
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/unbound.ssl.jaas.conf	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,40 @@
+com.sun.net.ssl.client {
+    com.sun.security.auth.module.Krb5LoginModule required
+    principal="USER@TEST.REALM"
+    doNotPrompt=true
+    useKeyTab=true
+    keyTab="krb5.keytab.data";
+};
+
+server_star {
+    com.sun.security.auth.module.Krb5LoginModule required
+    principal="*"
+    isInitiator=false
+    useKeyTab=true
+    keyTab="krb5.keytab.data"
+    storeKey=true;
+};
+
+server_multiple_principals {
+    com.sun.security.auth.module.Krb5LoginModule required
+    principal="host/service1.localhost@TEST.REALM"
+    isInitiator=false
+    useKeyTab=true
+    keyTab="krb5.keytab.data"
+    storeKey=true;
+
+    com.sun.security.auth.module.Krb5LoginModule required
+    principal="host/service2.localhost@TEST.REALM"
+    isInitiator=false
+    useKeyTab=true
+    keyTab="krb5.keytab.data"
+    storeKey=true;
+
+    com.sun.security.auth.module.Krb5LoginModule required
+    principal="host/service3.localhost@TEST.REALM"
+    isInitiator=false
+    useKeyTab=true
+    keyTab="krb5.keytab.data"
+    storeKey=true;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/unbound.ssl.policy	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,26 @@
+grant {
+    permission java.util.PropertyPermission "*", "read,write";
+    permission java.net.SocketPermission "*:*", "listen,resolve,accept,connect";
+    permission java.io.FilePermission "*", "read,write,delete";
+    permission java.lang.RuntimePermission "accessDeclaredMembers";
+    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+    permission java.lang.RuntimePermission "accessClassInPackage.*";
+    permission javax.security.auth.AuthPermission "doAs";
+    permission javax.security.auth.AuthPermission "getSubject";
+    permission javax.security.auth.AuthPermission
+                    "createLoginContext.server_star";
+    permission javax.security.auth.AuthPermission
+                    "createLoginContext.server_multiple_principals";
+    permission javax.security.auth.AuthPermission "modifyPrincipals";
+    permission javax.security.auth.PrivateCredentialPermission "javax.security.auth.kerberos.KeyTab java.security.Principal \"krb5.keytab.data\"", "read";
+
+    // clients have a permission to use all service principals
+    permission javax.security.auth.kerberos.ServicePermission "*", "initiate";
+
+    // server has a service permission
+    // to accept only service1 and service3 principals
+    permission javax.security.auth.kerberos.ServicePermission
+                    "host/service1.localhost@TEST.REALM", "accept";
+    permission javax.security.auth.kerberos.ServicePermission
+                    "host/service3.localhost@TEST.REALM", "accept";
+};
--- a/jdk/test/sun/security/pkcs11/sslecc/CipherTest.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/sun/security/pkcs11/sslecc/CipherTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@
 public class CipherTest {
 
     // use any available port for the server socket
-    static int serverPort = 0;
+    static volatile int serverPort = 0;
 
     final int THREADS;
 
--- a/jdk/test/sun/security/pkcs11/sslecc/JSSEServer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/sun/security/pkcs11/sslecc/JSSEServer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
         serverContext.init(new KeyManager[] {cipherTest.keyManager}, new TrustManager[] {cipherTest.trustManager}, cipherTest.secureRandom);
 
         SSLServerSocketFactory factory = (SSLServerSocketFactory)serverContext.getServerSocketFactory();
-        serverSocket = (SSLServerSocket)factory.createServerSocket(cipherTest.serverPort);
+        serverSocket = (SSLServerSocket)factory.createServerSocket(0);
         cipherTest.serverPort = serverSocket.getLocalPort();
         serverSocket.setEnabledCipherSuites(factory.getSupportedCipherSuites());
         serverSocket.setWantClientAuth(true);
--- a/jdk/test/sun/security/provider/certpath/ReverseBuilder/BuildPath.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2007, 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 6511784
- * @summary Make sure that building a path to a CRL issuer works in the
- *          reverse direction
- * @library ../../../../../java/security/testlibrary
- * @build CertUtils
- * @run main BuildPath
- */
-import java.security.cert.*;
-import java.util.Collections;
-import sun.security.provider.certpath.SunCertPathBuilderParameters;
-
-public class BuildPath {
-
-    public static void main(String[] args) throws Exception {
-
-        TrustAnchor anchor =
-            new TrustAnchor(CertUtils.getCertFromFile("mgrM2mgrM"), null);
-        X509Certificate target = CertUtils.getCertFromFile("mgrM2leadMA");
-        X509CertSelector xcs = new X509CertSelector();
-        xcs.setSubject("CN=leadMA,CN=mgrM,OU=prjM,OU=divE,OU=Comp,O=sun,C=us");
-        xcs.setCertificate(target);
-        SunCertPathBuilderParameters params =
-            new SunCertPathBuilderParameters(Collections.singleton(anchor),xcs);
-        params.setBuildForward(false);
-        CertStore cs = CertUtils.createStore(new String[]
-            {"mgrM2prjM", "prjM2mgrM", "prjM2divE", "mgrM2leadMA" });
-        params.addCertStore(cs);
-        CertStore cs2 = CertUtils.createCRLStore
-            (new String[] {"mgrMcrl", "prjMcrl"});
-        params.addCertStore(cs2);
-        PKIXCertPathBuilderResult res = CertUtils.build(params);
-    }
-}
--- a/jdk/test/sun/security/provider/certpath/ReverseBuilder/ReverseBuild.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-/*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * 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.
- */
-
-//
-// Security properties, once set, cannot revert to unset.  To avoid
-// conflicts with tests running in the same VM isolate this test by
-// running it in otherVM mode.
-//
-
-/*
- * @test
- * @bug 7167988
- * @summary PKIX CertPathBuilder in reverse mode doesn't work if more than
- *          one trust anchor is specified
- * @run main/othervm ReverseBuild
- */
-import java.io.*;
-import java.util.*;
-import java.security.cert.*;
-import java.security.Security;
-
-import sun.security.provider.certpath.SunCertPathBuilderParameters;
-
-public class ReverseBuild {
-    // Certificate information:
-    // Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
-    // Validity
-    //     Not Before: Dec  8 02:43:36 2008 GMT
-    //     Not After : Aug 25 02:43:36 2028 GMT
-    // Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
-    // X509v3 Subject Key Identifier:
-    //     FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
-    // X509v3 Authority Key Identifier:
-    //     keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
-    //     DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
-    //     serial:00
-    static String NoiceTrusedCertStr =
-        "-----BEGIN CERTIFICATE-----\n" +
-        "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
-        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
-        "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
-        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
-        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
-        "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
-        "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
-        "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
-        "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
-        "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
-        "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
-        "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
-        "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
-        "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
-        "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
-        "-----END CERTIFICATE-----";
-
-    // Certificate information:
-    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
-    // Validity
-    //     Not Before: Aug 19 01:52:19 2011 GMT
-    //     Not After : Jul 29 01:52:19 2032 GMT
-    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce
-
-    // X509v3 Subject Key Identifier:
-    //     B9:7C:D5:D9:DF:A7:4C:03:AE:FD:0E:27:5B:31:95:6C:C7:F3:75:E1
-    // X509v3 Authority Key Identifier:
-    //     keyid:B9:7C:D5:D9:DF:A7:4C:03:AE:FD:0E:27:5B:31:95:6C:C7:F3:75:E1
-    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
-    //     serial:00
-    static String NoiceTrusedCertStr_2nd =
-        "-----BEGIN CERTIFICATE-----\n" +
-        "MIICkjCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADA7MQswCQYDVQQGEwJVUzEN\n" +
-        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n" +
-        "MTEwODE5MDE1MjE5WhcNMzIwNzI5MDE1MjE5WjA7MQswCQYDVQQGEwJVUzENMAsG\n" +
-        "A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwgZ8wDQYJ\n" +
-        "KoZIhvcNAQEBBQADgY0AMIGJAoGBAM8orG08DtF98TMSscjGsidd1ZoN4jiDpi8U\n" +
-        "ICz+9dMm1qM1d7O2T+KH3/mxyox7Rc2ZVSCaUD0a3CkhPMnlAx8V4u0H+E9sqso6\n" +
-        "iDW3JpOyzMExvZiRgRG/3nvp55RMIUV4vEHOZ1QbhuqG4ebN0Vz2DkRft7+flthf\n" +
-        "vDld6f5JAgMBAAGjgaUwgaIwHQYDVR0OBBYEFLl81dnfp0wDrv0OJ1sxlWzH83Xh\n" +
-        "MGMGA1UdIwRcMFqAFLl81dnfp0wDrv0OJ1sxlWzH83XhoT+kPTA7MQswCQYDVQQG\n" +
-        "EwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2\n" +
-        "Y2WCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEE\n" +
-        "BQADgYEALlgaH1gWtoBZ84EW8Hu6YtGLQ/L9zIFmHonUPZwn3Pr//icR9Sqhc3/l\n" +
-        "pVTxOINuFHLRz4BBtEylzRIOPzK3tg8XwuLb1zd0db90x3KBCiAL6E6cklGEPwLe\n" +
-        "XYMHDn9eDsaq861Tzn6ZwzMgw04zotPMoZN0mVd/3Qca8UJFucE=\n" +
-        "-----END CERTIFICATE-----";
-
-
-    // Certificate information:
-    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
-    // Validity
-    //     Not Before: May  5 02:40:50 2012 GMT
-    //     Not After : Apr 15 02:40:50 2033 GMT
-    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce
-    // X509v3 Subject Key Identifier:
-    //     DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
-    // X509v3 Authority Key Identifier:
-    //     keyid:DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
-    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
-    //     serial:00
-    static String trustedCertStr =
-        "-----BEGIN CERTIFICATE-----\n" +
-        "MIICkjCCAfugAwIBAgIBADANBgkqhkiG9w0BAQIFADA7MQswCQYDVQQGEwJVUzEN\n" +
-        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n" +
-        "MTIwNTA1MDI0MDUwWhcNMzMwNDE1MDI0MDUwWjA7MQswCQYDVQQGEwJVUzENMAsG\n" +
-        "A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwgZ8wDQYJ\n" +
-        "KoZIhvcNAQEBBQADgY0AMIGJAoGBANtiq0AIJK+iVRwFrqcD7fYXTCbMYC5Qz/k6\n" +
-        "AXBy7/1rI8wDhEJLE3m/+NSqiJwZcmdq2dNh/1fJFrwvzuURbc9+paOBWeHbN+Sc\n" +
-        "x3huw91oPZme385VpoK3G13rSE114S/rF4DM9mz4EStFhSHXATjtdbskNOAYGLTV\n" +
-        "x8uEy9GbAgMBAAGjgaUwgaIwHQYDVR0OBBYEFN1OjSoRwIMD8Kzror/58n3IaR+b\n" +
-        "MGMGA1UdIwRcMFqAFN1OjSoRwIMD8Kzror/58n3IaR+boT+kPTA7MQswCQYDVQQG\n" +
-        "EwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2\n" +
-        "Y2WCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEC\n" +
-        "BQADgYEAjjkJesQrkbr36N40egybaIxw7RcqT6iy5fkAGS1JYlBDk8uSCK1o6bCH\n" +
-        "ls5EpYcGeEoabSS73WRdkO1lgeyWDduO4ef8cCCSpmpT6/YdZG0QS1PtcREeVig+\n" +
-        "Zr25jNemS4ADHX0aaXP4kiV/G80cR7nX5t5XCUm4bYdbwM07NgI=\n" +
-        "-----END CERTIFICATE-----";
-    static String trustedPrivateKey = // Private key in the format of PKCS#8
-        "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANtiq0AIJK+iVRwF\n" +
-        "rqcD7fYXTCbMYC5Qz/k6AXBy7/1rI8wDhEJLE3m/+NSqiJwZcmdq2dNh/1fJFrwv\n" +
-        "zuURbc9+paOBWeHbN+Scx3huw91oPZme385VpoK3G13rSE114S/rF4DM9mz4EStF\n" +
-        "hSHXATjtdbskNOAYGLTVx8uEy9GbAgMBAAECgYEA2VjHkIiA0ABjkX+PqKeb+VLb\n" +
-        "fxS7tSca5C8zfdRhLxAWRui0/3ihst0eCJNrBDuxvAOACovsDWyLuaUjtI2v2ysz\n" +
-        "vz6SPyGy82PhQOFzyKQuQ814N6EpothpiZzF0yFchfKIGhUsdY89UrGs9nM7m6NT\n" +
-        "rztYvgIu4avg2VPR2AECQQD+pFAqipR2BplQRIuuRSZfHRxvoEyDjT1xnHJsC6WP\n" +
-        "I5hCLghL91MhQGWbP4EJMKYQOTRVukWlcp2Kycpf+P5hAkEA3I43gmVUAPEdyZdY\n" +
-        "fatW7OaLlbbYJb6qEtpCZ1Rwe/BIvm6H6E3qSi/lpz7Ia7WDulpbF6BawHH3pRFq\n" +
-        "CUY5ewJBAP3pUDqrRpBN0jB0uSeDslhjSciQ+dqvSpZv3rSYBHUvlBJhnkpJiy37\n" +
-        "7ZUZhIxqYxyIPgRBolLwb+FFh7OdL+ECQCtldDic9WVmC+VheRDpCKZ+SlK/8lGi\n" +
-        "7VXeShiIvcU1JysJFoa35fSI7hf1O3wt7+hX5PqGG7Un94EsJwACKEcCQQC1TWt6\n" +
-        "ArKH6tRxKjOxFtqfs8fgEVYUaOr3j1jF4KBUuX2mtQtddZe3VfJ2wPsuKMMxmhkB\n" +
-        "e7xWWZnJsErt2e+E";
-
-    // Certificate information:
-    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
-    // Validity
-    //     Not Before: May  5 02:40:53 2012 GMT
-    //     Not After : Jan 21 02:40:53 2032 GMT
-    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=casigner
-    // X509v3 Subject Key Identifier:
-    //     13:07:E0:11:07:DB:EB:33:23:87:31:D0:DB:7E:16:56:BE:11:90:0A
-    // X509v3 Authority Key Identifier:
-    //     keyid:DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
-    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
-    //     serial:00
-    static String caSignerStr =
-        "-----BEGIN CERTIFICATE-----\n" +
-        "MIICqDCCAhGgAwIBAgIBAjANBgkqhkiG9w0BAQQFADA7MQswCQYDVQQGEwJVUzEN\n" +
-        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n" +
-        "MTIwNTA1MDI0MDUzWhcNMzIwMTIxMDI0MDUzWjBOMQswCQYDVQQGEwJVUzENMAsG\n" +
-        "A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxETAPBgNV\n" +
-        "BAMTCGNhc2lnbmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+x8+o7oM0\n" +
-        "ct/LZmZLXBL4CQ8jrULD5P7NtEW0hg/zxBFZfBHf+44Oo2eMPYZj+7xaREOH5BmV\n" +
-        "KRYlzRtONAaC5Ng4Mrm5UKNPcMIIUjUOvm7vWM4oSTMSfoEcSX+vp99uUAkw3w7Z\n" +
-        "+frYDm1M4At/j0b+lLij71GFN2L8drpgPQIDAQABo4GoMIGlMB0GA1UdDgQWBBQT\n" +
-        "B+ARB9vrMyOHMdDbfhZWvhGQCjBjBgNVHSMEXDBagBTdTo0qEcCDA/Cs66K/+fJ9\n" +
-        "yGkfm6E/pD0wOzELMAkGA1UEBhMCVVMxDTALBgNVBAoTBEphdmExHTAbBgNVBAsT\n" +
-        "FFN1bkpTU0UgVGVzdCBTZXJpdmNlggEAMBIGA1UdEwEB/wQIMAYBAf8CAQEwCwYD\n" +
-        "VR0PBAQDAgEGMA0GCSqGSIb3DQEBBAUAA4GBAI+LXA/UCPkTANablUkt80JNPWsl\n" +
-        "pS4XLNgPxWaN0bkRDs5oI4ooWAz1rwpeJ/nfetOvWlpmrVjSeovBFja5Hl+dUHTf\n" +
-        "VfuyzkxXbhuNiJIpo1mVBpNsjwu9YRxuwX6UA2LTUQpgvtVJEE012x3zRvxBCbu2\n" +
-        "Y/v1R5fZ4c+hXDfC\n" +
-        "-----END CERTIFICATE-----";
-    static String caSignerPrivateKey = // Private key in the format of PKCS#8
-        "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL7Hz6jugzRy38tm\n" +
-        "ZktcEvgJDyOtQsPk/s20RbSGD/PEEVl8Ed/7jg6jZ4w9hmP7vFpEQ4fkGZUpFiXN\n" +
-        "G040BoLk2DgyublQo09wwghSNQ6+bu9YzihJMxJ+gRxJf6+n325QCTDfDtn5+tgO\n" +
-        "bUzgC3+PRv6UuKPvUYU3Yvx2umA9AgMBAAECgYBYvu30cW8LONyt62Zua9hPFTe7\n" +
-        "qt9B7QYyfkdmoG5PQMepTrOp84SzfoOukvgvDm0huFuJnSvhXQl2cCDhkgXskvFj\n" +
-        "Hh7KBCFViVXokGdq5YoS0/KYMyQV0TZfJUvILBl51uc4/siQ2tClC/N4sa+1JhgW\n" +
-        "a6dFGfRjiUKSSlmMwQJBAPWpIz3Q/c+DYMvoQr5OD8EaYwYIevlTdXb97RnJJh2b\n" +
-        "UnhB9jrqesJiHYVzPmP0ukyPOXOwlp2T5Am4Kw0LFOkCQQDGz150NoHOp28Mvyc4\n" +
-        "CTqz/zYzUhy2eCJESl196uyP4N65Y01VYQ3JDww4DlsXiU17tVSbgA9TCcfTYOzy\n" +
-        "vyw1AkARUky+1hafZCcWGZljK8PmnMKwsTZikCTvL/Zg5BMA8Wu+OQBwpQnk3OAy\n" +
-        "Aa87gw0DyvGFG8Vy9POWT9sRP1/JAkBqP0hrMvYMSs6+MSn0eHo2151PsAJIQcuO\n" +
-        "U2/Da1khSzu8N6WMi2GiobgV/RYRbf9KrY2ZzMZjykZQYOxAjopBAkEAghCu38cN\n" +
-        "aOsW6ueo24uzsWI1FTdE+qWNVEi3RSP120xXBCyhaBjIq4WVSlJK9K2aBaJpit3j\n" +
-        "iQ5tl6zrLlxQhg==";
-
-    // Certificate information:
-    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=casigner
-    // Validity
-    //     Not Before: May  5 02:40:57 2012 GMT
-    //     Not After : Jan 21 02:40:57 2032 GMT
-    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
-    // X509v3 Subject Key Identifier:
-    //     39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
-    // X509v3 Authority Key Identifier:
-    //     keyid:13:07:E0:11:07:DB:EB:33:23:87:31:D0:DB:7E:16:56:BE:11:90:0A
-    //     DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
-    //     serial:02
-    static String certIssuerStr =
-        "-----BEGIN CERTIFICATE-----\n" +
-        "MIICvjCCAiegAwIBAgIBAzANBgkqhkiG9w0BAQQFADBOMQswCQYDVQQGEwJVUzEN\n" +
-        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxETAP\n" +
-        "BgNVBAMTCGNhc2lnbmVyMB4XDTEyMDUwNTAyNDA1N1oXDTMyMDEyMTAyNDA1N1ow\n" +
-        "UDELMAkGA1UEBhMCVVMxDTALBgNVBAoTBEphdmExHTAbBgNVBAsTFFN1bkpTU0Ug\n" +
-        "VGVzdCBTZXJpdmNlMRMwEQYDVQQDEwpjZXJ0aXNzdWVyMIGfMA0GCSqGSIb3DQEB\n" +
-        "AQUAA4GNADCBiQKBgQCyz55zinU6kNL/LeiTNiBI0QWYmDG0YTotuC4D75liBNqs\n" +
-        "7Mmladsh2mTtQUAwmuGaGzaZV25a+cUax0DXZoyBwdbTI09u1bUYsZcaUUKbPoCC\n" +
-        "HH26e4jLFL4olW13Sv4ZAd57tIYevMw+Fp5f4fLPFGegCJTFlv2Qjpmic/cuvQID\n" +
-        "AQABo4GpMIGmMB0GA1UdDgQWBBQ5DsYzsVC8cwcx5dgE97uXVc+byDBjBgNVHSME\n" +
-        "XDBagBQTB+ARB9vrMyOHMdDbfhZWvhGQCqE/pD0wOzELMAkGA1UEBhMCVVMxDTAL\n" +
-        "BgNVBAoTBEphdmExHTAbBgNVBAsTFFN1bkpTU0UgVGVzdCBTZXJpdmNlggECMBMG\n" +
-        "A1UdEwEB/wQJMAcBAf8CAgQAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQQFAAOB\n" +
-        "gQCQTagenCdClT98C+oTJGJrw/dUBD9K3tE6ZJKPMc/2bUia8G5ei1C0eXj4mWG2\n" +
-        "lu9umR6C90/A6qB050QB2h50qtqxSrkpu+ym1yypauZpg7U3nUY9wZWJNI1vqrQZ\n" +
-        "pqUMRcXY3iQIVKx+Qj+4/Za1wwFQzpEoGmqRW31V1SdMEw==\n" +
-        "-----END CERTIFICATE-----";
-    static String certIssuerPrivateKey = // Private key in the format of PKCS#8
-        "MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBALLPnnOKdTqQ0v8t\n" +
-        "6JM2IEjRBZiYMbRhOi24LgPvmWIE2qzsyaVp2yHaZO1BQDCa4ZobNplXblr5xRrH\n" +
-        "QNdmjIHB1tMjT27VtRixlxpRQps+gIIcfbp7iMsUviiVbXdK/hkB3nu0hh68zD4W\n" +
-        "nl/h8s8UZ6AIlMWW/ZCOmaJz9y69AgMBAAECgYEAjtew2tgm4gxDojqIauF4VPM1\n" +
-        "pzsdqd1p3pAdomNLgrQiBLZ8N7oiph6TNb1EjA+OXc+ThFgF/oM9ZDD8qZZwcvjN\n" +
-        "qDZlpTkFs2TaGcyEZfUaMB45NHVs6Nn+pSkagSNwwy3xeyAct7sQEzGNTDlEwVv5\n" +
-        "7V9LQutQtBd6xT48KzkCQQDpNRfv2OFNG/6GtzJoO68oJhpnpl2MsYNi4ntRkre/\n" +
-        "6uXpiCYaDskcrPMRwOOs0m7mxG+Ev+uKnLnSoEMm1GCbAkEAxEmDtiD0Psb8Z9BL\n" +
-        "ZRb83Jqho3xe2MCAh3xUfz9b/Mhae9dZ44o4OCgQZuwvW1mczF0NtpgZl93BmYa2\n" +
-        "hTwHhwJBAKHrEj6ep/fA6x0gD2idoATRR94VfbiU+7NpqtO9ecVP0+gsdr/66hn1\n" +
-        "3yLBeZLh3MxvMTrLgkAQh1i9m0JXjOcCQQClLXAHHegrw+u3uNMZeKTFR+Lp3sk6\n" +
-        "AZSnbvr0Me9I45kxSeG81x3ENALJecvIRbrrRws5MvmmkNhQR8rkh8WVAkEAk6b+\n" +
-        "aVtmBgUaTS5+FFlHGHJY9HFrfT1a1C/dwyMuqlmbC3YsBmZaMOlKli5TXNybLff8\n" +
-        "5KMeGEpXMzgC7AscGA==";
-
-    // Certificate information:
-    // Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
-    // Validity
-    //     Not Before: May  5 02:41:01 2012 GMT
-    //     Not After : Jan 21 02:41:01 2032 GMT
-    // Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=localhost
-    // X509v3 Subject Key Identifier:
-    //     AD:C0:2C:4C:E4:C2:2E:A1:BB:5D:92:BE:66:E0:4E:E0:0D:2F:11:EF
-    // X509v3 Authority Key Identifier:
-    //     keyid:39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
-    static String targetCertStr =
-        "-----BEGIN CERTIFICATE-----\n" +
-        "MIICjTCCAfagAwIBAgIBBDANBgkqhkiG9w0BAQQFADBQMQswCQYDVQQGEwJVUzEN\n" +
-        "MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxEzAR\n" +
-        "BgNVBAMTCmNlcnRpc3N1ZXIwHhcNMTIwNTA1MDI0MTAxWhcNMzIwMTIxMDI0MTAx\n" +
-        "WjBPMQswCQYDVQQGEwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNT\n" +
-        "RSBUZXN0IFNlcml2Y2UxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0B\n" +
-        "AQEFAAOBjQAwgYkCgYEAvwaUd7wmBSKqycEstYLWD26vkU08DM39EtaT8wL9HnQ0\n" +
-        "fgPblwBFI4zdLa2cuYXRZcFUb04N8nrkcpR0D6kkE+AlFAoRWrrZF80B7JTbtEK4\n" +
-        "1PIeurihXvUT+4MpzGLOojIihMfvM4ufelblD56SInso4WFHm7t4qCln88J1gjkC\n" +
-        "AwEAAaN4MHYwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBStwCxM5MIuobtdkr5m4E7g\n" +
-        "DS8R7zAfBgNVHSMEGDAWgBQ5DsYzsVC8cwcx5dgE97uXVc+byDAnBgNVHSUEIDAe\n" +
-        "BggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDMA0GCSqGSIb3DQEBBAUAA4GB\n" +
-        "AGfwcfdvEG/nSCiAn2MGbYHp34mgF3OA1SJLWUW0LvWJhwm2cn4AXlSoyvbwrkaB\n" +
-        "IDDCwhJvvc0vUyL2kTx7sqVaFTq3mDs+ktlB/FfH0Pb+i8FE+g+7T42Iw/j0qxHL\n" +
-        "YmgbrjBQf5WYN1AvBE/rrPt9aOtS3UsqtVGW574b0shW\n" +
-        "-----END CERTIFICATE-----";
-    static String targetPrivateKey = // Private key in the format of PKCS#8
-        "MIICdAIBADANBgkqhkiG9w0BAQEFAASCAl4wggJaAgEAAoGBAL8GlHe8JgUiqsnB\n" +
-        "LLWC1g9ur5FNPAzN/RLWk/MC/R50NH4D25cARSOM3S2tnLmF0WXBVG9ODfJ65HKU\n" +
-        "dA+pJBPgJRQKEVq62RfNAeyU27RCuNTyHrq4oV71E/uDKcxizqIyIoTH7zOLn3pW\n" +
-        "5Q+ekiJ7KOFhR5u7eKgpZ/PCdYI5AgMBAAECf3CscOYvFD3zNMnMJ5LomVqA7w3F\n" +
-        "gKYM2jlCWAH+wU41PMEXhW6Lujw92jgXL1o+lERwxFzirVdZJWZwKgUSvzP1G0h3\n" +
-        "fkucq1/UWnToK+8NSXNM/yS8hXbBgSEoJo5f7LKcIi1Ev6doBVofMxs+njzyWKbM\n" +
-        "Nb7rOLHadghoon0CQQDgQzbzzSN8Dc1YmmylhI5v+0sQRHH0DL7D24k4Weh4vInG\n" +
-        "EAbt4x8M7ZKEo8/dv0s4hbmNmAnJl93/RRxIyEqLAkEA2g87DiswSQam2pZ8GlrO\n" +
-        "+w4Qg9mH8uxx8ou2rl0XlHzH1XiTNbkjfY0EZoL7L31BHFk9n11Fb2P85g6ws+Hy\n" +
-        "ywJAM/xgyLNM/nzUlS128geAXUULaYH0SHaL4isJ7B4rXZGW/mrIsGxtzjlkNYsj\n" +
-        "rGujrD6TfNc5rZmexIXowJZtcQJBAIww+pCzZ4mrgx5JXWQ8OZHiiu+ZrPOa2+9J\n" +
-        "r5sOMpi+WGN/73S8oHqZbNjTINZ5OqEVJq8MchWZPQBTNXuQql0CQHEjUzzkCQa3\n" +
-        "j6JTa2KAdqyvLOx0XF9zcc1gA069uNQI2gPUHS8V215z57f/gMGnDNhVfLs/vMKz\n" +
-        "sFkVZ3zg7As=";
-
-
-    public static void main(String args[]) throws Exception {
-        // MD5 is used in this test case, don't disable MD5 algorithm.
-        Security.setProperty(
-                "jdk.certpath.disabledAlgorithms", "MD2, RSA keySize < 1024");
-
-        // generate certificate from cert string
-        CertificateFactory cf = CertificateFactory.getInstance("X.509");
-
-        // create a set of trust anchors
-        LinkedHashSet<TrustAnchor> trustAnchors = new LinkedHashSet<>();
-
-        ByteArrayInputStream is =
-            new ByteArrayInputStream(NoiceTrusedCertStr.getBytes());
-        Certificate trustedCert = cf.generateCertificate(is);
-        is.close();
-        TrustAnchor anchor =
-            new TrustAnchor((X509Certificate)trustedCert, null);
-        trustAnchors.add(anchor);
-
-        is = new ByteArrayInputStream(trustedCertStr.getBytes());
-        trustedCert = cf.generateCertificate(is);
-        is.close();
-        anchor = new TrustAnchor((X509Certificate)trustedCert, null);
-        trustAnchors.add(anchor);
-
-        is = new ByteArrayInputStream(NoiceTrusedCertStr_2nd.getBytes());
-        trustedCert = cf.generateCertificate(is);
-        is.close();
-        anchor = new TrustAnchor((X509Certificate)trustedCert, null);
-        trustAnchors.add(anchor);
-
-        // create a list of certificates
-        List<Certificate> chainList = new ArrayList<>();
-
-        is = new ByteArrayInputStream(targetCertStr.getBytes());
-        Certificate cert = cf.generateCertificate(is);
-        is.close();
-        chainList.add(cert);
-
-        is = new ByteArrayInputStream(certIssuerStr.getBytes());
-        cert = cf.generateCertificate(is);
-        is.close();
-        chainList.add(cert);
-
-        is = new ByteArrayInputStream(caSignerStr.getBytes());
-        cert = cf.generateCertificate(is);
-        is.close();
-        chainList.add(cert);
-
-        // create a certificate selector
-        X509CertSelector xcs = new X509CertSelector();
-        X509Certificate eeCert = (X509Certificate)chainList.get(0);
-        xcs.setSubject(eeCert.getSubjectX500Principal());
-
-        // reverse build
-        SunCertPathBuilderParameters params =
-            new SunCertPathBuilderParameters(trustAnchors, xcs);
-        params.setBuildForward(false);
-        params.setRevocationEnabled(false);
-
-        CollectionCertStoreParameters ccsp =
-            new CollectionCertStoreParameters(chainList);
-        params.addCertStore(CertStore.getInstance("Collection", ccsp));
-
-        CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX");
-        CertPathBuilderResult res = cpb.build(params);
-    }
-}
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrM2leadMA has changed
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrM2mgrM has changed
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrM2prjM has changed
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/mgrMcrl has changed
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/prjM2divE has changed
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/prjM2mgrM has changed
Binary file jdk/test/sun/security/provider/certpath/ReverseBuilder/prjMcrl has changed
--- a/jdk/test/tools/launcher/ExecutionEnvironment.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/jdk/test/tools/launcher/ExecutionEnvironment.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -184,15 +184,7 @@
 
         Map<String, String> env = new HashMap<>();
 
-        if (TestHelper.isLinux || TestHelper.isMacOSX || TestHelper.isAIX) {
-            for (String x : LD_PATH_STRINGS) {
-                String pairs[] = x.split("=");
-                env.put(pairs[0], pairs[1]);
-            }
-
-            tr = doExec(env, javaCmd, "-jar", testJarFile.getAbsolutePath());
-            verifyJavaLibraryPathGeneric(tr);
-        } else { // Solaris
+        if (TestHelper.isSolaris) {
             // no override
             env.clear();
             env.put(LD_LIBRARY_PATH, LD_LIBRARY_PATH_VALUE);
@@ -208,6 +200,14 @@
             // verify the override occurs for 64-bit system
             tr = doExec(env, javaCmd, "-jar", testJarFile.getAbsolutePath());
             verifyJavaLibraryPathOverride(tr, false);
+        } else {
+            for (String x : LD_PATH_STRINGS) {
+                String pairs[] = x.split("=");
+                env.put(pairs[0], pairs[1]);
+            }
+
+            tr = doExec(env, javaCmd, "-jar", testJarFile.getAbsolutePath());
+            verifyJavaLibraryPathGeneric(tr);
         }
     }
 
--- a/langtools/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -302,3 +302,5 @@
 ec977a00cecbf0007b0fa26c7af2852d57a79cad jdk9-b57
 07ce89fec30165a2f1212047bd23b30086ed1e74 jdk9-b58
 a598534d277e170a0bbf177bd54d9d179245532b jdk9-b59
+81bdc4545337c404bb87373838c983584a49afd6 jdk9-b60
+0eb91327db5a840779cc5c35b9b858d6ef7959d1 jdk9-b61
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -108,6 +108,7 @@
     public enum Flag {
         TABLE_HAS_CAPTION,
         HAS_ELEMENT,
+        HAS_HEADING,
         HAS_INLINE_TAG,
         HAS_TEXT,
         REPORTED_BAD_INLINE
@@ -282,6 +283,8 @@
         final HtmlTag t = HtmlTag.get(treeName);
         if (t == null) {
             env.messages.error(HTML, tree, "dc.tag.unknown", treeName);
+        } else if (t.allowedVersion != HtmlVersion.ALL && t.allowedVersion != env.htmlVersion) {
+            env.messages.error(HTML, tree, "dc.tag.not.supported", treeName);
         } else {
             boolean done = false;
             for (TagStackItem tsi: tagStack) {
@@ -345,6 +348,12 @@
                             parent.flags.add(Flag.TABLE_HAS_CAPTION);
                         break;
 
+                    case H1: case H2: case H3: case H4: case H5: case H6:
+                        if (parent != null && (parent.tag == HtmlTag.SECTION || parent.tag == HtmlTag.ARTICLE)) {
+                            parent.flags.add(Flag.HAS_HEADING);
+                        }
+                        break;
+
                     case IMG:
                         if (!top.attrs.contains(HtmlTag.Attr.ALT))
                             env.messages.error(ACCESSIBILITY, tree, "dc.no.alt.attr.for.image");
@@ -460,6 +469,14 @@
                                 env.messages.error(ACCESSIBILITY, tree,
                                         "dc.no.summary.or.caption.for.table");
                             }
+                            break;
+
+                        case SECTION:
+                        case ARTICLE:
+                            if (env.htmlVersion == HtmlVersion.HTML5 && !top.flags.contains(Flag.HAS_HEADING)) {
+                                env.messages.error(HTML, tree, "dc.tag.requires.heading", treeName);
+                            }
+                            break;
                     }
                     warnIfEmpty(top, tree);
                     tagStack.pop();
@@ -519,25 +536,21 @@
             Name name = tree.getName();
             HtmlTag.Attr attr = currTag.getAttr(name);
             if (attr != null) {
+                if (env.htmlVersion == HtmlVersion.HTML4 && attr.name().contains("-")) {
+                    env.messages.error(HTML, tree, "dc.attr.not.supported.html4", name);
+                }
                 boolean first = tagStack.peek().attrs.add(attr);
                 if (!first)
                     env.messages.error(HTML, tree, "dc.attr.repeated", name);
             }
             AttrKind k = currTag.getAttrKind(name);
-            switch (k) {
-                case OK:
+            switch (env.htmlVersion) {
+                case HTML4:
+                    validateHtml4Attrs(tree, name, k);
                     break;
 
-                case INVALID:
-                    env.messages.error(HTML, tree, "dc.attr.unknown", name);
-                    break;
-
-                case OBSOLETE:
-                    env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete", name);
-                    break;
-
-                case USE_CSS:
-                    env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete.use.css", name);
+                case HTML5:
+                    validateHtml5Attrs(tree, name, k);
                     break;
             }
 
@@ -590,6 +603,20 @@
                             }
                         }
                         break;
+
+                    case BORDER:
+                        if (currTag == HtmlTag.TABLE) {
+                            String v = getAttrValue(tree);
+                            try {
+                                if (env.htmlVersion == HtmlVersion.HTML5
+                                        && (v == null || (!v.isEmpty() && Integer.parseInt(v) != 1))) {
+                                    env.messages.error(HTML, tree, "dc.attr.table.border.html5", attr);
+                                }
+                            } catch (NumberFormatException ex) {
+                                env.messages.error(HTML, tree, "dc.attr.table.border.html5", attr);
+                            }
+                        }
+                        break;
                 }
             }
         }
@@ -599,6 +626,45 @@
         return super.visitAttribute(tree, ignore);
     }
 
+    private void validateHtml4Attrs(AttributeTree tree, Name name, AttrKind k) {
+        switch (k) {
+            case ALL:
+            case HTML4:
+                break;
+
+            case INVALID:
+                env.messages.error(HTML, tree, "dc.attr.unknown", name);
+                break;
+
+            case OBSOLETE:
+                env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete", name);
+                break;
+
+            case USE_CSS:
+                env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete.use.css", name);
+                break;
+
+            case HTML5:
+                env.messages.error(HTML, tree, "dc.attr.not.supported.html4", name);
+                break;
+        }
+    }
+
+    private void validateHtml5Attrs(AttributeTree tree, Name name, AttrKind k) {
+        switch (k) {
+            case ALL:
+            case HTML5:
+                break;
+
+            case INVALID:
+            case OBSOLETE:
+            case USE_CSS:
+            case HTML4:
+                env.messages.error(HTML, tree, "dc.attr.not.supported.html5", name);
+                break;
+        }
+    }
+
     private boolean checkAnchor(String name) {
         Element e = getEnclosingPackageOrClass(env.currElement);
         if (e == null)
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/DocLint.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/DocLint.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -80,6 +80,7 @@
     private static final String STATS = "-stats";
     public static final String XIMPLICIT_HEADERS = "-XimplicitHeaders:";
     public static final String XCUSTOM_TAGS_PREFIX = "-XcustomTags:";
+    public static final String XHTML_VERSION_PREFIX = "-XhtmlVersion:";
     public static final String XCHECK_PACKAGE = "-XcheckPackage:";
     public static final String SEPARATOR = ",";
 
@@ -210,6 +211,14 @@
                 env.messages.setOptions(arg.substring(arg.indexOf(":") + 1));
             } else if (arg.startsWith(XCUSTOM_TAGS_PREFIX)) {
                 env.setCustomTags(arg.substring(arg.indexOf(":") + 1));
+            } else if (arg.startsWith(XHTML_VERSION_PREFIX)) {
+                String argsVersion = arg.substring(arg.indexOf(":") + 1);
+                HtmlVersion htmlVersion = HtmlVersion.getHtmlVersion(argsVersion);
+                if (htmlVersion != null) {
+                    env.setHtmlVersion(htmlVersion);
+                } else {
+                    throw new BadArgs("dc.bad.value.for.option", arg, argsVersion);
+                }
             } else if (arg.equals("-h") || arg.equals("-help") || arg.equals("--help")
                     || arg.equals("-?") || arg.equals("-usage")) {
                 needHelp = true;
@@ -274,6 +283,14 @@
                 env.setImplicitHeaders(Character.digit(ch, 10));
             } else if (arg.startsWith(XCUSTOM_TAGS_PREFIX)) {
                 env.setCustomTags(arg.substring(arg.indexOf(":") + 1));
+            } else if (arg.startsWith(XHTML_VERSION_PREFIX)) {
+                String argsVersion = arg.substring(arg.indexOf(":") + 1);
+                HtmlVersion htmlVersion = HtmlVersion.getHtmlVersion(argsVersion);
+                if (htmlVersion != null) {
+                    env.setHtmlVersion(htmlVersion);
+                } else {
+                    throw new IllegalArgumentException(argsVersion);
+                }
             } else if (arg.startsWith(XCHECK_PACKAGE)) {
                 env.setCheckPackages(arg.substring(arg.indexOf(":") + 1));
             } else
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/Env.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/Env.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -99,6 +99,8 @@
     Set<Pattern> includePackages;
     Set<Pattern> excludePackages;
 
+    HtmlVersion htmlVersion = HtmlVersion.HTML4;
+
     // Utility classes
     DocTrees trees;
     Elements elements;
@@ -193,6 +195,10 @@
         return true;
     }
 
+    void setHtmlVersion(HtmlVersion version) {
+        htmlVersion = version;
+    }
+
     /** Set the current declaration and its doc comment. */
     void setCurrent(TreePath path, DocCommentTree comment) {
         currPath = path;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/HtmlTag.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/HtmlTag.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,26 +51,37 @@
  *
  * @see <a href="http://www.w3.org/TR/REC-html40/">HTML 4.01 Specification</a>
  * @see <a href="http://www.w3.org/TR/html5/">HTML 5 Specification</a>
+ * @see <a href="http://www.w3.org/TR/wai-aria/ ">WAI-ARIA Specification</a>
+ * @see <a href="http://www.w3.org/TR/aria-in-html/#recommendations-table">WAI-ARIA Recommendations Table</a>
  * @author Bhavesh Patel
  * @author Jonathan Gibbons (revised)
  */
 public enum HtmlTag {
     A(BlockType.INLINE, EndKind.REQUIRED,
-            attrs(AttrKind.OK, HREF, TARGET, NAME)),
+            attrs(AttrKind.ALL, HREF, TARGET, ID),
+            attrs(AttrKind.HTML4, REV, CHARSET, SHAPE, COORDS, NAME)),
 
     ABBR(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
-    ACRONYM(BlockType.INLINE, EndKind.REQUIRED,
+    ACRONYM(HtmlVersion.HTML4, BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
     ADDRESS(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
+    ARTICLE(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
+
+    ASIDE(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
+
     B(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
-    BIG(BlockType.INLINE, EndKind.REQUIRED,
+    BDI(HtmlVersion.HTML5, BlockType.INLINE, EndKind.REQUIRED),
+
+    BIG(HtmlVersion.HTML4, BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT)),
 
     BLOCKQUOTE(BlockType.BLOCK, EndKind.REQUIRED,
@@ -82,9 +93,10 @@
             attrs(AttrKind.USE_CSS, CLEAR)),
 
     CAPTION(BlockType.TABLE_ITEM, EndKind.REQUIRED,
-            EnumSet.of(Flag.ACCEPTS_INLINE, Flag.EXPECT_CONTENT)),
+            EnumSet.of(Flag.ACCEPTS_INLINE, Flag.EXPECT_CONTENT),
+            attrs(AttrKind.USE_CSS, ALIGN)),
 
-    CENTER(BlockType.BLOCK, EndKind.REQUIRED,
+    CENTER(HtmlVersion.HTML4, BlockType.BLOCK, EndKind.REQUIRED,
             EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
 
     CITE(BlockType.INLINE, EndKind.REQUIRED,
@@ -93,18 +105,30 @@
     CODE(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
+    COL(BlockType.TABLE_ITEM, EndKind.NONE,
+            attrs(AttrKind.HTML4, ALIGN, CHAR, CHAROFF, VALIGN, WIDTH)),
+
+    COLGROUP(BlockType.TABLE_ITEM, EndKind.REQUIRED,
+            attrs(AttrKind.HTML4, ALIGN, CHAR, CHAROFF, VALIGN, WIDTH)) {
+        @Override
+        public boolean accepts(HtmlTag t) {
+            return (t == COL);
+        }
+    },
+
     DD(BlockType.LIST_ITEM, EndKind.OPTIONAL,
             EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE, Flag.EXPECT_CONTENT)),
 
     DEL(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST),
-            attrs(AttrKind.OK, Attr.CITE, Attr.DATETIME)),
+            attrs(AttrKind.ALL, Attr.CITE, Attr.DATETIME)),
 
     DFN(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
     DIV(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
+            attrs(AttrKind.USE_CSS, ALIGN)),
 
     DL(BlockType.BLOCK, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT),
@@ -121,49 +145,95 @@
     EM(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.NO_NEST)),
 
-    FONT(BlockType.INLINE, EndKind.REQUIRED, // tag itself is deprecated
+    FONT(HtmlVersion.HTML4, BlockType.INLINE, EndKind.REQUIRED, // tag itself is deprecated
             EnumSet.of(Flag.EXPECT_CONTENT),
             attrs(AttrKind.USE_CSS, SIZE, COLOR, FACE)),
 
-    FRAME(BlockType.OTHER, EndKind.NONE),
+    FOOTER(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)) {
+        @Override
+        public boolean accepts(HtmlTag t) {
+            switch (t) {
+                case HEADER: case FOOTER: case MAIN:
+                    return false;
+                default:
+                    return (t.blockType == BlockType.BLOCK) || (t.blockType == BlockType.INLINE);
+            }
+        }
+    },
 
-    FRAMESET(BlockType.OTHER, EndKind.REQUIRED),
+    FIGURE(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
 
-    H1(BlockType.BLOCK, EndKind.REQUIRED),
-    H2(BlockType.BLOCK, EndKind.REQUIRED),
-    H3(BlockType.BLOCK, EndKind.REQUIRED),
-    H4(BlockType.BLOCK, EndKind.REQUIRED),
-    H5(BlockType.BLOCK, EndKind.REQUIRED),
-    H6(BlockType.BLOCK, EndKind.REQUIRED),
+    FIGCAPTION(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED),
+
+    FRAME(HtmlVersion.HTML4, BlockType.OTHER, EndKind.NONE),
+
+    FRAMESET(HtmlVersion.HTML4, BlockType.OTHER, EndKind.REQUIRED),
+
+    H1(BlockType.BLOCK, EndKind.REQUIRED,
+            attrs(AttrKind.USE_CSS, ALIGN)),
+    H2(BlockType.BLOCK, EndKind.REQUIRED,
+            attrs(AttrKind.USE_CSS, ALIGN)),
+    H3(BlockType.BLOCK, EndKind.REQUIRED,
+            attrs(AttrKind.USE_CSS, ALIGN)),
+    H4(BlockType.BLOCK, EndKind.REQUIRED,
+            attrs(AttrKind.USE_CSS, ALIGN)),
+    H5(BlockType.BLOCK, EndKind.REQUIRED,
+            attrs(AttrKind.USE_CSS, ALIGN)),
+    H6(BlockType.BLOCK, EndKind.REQUIRED,
+            attrs(AttrKind.USE_CSS, ALIGN)),
 
     HEAD(BlockType.OTHER, EndKind.REQUIRED),
 
+    HEADER(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)) {
+        @Override
+        public boolean accepts(HtmlTag t) {
+            switch (t) {
+                case HEADER: case FOOTER: case MAIN:
+                    return false;
+                default:
+                    return (t.blockType == BlockType.BLOCK) || (t.blockType == BlockType.INLINE);
+            }
+        }
+    },
+
     HR(BlockType.BLOCK, EndKind.NONE,
-            attrs(AttrKind.OK, WIDTH)), // OK in 4.01; not allowed in 5
+            attrs(AttrKind.HTML4, WIDTH),
+            attrs(AttrKind.USE_CSS, ALIGN, NOSHADE, SIZE)),
 
     HTML(BlockType.OTHER, EndKind.REQUIRED),
 
     I(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
+    IFRAME(BlockType.OTHER, EndKind.REQUIRED),
+
     IMG(BlockType.INLINE, EndKind.NONE,
-            attrs(AttrKind.OK, SRC, ALT, HEIGHT, WIDTH),
+            attrs(AttrKind.ALL, SRC, ALT, HEIGHT, WIDTH),
+            attrs(AttrKind.HTML5, CROSSORIGIN),
             attrs(AttrKind.OBSOLETE, NAME),
             attrs(AttrKind.USE_CSS, ALIGN, HSPACE, VSPACE, BORDER)),
 
     INS(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST),
-            attrs(AttrKind.OK, Attr.CITE, Attr.DATETIME)),
+            attrs(AttrKind.ALL, Attr.CITE, Attr.DATETIME)),
 
     KBD(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
     LI(BlockType.LIST_ITEM, EndKind.OPTIONAL,
             EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
-            attrs(AttrKind.OK, VALUE)),
+            attrs(AttrKind.ALL, VALUE),
+            attrs(AttrKind.USE_CSS, TYPE)),
 
     LINK(BlockType.OTHER, EndKind.NONE),
 
+    MAIN(HtmlVersion.HTML5, BlockType.OTHER, EndKind.REQUIRED),
+
+    MARK(HtmlVersion.HTML5, BlockType.INLINE, EndKind.REQUIRED),
+
     MENU(BlockType.BLOCK, EndKind.REQUIRED) {
         @Override
         public boolean accepts(HtmlTag t) {
@@ -173,13 +243,18 @@
 
     META(BlockType.OTHER, EndKind.NONE),
 
-    NOFRAMES(BlockType.OTHER, EndKind.REQUIRED),
+    NAV(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
+
+    NOFRAMES(HtmlVersion.HTML4, BlockType.OTHER, EndKind.REQUIRED),
 
     NOSCRIPT(BlockType.BLOCK, EndKind.REQUIRED),
 
     OL(BlockType.BLOCK, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT),
-            attrs(AttrKind.OK, START, TYPE)) {
+            attrs(AttrKind.ALL, START, TYPE),
+            attrs(AttrKind.HTML5, REVERSED),
+            attrs(AttrKind.USE_CSS, COMPACT)) {
         @Override
         public boolean accepts(HtmlTag t) {
             return (t == LI);
@@ -191,7 +266,8 @@
             attrs(AttrKind.USE_CSS, ALIGN)),
 
     PRE(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT)) {
+            EnumSet.of(Flag.EXPECT_CONTENT),
+            attrs(AttrKind.USE_CSS, WIDTH)) {
         @Override
         public boolean accepts(HtmlTag t) {
             switch (t) {
@@ -214,13 +290,16 @@
 
     SCRIPT(BlockType.OTHER, EndKind.REQUIRED),
 
+    SECTION(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
+
     SMALL(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT)),
 
     SPAN(BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT)),
 
-    STRIKE(BlockType.INLINE, EndKind.REQUIRED,
+    STRIKE(HtmlVersion.HTML4, BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT)),
 
     STRONG(BlockType.INLINE, EndKind.REQUIRED,
@@ -234,13 +313,14 @@
 
     TABLE(BlockType.BLOCK, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT),
-            attrs(AttrKind.OK, SUMMARY, Attr.FRAME, RULES, BORDER,
-                CELLPADDING, CELLSPACING, WIDTH), // width OK in 4.01; not allowed in 5
+            attrs(AttrKind.ALL, BORDER),
+            attrs(AttrKind.HTML4, SUMMARY, CELLPADDING, CELLSPACING, Attr.FRAME, RULES, WIDTH),
             attrs(AttrKind.USE_CSS, ALIGN, BGCOLOR)) {
         @Override
         public boolean accepts(HtmlTag t) {
             switch (t) {
                 case CAPTION:
+                case COLGROUP:
                 case THEAD: case TBODY: case TFOOT:
                 case TR: // HTML 3.2
                     return true;
@@ -252,7 +332,8 @@
 
     TBODY(BlockType.TABLE_ITEM, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT),
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN)) {
+            attrs(AttrKind.ALL, VALIGN),
+            attrs(AttrKind.HTML4, ALIGN, CHAR, CHAROFF)) {
         @Override
         public boolean accepts(HtmlTag t) {
             return (t == TR);
@@ -261,12 +342,16 @@
 
     TD(BlockType.TABLE_ITEM, EndKind.OPTIONAL,
             EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
-            attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, Attr.ABBR, AXIS,
-                ALIGN, CHAR, CHAROFF, VALIGN),
+            attrs(AttrKind.ALL, COLSPAN, ROWSPAN, HEADERS, VALIGN),
+            attrs(AttrKind.HTML4, AXIS, Attr.ABBR, SCOPE, ALIGN, CHAR, CHAROFF),
             attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)),
 
+    TEMPLATE(HtmlVersion.HTML5, BlockType.BLOCK, EndKind.REQUIRED,
+            EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE)),
+
     TFOOT(BlockType.TABLE_ITEM, EndKind.REQUIRED,
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN)) {
+            attrs(AttrKind.ALL, VALIGN),
+            attrs(AttrKind.HTML4, ALIGN, CHAR, CHAROFF)) {
         @Override
         public boolean accepts(HtmlTag t) {
             return (t == TR);
@@ -275,22 +360,27 @@
 
     TH(BlockType.TABLE_ITEM, EndKind.OPTIONAL,
             EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
-            attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, Attr.ABBR, AXIS,
-                ALIGN, CHAR, CHAROFF, VALIGN),
+            attrs(AttrKind.ALL, COLSPAN, ROWSPAN, HEADERS, SCOPE, Attr.ABBR,
+                VALIGN),
+            attrs(AttrKind.HTML4, AXIS, ALIGN, CHAR, CHAROFF),
             attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)),
 
     THEAD(BlockType.TABLE_ITEM, EndKind.REQUIRED,
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN)) {
+            attrs(AttrKind.ALL, VALIGN),
+            attrs(AttrKind.HTML4, ALIGN, CHAR, CHAROFF)) {
         @Override
         public boolean accepts(HtmlTag t) {
             return (t == TR);
         }
     },
 
+    TIME(HtmlVersion.HTML5, BlockType.INLINE, EndKind.REQUIRED),
+
     TITLE(BlockType.OTHER, EndKind.REQUIRED),
 
     TR(BlockType.TABLE_ITEM, EndKind.OPTIONAL,
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN),
+            attrs(AttrKind.ALL, VALIGN),
+            attrs(AttrKind.HTML4, ALIGN, CHAR, CHAROFF),
             attrs(AttrKind.USE_CSS, BGCOLOR)) {
         @Override
         public boolean accepts(HtmlTag t) {
@@ -298,7 +388,7 @@
         }
     },
 
-    TT(BlockType.INLINE, EndKind.REQUIRED,
+    TT(HtmlVersion.HTML4, BlockType.INLINE, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
 
     U(BlockType.INLINE, EndKind.REQUIRED,
@@ -306,13 +396,15 @@
 
     UL(BlockType.BLOCK, EndKind.REQUIRED,
             EnumSet.of(Flag.EXPECT_CONTENT),
-            attrs(AttrKind.OK, COMPACT, TYPE)) { // OK in 4.01; not allowed in 5
+            attrs(AttrKind.HTML4, COMPACT, TYPE)) {
         @Override
         public boolean accepts(HtmlTag t) {
             return (t == LI);
         }
     },
 
+    WBR(HtmlVersion.HTML5, BlockType.INLINE, EndKind.REQUIRED),
+
     VAR(BlockType.INLINE, EndKind.REQUIRED);
 
     /**
@@ -345,34 +437,66 @@
     public static enum Attr {
         ABBR,
         ALIGN,
+        ALINK,
         ALT,
+        ARIA_ACTIVEDESCENDANT,
+        ARIA_CONTROLS,
+        ARIA_DESCRIBEDBY,
+        ARIA_EXPANDED,
+        ARIA_LABEL,
+        ARIA_LABELLEDBY,
+        ARIA_LEVEL,
+        ARIA_MULTISELECTABLE,
+        ARIA_OWNS,
+        ARIA_POSINSET,
+        ARIA_SETSIZE,
+        ARIA_READONLY,
+        ARIA_REQUIRED,
+        ARIA_SELECTED,
+        ARIA_SORT,
         AXIS,
+        BACKGROUND,
         BGCOLOR,
         BORDER,
         CELLSPACING,
         CELLPADDING,
         CHAR,
         CHAROFF,
+        CHARSET,
         CITE,
         CLEAR,
         CLASS,
         COLOR,
         COLSPAN,
         COMPACT,
+        COORDS,
+        CROSSORIGIN,
         DATETIME,
         FACE,
         FRAME,
+        FRAMEBORDER,
         HEADERS,
         HEIGHT,
         HREF,
         HSPACE,
         ID,
+        LINK,
+        LONGDESC,
+        MARGINHEIGHT,
+        MARGINWIDTH,
         NAME,
+        NOSHADE,
         NOWRAP,
+        PROFILE,
+        REV,
         REVERSED,
+        ROLE,
         ROWSPAN,
         RULES,
+        SCHEME,
         SCOPE,
+        SCROLLING,
+        SHAPE,
         SIZE,
         SPACE,
         SRC,
@@ -380,14 +504,23 @@
         STYLE,
         SUMMARY,
         TARGET,
+        TEXT,
         TYPE,
         VALIGN,
         VALUE,
+        VERSION,
+        VLINK,
         VSPACE,
         WIDTH;
 
+        private final String name;
+
+        Attr() {
+            name = StringUtils.toLowerCase(name().replace("_", "-"));
+        }
+
         public String getText() {
-            return StringUtils.toLowerCase(name());
+            return name;
         }
 
         static final Map<String,Attr> index = new HashMap<>();
@@ -399,10 +532,12 @@
     }
 
     public static enum AttrKind {
+        HTML4,
+        HTML5,
         INVALID,
         OBSOLETE,
         USE_CSS,
-        OK
+        ALL
     }
 
     // This class exists to avoid warnings from using parameterized vararg type
@@ -415,25 +550,52 @@
     }
 
 
+    public final HtmlVersion allowedVersion;
     public final BlockType blockType;
     public final EndKind endKind;
     public final Set<Flag> flags;
     private final Map<Attr,AttrKind> attrs;
 
     HtmlTag(BlockType blockType, EndKind endKind, AttrMap... attrMaps) {
-        this(blockType, endKind, Collections.<Flag>emptySet(), attrMaps);
+        this(HtmlVersion.ALL, blockType, endKind, Collections.<Flag>emptySet(), attrMaps);
+    }
+
+    HtmlTag(HtmlVersion allowedVersion, BlockType blockType, EndKind endKind, AttrMap... attrMaps) {
+        this(allowedVersion, blockType, endKind, Collections.<Flag>emptySet(), attrMaps);
     }
 
     HtmlTag(BlockType blockType, EndKind endKind, Set<Flag> flags, AttrMap... attrMaps) {
+        this(HtmlVersion.ALL, blockType, endKind, flags, attrMaps);
+    }
+
+    HtmlTag(HtmlVersion allowedVersion, BlockType blockType, EndKind endKind, Set<Flag> flags, AttrMap... attrMaps) {
+        this.allowedVersion = allowedVersion;
         this.blockType = blockType;
         this.endKind = endKind;
         this.flags = flags;
         this.attrs = new EnumMap<>(Attr.class);
         for (Map<Attr,AttrKind> m: attrMaps)
             this.attrs.putAll(m);
-        attrs.put(Attr.CLASS, AttrKind.OK);
-        attrs.put(Attr.ID, AttrKind.OK);
-        attrs.put(Attr.STYLE, AttrKind.OK);
+        attrs.put(Attr.CLASS, AttrKind.ALL);
+        attrs.put(Attr.ID, AttrKind.ALL);
+        attrs.put(Attr.STYLE, AttrKind.ALL);
+        attrs.put(Attr.ROLE, AttrKind.HTML5);
+        // for now, assume that all ARIA attributes are allowed on all tags.
+        attrs.put(Attr.ARIA_ACTIVEDESCENDANT, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_CONTROLS, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_DESCRIBEDBY, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_EXPANDED, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_LABEL, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_LABELLEDBY, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_LEVEL, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_MULTISELECTABLE, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_OWNS, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_POSINSET, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_READONLY, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_REQUIRED, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_SELECTED, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_SETSIZE, AttrKind.HTML5);
+        attrs.put(Attr.ARIA_SORT, AttrKind.HTML5);
     }
 
     public boolean accepts(HtmlTag t) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/HtmlVersion.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.tools.doclint;
+
+/**
+ * Enum representing HTML version of the documentation comment.
+ *
+ * @author Bhavesh Patel
+ */
+public enum HtmlVersion {
+
+    HTML4,
+    HTML5,
+    ALL;
+
+    public static HtmlVersion getHtmlVersion(String argsVersion) {
+        switch (argsVersion) {
+            case "html4":
+                return HtmlVersion.HTML4;
+            case "html5":
+                return HtmlVersion.HTML5;
+            default:
+                return null;
+        }
+    }
+}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint.properties	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint.properties	Mon Apr 27 09:17:39 2015 -0700
@@ -27,9 +27,12 @@
 dc.anchor.value.missing = no value given for anchor
 dc.attr.lacks.value = attribute lacks value
 dc.attr.not.number = attribute value is not a number
+dc.attr.not.supported.html4 = attribute not supported in HTML4: {0}
+dc.attr.not.supported.html5 = attribute not supported in HTML5: {0}
 dc.attr.obsolete = attribute obsolete: {0}
 dc.attr.obsolete.use.css = attribute obsolete, use CSS instead: {0}
 dc.attr.repeated = repeated attribute: {0}
+dc.attr.table.border.html5 = attribute border for table only accepts "" or "1", use CSS instead: {0}
 dc.attr.unknown = unknown attribute: {0}
 dc.bad.option = bad option: {0}
 dc.bad.value.for.option = bad value for option: {0} {1}
@@ -63,9 +66,11 @@
 dc.tag.not.allowed.inline.other = block element not allowed here: {0}
 dc.tag.not.closed= element not closed: {0}
 dc.tag.p.in.pre= unexpected use of <p> inside <pre> element
+dc.tag.requires.heading = heading not found for </{0}>
 dc.tag.self.closing = self-closing element not allowed
 dc.tag.start.unmatched = end tag missing: </{0}>
 dc.tag.unknown = unknown tag: {0}
+dc.tag.not.supported = tag not supported in the generated HTML version: {0}
 dc.text.not.allowed = text not allowed in <{0}> element
 dc.type.arg.not.allowed = type arguments not allowed here
 dc.unexpected.comment=documentation comment not expected here
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1293,9 +1293,21 @@
         @DefinedBy(Api.LANGUAGE_MODEL)
         public String toString() {
             StringBuilder sb = new StringBuilder();
-            sb.append(elemtype);
-            appendAnnotationsString(sb, true);
-            sb.append("[]");
+
+            // First append root component type
+            Type t = elemtype;
+            while (t.getKind() == TypeKind.ARRAY)
+                t = ((ArrayType) t).getComponentType();
+            sb.append(t);
+
+            // then append @Anno[] @Anno[] ... @Anno[]
+            t = this;
+            do {
+                t.appendAnnotationsString(sb, true);
+                sb.append("[]");
+                t = ((ArrayType) t).getComponentType();
+            } while (t.getKind() == TypeKind.ARRAY);
+
             return sb.toString();
         }
 
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java	Mon Apr 27 09:17:39 2015 -0700
@@ -31,6 +31,7 @@
 import com.sun.tools.javac.code.Scope.WriteableScope;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.TypeMetadata.Entry.Kind;
+import com.sun.tools.javac.resources.CompilerProperties.Errors;
 import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.JCTree.*;
 import com.sun.tools.javac.tree.TreeInfo;
@@ -778,9 +779,10 @@
                 Attribute.Compound c = new Attribute.Compound(targetContainerType, List.of(p));
                 JCAnnotation annoTree = m.Annotation(c);
 
-                if (!chk.annotationApplicable(annoTree, on))
-                    log.error(annoTree.pos(), "invalid.repeatable.annotation.incompatible.target",
-                            targetContainerType, origAnnoType);
+                if (!chk.annotationApplicable(annoTree, on)) {
+                    log.error(annoTree.pos(),
+                              Errors.InvalidRepeatableAnnotationNotApplicable(targetContainerType, on));
+                }
 
                 if (!chk.validateAnnotationDeferErrors(annoTree))
                     log.error(annoTree.pos(), "duplicate.annotation.invalid.repeated", origAnnoType);
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Mon Apr 27 09:17:39 2015 -0700
@@ -4657,7 +4657,7 @@
             for (JCAnnotation ai : annotations) {
                 if (!ai.type.isErroneous() &&
                         typeAnnotations.annotationTargetType(ai.attribute, sym) == TypeAnnotations.AnnotationType.DECLARATION) {
-                    log.error(ai.pos(), "annotation.type.not.applicable");
+                    log.error(ai.pos(), Errors.AnnotationTypeNotApplicableToType(ai.type));
                 }
             }
         }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Mon Apr 27 09:17:39 2015 -0700
@@ -2783,7 +2783,7 @@
         if (a.hasTag(TYPE_ANNOTATION) &&
                 !a.annotationType.type.isErroneous() &&
                 !isTypeAnnotation(a, isTypeParameter)) {
-            log.error(a.pos(), "annotation.type.not.applicable");
+            log.error(a.pos(), Errors.AnnotationTypeNotApplicableToType(a.type));
         }
     }
 
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -810,7 +810,9 @@
                 Infer infer = inferenceContext.infer();
                 for (Type b1 : uv.getBounds(InferenceBound.UPPER)) {
                     for (Type b2 : uv.getBounds(InferenceBound.LOWER)) {
-                        isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn , infer);
+                        if (!isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn , infer)) {
+                            infer.reportBoundError(uv, BoundErrorKind.BAD_UPPER_LOWER);
+                        }
                     }
                 }
             }
@@ -831,7 +833,9 @@
                 Infer infer = inferenceContext.infer();
                 for (Type b1 : uv.getBounds(InferenceBound.UPPER)) {
                     for (Type b2 : uv.getBounds(InferenceBound.EQ)) {
-                        isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn, infer);
+                        if (!isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn, infer)) {
+                            infer.reportBoundError(uv, BoundErrorKind.BAD_UPPER_EQUAL);
+                        }
                     }
                 }
             }
@@ -852,7 +856,9 @@
                 Infer infer = inferenceContext.infer();
                 for (Type b1 : uv.getBounds(InferenceBound.EQ)) {
                     for (Type b2 : uv.getBounds(InferenceBound.LOWER)) {
-                        isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn, infer);
+                        if (!isSubtype(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), warn, infer)) {
+                            infer.reportBoundError(uv, BoundErrorKind.BAD_EQUAL_LOWER);
+                        }
                     }
                 }
             }
@@ -926,7 +932,9 @@
                 for (Type b1 : uv.getBounds(InferenceBound.EQ)) {
                     for (Type b2 : uv.getBounds(InferenceBound.EQ)) {
                         if (b1 != b2) {
-                            isSameType(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), infer);
+                            if (!isSameType(inferenceContext.asUndetVar(b2), inferenceContext.asUndetVar(b1), infer)) {
+                                infer.reportBoundError(uv, BoundErrorKind.BAD_EQ);
+                            }
                         }
                     }
                 }
@@ -1235,6 +1243,46 @@
             }
         },
         /**
+         * The (uninstantiated) inference variable has incompatible equality constraints.
+         */
+        BAD_EQ() {
+            @Override
+            InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) {
+                return ex.setMessage("incompatible.eq.bounds", uv.qtype,
+                        uv.getBounds(InferenceBound.EQ));
+            }
+        },
+        /**
+         * The (uninstantiated) inference variable has incompatible upper lower bounds.
+         */
+        BAD_UPPER_LOWER() {
+            @Override
+            InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) {
+                return ex.setMessage("incompatible.upper.lower.bounds", uv.qtype,
+                        uv.getBounds(InferenceBound.UPPER), uv.getBounds(InferenceBound.LOWER));
+            }
+        },
+        /**
+         * The (uninstantiated) inference variable has incompatible upper equal bounds.
+         */
+        BAD_UPPER_EQUAL() {
+            @Override
+            InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) {
+                return ex.setMessage("incompatible.upper.eq.bounds", uv.qtype,
+                        uv.getBounds(InferenceBound.UPPER), uv.getBounds(InferenceBound.EQ));
+            }
+        },
+        /**
+         * The (uninstantiated) inference variable has incompatible upper equal bounds.
+         */
+        BAD_EQUAL_LOWER() {
+            @Override
+            InapplicableMethodException setMessage(InferenceException ex, UndetVar uv) {
+                return ex.setMessage("incompatible.eq.lower.bounds", uv.qtype,
+                        uv.getBounds(InferenceBound.EQ), uv.getBounds(InferenceBound.LOWER));
+            }
+        },
+        /**
          * An equality constraint is not compatible with an upper bound.
          */
         BAD_EQ_UPPER() {
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Mon Apr 27 09:17:39 2015 -0700
@@ -833,20 +833,19 @@
                                     List<Type> formals,
                                     Warner warn) {
             super.argumentsAcceptable(env, deferredAttrContext, argtypes, formals, warn);
-            //should we expand formals?
+            // should we check varargs element type accessibility?
             if (deferredAttrContext.phase.isVarargsRequired()) {
-                Type typeToCheck = null;
-                if (!checkVarargsAccessAfterResolution) {
-                    typeToCheck = types.elemtype(formals.last());
-                } else if (deferredAttrContext.mode == AttrMode.CHECK) {
-                    typeToCheck = types.erasure(types.elemtype(formals.last()));
-                }
-                if (typeToCheck != null) {
-                    varargsAccessible(env, typeToCheck, deferredAttrContext.inferenceContext);
+                if (deferredAttrContext.mode == AttrMode.CHECK || !checkVarargsAccessAfterResolution) {
+                    varargsAccessible(env, types.elemtype(formals.last()), deferredAttrContext.inferenceContext);
                 }
             }
         }
 
+        /**
+         * Test that the runtime array element type corresponding to 't' is accessible.  't' should be the
+         * varargs element type of either the method invocation type signature (after inference completes)
+         * or the method declaration signature (before inference completes).
+         */
         private void varargsAccessible(final Env<AttrContext> env, final Type t, final InferenceContext inferenceContext) {
             if (inferenceContext.free(t)) {
                 inferenceContext.addFreeTypeListener(List.of(t), new FreeTypeListener() {
@@ -856,7 +855,7 @@
                     }
                 });
             } else {
-                if (!isAccessible(env, t)) {
+                if (!isAccessible(env, types.erasure(t))) {
                     Symbol location = env.enclClass.sym;
                     reportMC(env.tree, MethodCheckDiag.INACCESSIBLE_VARARGS, inferenceContext, t, Kinds.kindName(location), location);
                 }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -222,6 +222,11 @@
         if (args.isEmpty())
             return Result.OK;
 
+        // init Depeendencies
+        if (options.isSet("completionDeps")) {
+            Dependencies.GraphDependencies.preRegister(context);
+        }
+
         // init plugins
         Set<List<String>> pluginOpts = args.getPluginOpts();
         if (!pluginOpts.isEmpty()) {
@@ -229,6 +234,9 @@
             t.initPlugins(pluginOpts);
         }
 
+        // init JavaCompiler
+        JavaCompiler comp = JavaCompiler.instance(context);
+
         // init doclint
         List<String> docLintOpts = args.getDocLintOpts();
         if (!docLintOpts.isEmpty()) {
@@ -236,13 +244,6 @@
             t.initDocLint(docLintOpts);
         }
 
-        // init Depeendencies
-        if (options.isSet("completionDeps")) {
-            Dependencies.GraphDependencies.preRegister(context);
-        }
-
-        // init JavaCompiler
-        JavaCompiler comp = JavaCompiler.instance(context);
         if (options.get(Option.XSTDOUT) != null) {
             // Stdout reassigned - ask compiler to close it when it is done
             comp.closeables = comp.closeables.prepend(log.getWriter(WriterKind.NOTICE));
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Mon Apr 27 09:17:39 2015 -0700
@@ -123,6 +123,10 @@
 compiler.err.annotation.type.not.applicable=\
     annotation type not applicable to this kind of declaration
 
+# 0: type
+compiler.err.annotation.type.not.applicable.to.type=\
+    annotation @{0} not applicable in this type context
+
 compiler.err.annotation.value.must.be.annotation=\
     annotation value must be an annotation
 
@@ -406,6 +410,10 @@
 compiler.err.invalid.repeatable.annotation.repeated.and.container.present=\
     container {0} must not be present at the same time as the element it contains
 
+# 0: type, 1: symbol
+compiler.err.invalid.repeatable.annotation.not.applicable=\
+    container {0} is not applicable to element {1}
+
 # 0: name
 compiler.err.duplicate.class=\
     duplicate class: {0}
@@ -1953,6 +1961,10 @@
 compiler.misc.incompatible.upper.bounds=\
     inference variable {0} has incompatible upper bounds {1}
 
+# 0: type, 1: list of type
+compiler.misc.incompatible.eq.bounds=\
+    inference variable {0} has incompatible equality constraints {1}
+
 # 0: type, 1: list of type, 2: list of type
 compiler.misc.incompatible.eq.upper.bounds=\
     inference variable {0} has incompatible bounds\n\
@@ -1960,6 +1972,24 @@
     upper bounds: {2}
 
 # 0: type, 1: list of type, 2: list of type
+compiler.misc.incompatible.upper.lower.bounds=\
+    inference variable {0} has incompatible bounds\n\
+    upper bounds: {1}\n\
+    lower bounds: {2}
+
+# 0: type, 1: list of type, 2: list of type
+compiler.misc.incompatible.upper.eq.bounds=\
+    inference variable {0} has incompatible bounds\n\
+    upper bounds: {1}\n\
+    equality constraints: {2}
+
+# 0: type, 1: list of type, 2: list of type
+compiler.misc.incompatible.eq.lower.bounds=\
+    inference variable {0} has incompatible bounds\n\
+    equality constraints: {1}\n\
+    lower bounds: {2}
+
+# 0: type, 1: list of type, 2: list of type
 compiler.misc.incompatible.eq.lower.bounds=\
     inference variable {0} has incompatible bounds\n\
     equality constraints: {1}\n\
@@ -2564,6 +2594,7 @@
 compiler.misc.where.description.typevar.1=\
     where {0} are type-variables:
 
+# 0: set of type
 compiler.misc.where.description.intersection.1=\
     where {0} are intersection types:
 
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Mon Apr 27 09:17:39 2015 -0700
@@ -316,8 +316,8 @@
 
 javac.msg.bug=\
 An exception has occurred in the compiler ({0}). \
-Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport)  \
-after checking the Bug Parade for duplicates. \
+Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) \
+after checking the database for duplicates. \
 Include your program and the following diagnostic in your report.  Thank you.
 
 javac.msg.io=\
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -415,8 +415,10 @@
     protected void addDeprecatedAPI(List<Doc> deprmembers, String headingKey,
             String tableSummary, String[] tableHeader, Content contentTree) {
         if (deprmembers.size() > 0) {
-            Content table = HtmlTree.TABLE(HtmlStyle.deprecatedSummary, 0, 3, 0, tableSummary,
-                writer.getTableCaption(configuration.getResource(headingKey)));
+            Content caption = writer.getTableCaption(configuration.getResource(headingKey));
+            Content table = (configuration.isOutputHtml5())
+                    ? HtmlTree.TABLE(HtmlStyle.deprecatedSummary, caption)
+                    : HtmlTree.TABLE(HtmlStyle.deprecatedSummary, tableSummary, caption);
             table.addContent(writer.getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             for (int i = 0; i < deprmembers.size(); i++) {
@@ -455,8 +457,10 @@
         List<? extends ProgramElementDoc> members = mems;
         boolean printedUseTableHeader = false;
         if (members.size() > 0) {
-            Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, tableSummary,
-                    writer.getTableCaption(heading));
+            Content caption = writer.getTableCaption(heading);
+            Content table = (configuration.isOutputHtml5())
+                    ? HtmlTree.TABLE(HtmlStyle.useSummary, caption)
+                    : HtmlTree.TABLE(HtmlStyle.useSummary, tableSummary, caption);
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             Iterator<? extends ProgramElementDoc> it = members.iterator();
             for (int i = 0; it.hasNext(); i++) {
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -149,13 +149,17 @@
     protected void addIndexContents(Collection<PackageDoc> packages, String text,
             String tableSummary, Content body) {
         if (!packages.isEmpty()) {
-            HtmlTree div = new HtmlTree(HtmlTag.DIV);
-            div.addStyle(HtmlStyle.indexHeader);
-            addAllClassesLink(div);
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV))
+                    ? HtmlTree.NAV()
+                    : new HtmlTree(HtmlTag.DIV);
+            htmlTree.addStyle(HtmlStyle.indexNav);
+            HtmlTree ul = new HtmlTree(HtmlTag.UL);
+            addAllClassesLink(ul);
             if (configuration.showProfiles) {
-                addAllProfilesLink(div);
+                addAllProfilesLink(ul);
             }
-            body.addContent(div);
+            htmlTree.addContent(ul);
+            body.addContent(htmlTree);
             if (configuration.showProfiles && configuration.profilePackages.size() > 0) {
                 Content profileSummary = configuration.getResource("doclet.Profiles");
                 addProfilesList(profileSummary, body);
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractProfileIndexWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractProfileIndexWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -194,11 +194,15 @@
     protected void addIndexContents(Profiles profiles, String text,
             String tableSummary, Content body) {
         if (profiles.getProfileCount() > 0) {
-            HtmlTree div = new HtmlTree(HtmlTag.DIV);
-            div.addStyle(HtmlStyle.indexHeader);
-            addAllClassesLink(div);
-            addAllPackagesLink(div);
-            body.addContent(div);
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV))
+                    ? HtmlTree.NAV()
+                    : new HtmlTree(HtmlTag.DIV);
+            htmlTree.addStyle(HtmlStyle.indexNav);
+            HtmlTree ul = new HtmlTree(HtmlTag.UL);
+            addAllClassesLink(ul);
+            addAllPackagesLink(ul);
+            htmlTree.addContent(ul);
+            body.addContent(htmlTree);
             addProfilesList(profiles, text, tableSummary, body);
         }
     }
@@ -215,12 +219,16 @@
      */
     protected void addProfilePackagesIndexContents(Profiles profiles, String text,
             String tableSummary, Content body, String profileName) {
-        HtmlTree div = new HtmlTree(HtmlTag.DIV);
-        div.addStyle(HtmlStyle.indexHeader);
-        addAllClassesLink(div);
-        addAllPackagesLink(div);
-        addAllProfilesLink(div);
-        body.addContent(div);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV))
+                ? HtmlTree.NAV()
+                : new HtmlTree(HtmlTag.DIV);
+        htmlTree.addStyle(HtmlStyle.indexNav);
+        HtmlTree ul = new HtmlTree(HtmlTag.UL);
+        addAllClassesLink(ul);
+        addAllPackagesLink(ul);
+        addAllProfilesLink(ul);
+        htmlTree.addContent(ul);
+        body.addContent(htmlTree);
         addProfilePackagesList(profiles, text, tableSummary, body, profileName);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,8 +53,6 @@
      */
     protected final ClassTree classtree;
 
-    private static final String LI_CIRCLE  = "circle";
-
     /**
      * Constructor initializes classtree variable. This constructor will be used
      * while generating global tree file "overview-tree.html".
@@ -88,7 +86,7 @@
             Content ul = new HtmlTree(HtmlTag.UL);
             for (ClassDoc local : list) {
                 HtmlTree li = new HtmlTree(HtmlTag.LI);
-                li.addAttr(HtmlAttr.TYPE, LI_CIRCLE);
+                li.addStyle(HtmlStyle.circle);
                 addPartialInfo(local, li);
                 addExtendsImplements(parent, local, li);
                 addLevelInfo(local, classtree.subs(local, isEnum),
@@ -108,14 +106,24 @@
      * @param heading heading for the tree
      * @param div the content tree to which the tree will be added
      */
-    protected void addTree(SortedSet<ClassDoc> list, String heading, Content div) {
+    protected void addTree(SortedSet<ClassDoc> list, String heading, HtmlTree div) {
         if (!list.isEmpty()) {
             ClassDoc firstClassDoc = list.first();
             Content headingContent = getResource(heading);
-            div.addContent(HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, true,
-                    headingContent));
+            Content sectionHeading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, true,
+                    headingContent);
+            HtmlTree htmlTree;
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                htmlTree = HtmlTree.SECTION(sectionHeading);
+            } else {
+                div.addContent(sectionHeading);
+                htmlTree = div;
+            }
             addLevelInfo(!firstClassDoc.isInterface()? firstClassDoc : null,
-                    list, list == classtree.baseEnums(), div);
+                    list, list == classtree.baseEnums(), htmlTree);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                div.addContent(htmlTree);
+            }
         }
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -119,8 +119,10 @@
         Content ul = new HtmlTree(HtmlTag.UL);
         // Generate the class links and add it to the tdFont tree.
         addAllClasses(ul, wantFrames);
-        Content div = HtmlTree.DIV(HtmlStyle.indexContainer, ul);
-        body.addContent(div);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN(HtmlStyle.indexContainer, ul)
+                : HtmlTree.DIV(HtmlStyle.indexContainer, ul);
+        body.addContent(htmlTree);
         printHtmlDocument(null, false, body);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,6 +77,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public void addAnnotationFieldDetailsMarker(Content memberDetails) {
         memberDetails.addContent(HtmlConstants.START_OF_ANNOTATION_TYPE_FIELD_DETAILS);
     }
@@ -156,6 +163,10 @@
      * {@inheritDoc}
      */
     public Content getAnnotationDetails(Content annotationDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(annotationDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(annotationDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,6 +72,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public void addDefaultValueInfo(MemberDoc member, Content annotationDocTree) {
         if (((AnnotationTypeElementDoc) member).defaultValue() != null) {
             Content dt = HtmlTree.DT(writer.getResource("doclet.Default"));
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public void addAnnotationDetailsMarker(Content memberDetails) {
         memberDetails.addContent(HtmlConstants.START_OF_ANNOTATION_TYPE_DETAILS);
     }
@@ -158,6 +165,10 @@
      * {@inheritDoc}
      */
     public Content getAnnotationDetails(Content annotationDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(annotationDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(annotationDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -151,9 +151,15 @@
         String pkgname = (annotationType.containingPackage() != null)?
             annotationType.containingPackage().name(): "";
         String clname = annotationType.name();
-        Content bodyTree = getBody(true, getWindowTitle(clname));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(clname));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         bodyTree.addContent(HtmlConstants.START_OF_CLASS_DATA);
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.header);
@@ -169,7 +175,11 @@
                 HtmlStyle.title, headerContent);
         heading.addContent(getTypeParameterLinks(linkInfo));
         div.addContent(heading);
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
@@ -185,8 +195,14 @@
      */
     public void addFooter(Content contentTree) {
         contentTree.addContent(HtmlConstants.END_OF_CLASS_DATA);
-        addNavLinks(false, contentTree);
-        addBottom(contentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : contentTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            contentTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -91,6 +91,11 @@
     final String constructorUseTableSummary;
 
     /**
+     * The HTML tree for main tag.
+     */
+    protected HtmlTree mainTree = HtmlTree.MAIN();
+
+    /**
      * Constructor.
      *
      * @param filename the file to be generated.
@@ -222,7 +227,7 @@
      * Generate the class use list.
      */
     protected void generateClassUseFile() throws IOException {
-        Content body = getClassUseHeader();
+        HtmlTree body = getClassUseHeader();
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.classUseContainer);
         if (pkgSet.size() > 0) {
@@ -231,9 +236,20 @@
             div.addContent(getResource("doclet.ClassUse_No.usage.of.0",
                     classdoc.qualifiedName()));
         }
-        body.addContent(div);
-        addNavLinks(false, body);
-        addBottom(body);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+            body.addContent(mainTree);
+        } else {
+            body.addContent(div);
+        }
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : body;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
         printHtmlDocument(null, true, body);
     }
 
@@ -259,11 +275,12 @@
      * @param contentTree the content tree to which the packages list will be added
      */
     protected void addPackageList(Content contentTree) throws IOException {
-        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
-                getTableCaption(configuration.getResource(
+        Content caption = getTableCaption(configuration.getResource(
                 "doclet.ClassUse_Packages.that.use.0",
-                getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc
-                )))));
+                getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc))));
+        Content table = (configuration.isOutputHtml5())
+                ? HtmlTree.TABLE(HtmlStyle.useSummary, caption)
+                : HtmlTree.TABLE(HtmlStyle.useSummary, useTableSummary, caption);
         table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
         Content tbody = new HtmlTree(HtmlTag.TBODY);
         Iterator<PackageDoc> it = pkgSet.iterator();
@@ -294,11 +311,13 @@
                 pkgToPackageAnnotations.isEmpty()) {
             return;
         }
-        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
-                getTableCaption(configuration.getResource(
+        Content caption = getTableCaption(configuration.getResource(
                 "doclet.ClassUse_PackageAnnotation",
                 getLink(new LinkInfoImpl(configuration,
-                        LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc)))));
+                                LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc))));
+        Content table = (configuration.isOutputHtml5())
+                ? HtmlTree.TABLE(HtmlStyle.useSummary, caption)
+                : HtmlTree.TABLE(HtmlStyle.useSummary, useTableSummary, caption);
         table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
         Content tbody = new HtmlTree(HtmlTag.TBODY);
         Iterator<PackageDoc> it = pkgToPackageAnnotations.iterator();
@@ -333,15 +352,22 @@
         HtmlTree ul = new HtmlTree(HtmlTag.UL);
         ul.addStyle(HtmlStyle.blockList);
         for (PackageDoc pkg : pkgSet) {
-            Content li = HtmlTree.LI(HtmlStyle.blockList, getMarkerAnchor(getPackageAnchorName(pkg)));
+            Content markerAnchor = getMarkerAnchor(getPackageAnchorName(pkg));
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(markerAnchor)
+                    : HtmlTree.LI(HtmlStyle.blockList, markerAnchor);
             Content link = getResource("doclet.ClassUse_Uses.of.0.in.1",
                                        getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER,
                                                                 classdoc)),
                                        getPackageLink(pkg, utils.getPackageName(pkg)));
             Content heading = HtmlTree.HEADING(HtmlConstants.SUMMARY_HEADING, link);
-            li.addContent(heading);
-            addClassUse(pkg, li);
-            ul.addContent(li);
+            htmlTree.addContent(heading);
+            addClassUse(pkg, htmlTree);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
         Content li = HtmlTree.LI(HtmlStyle.blockList, ul);
         contentTree.addContent(li);
@@ -443,15 +469,21 @@
      *
      * @return a content tree representing the class use header
      */
-    protected Content getClassUseHeader() {
+    protected HtmlTree getClassUseHeader() {
         String cltype = configuration.getText(classdoc.isInterface()?
             "doclet.Interface":"doclet.Class");
         String clname = classdoc.qualifiedName();
         String title = configuration.getText("doclet.Window_ClassUse_Header",
                 cltype, clname);
-        Content bodyTree = getBody(true, getWindowTitle(title));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         ContentBuilder headContent = new ContentBuilder();
         headContent.addContent(getResource("doclet.ClassUse_Title", cltype));
         headContent.addContent(new HtmlTree(HtmlTag.BR));
@@ -459,7 +491,11 @@
         Content heading = HtmlTree.HEADING(HtmlConstants.CLASS_PAGE_HEADING,
                 true, HtmlStyle.title, headContent);
         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@
 import com.sun.tools.doclets.internal.toolkit.builders.*;
 import com.sun.tools.doclets.internal.toolkit.taglets.*;
 import com.sun.tools.doclets.internal.toolkit.util.*;
+
 import java.io.IOException;
 
 /**
@@ -160,9 +161,15 @@
         String pkgname = (classDoc.containingPackage() != null)?
             classDoc.containingPackage().name(): "";
         String clname = classDoc.name();
-        Content bodyTree = getBody(true, getWindowTitle(clname));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(clname));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         bodyTree.addContent(HtmlConstants.START_OF_CLASS_DATA);
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.header);
@@ -194,7 +201,11 @@
                 HtmlStyle.title, headerContent);
         heading.addContent(getTypeParameterLinks(linkInfo));
         div.addContent(heading);
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
@@ -210,8 +221,14 @@
      */
     public void addFooter(Content contentTree) {
         contentTree.addContent(HtmlConstants.END_OF_CLASS_DATA);
-        addNavLinks(false, contentTree);
-        addBottom(contentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : contentTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            contentTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
 import javax.tools.JavaFileManager;
 
 import com.sun.javadoc.*;
-import com.sun.tools.doclets.formats.html.markup.ContentBuilder;
+import com.sun.tools.doclets.formats.html.markup.*;
 import com.sun.tools.doclets.internal.toolkit.*;
 import com.sun.tools.doclets.internal.toolkit.util.*;
 import com.sun.tools.doclint.DocLint;
@@ -176,6 +176,11 @@
     public boolean createoverview = false;
 
     /**
+     * This is the HTML version of the generated pages. HTML 4.01 is the default output version.
+     */
+    public HtmlVersion htmlVersion = HtmlVersion.HTML4;
+
+    /**
      * Collected set of doclint options
      */
     public Set<String> doclintOpts = new LinkedHashSet<>();
@@ -279,6 +284,10 @@
                 nooverview = true;
             } else if (opt.equals("-overview")) {
                 overview = true;
+            } else if (opt.equals("-html4")) {
+                htmlVersion = HtmlVersion.HTML4;
+            } else if (opt.equals("-html5")) {
+                htmlVersion = HtmlVersion.HTML5;
             } else if (opt.equals("-xdoclint")) {
                 doclintOpts.add(null);
             } else if (opt.startsWith("-xdoclint:")) {
@@ -300,7 +309,8 @@
         setTopFile(root);
 
         if (root instanceof RootDocImpl) {
-            ((RootDocImpl) root).initDocLint(doclintOpts, tagletManager.getCustomTagNames());
+            ((RootDocImpl) root).initDocLint(doclintOpts, tagletManager.getCustomTagNames(),
+                    StringUtils.toLowerCase(htmlVersion.name()));
         }
     }
 
@@ -336,6 +346,8 @@
             option.equals("-use") ||
             option.equals("-nonavbar") ||
             option.equals("-nooverview") ||
+            option.equals("-html4") ||
+            option.equals("-html5") ||
             option.equals("-xdoclint") ||
             option.startsWith("-xdoclint:")) {
             return 1;
@@ -471,6 +483,20 @@
     }
 
     /**
+     * Return true if the generated output is HTML5.
+     */
+    public boolean isOutputHtml5() {
+        return htmlVersion == HtmlVersion.HTML5;
+    }
+
+    /**
+     * Return true if the tag is allowed for this specific version of HTML.
+     */
+    public boolean allowTag(HtmlTag htmlTag) {
+        return htmlTag.allowTag(this.htmlVersion);
+    }
+
+    /**
      * {@inheritDoc}
      */
     @Override
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,16 @@
     private final String[] constantsTableHeader;
 
     /**
+     * The HTML tree for main tag.
+     */
+    private HtmlTree mainTree = HtmlTree.MAIN();
+
+    /**
+     * The HTML tree for constant values summary.
+     */
+    private HtmlTree summaryTree;
+
+    /**
      * Construct a ConstantsSummaryWriter.
      * @param configuration the configuration used in this run
      *        of the standard doclet.
@@ -85,9 +95,15 @@
      */
     public Content getHeader() {
         String label = configuration.getText("doclet.Constants_Summary");
-        Content bodyTree = getBody(true, getWindowTitle(label));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(label));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         return bodyTree;
     }
 
@@ -123,7 +139,7 @@
     /**
      * {@inheritDoc}
      */
-    public Content getContentsList(Content contentListTree) {
+    public void addContentsList(Content contentTree, Content contentListTree) {
         Content titleContent = getResource(
                 "doclet.Constants_Summary");
         Content pHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
@@ -131,10 +147,18 @@
         Content div = HtmlTree.DIV(HtmlStyle.header, pHeading);
         Content headingContent = getResource(
                 "doclet.Contents");
-        div.addContent(HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, true,
-                headingContent));
-        div.addContent(contentListTree);
-        return div;
+        Content heading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, true,
+                headingContent);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree section = HtmlTree.SECTION(heading);
+            section.addContent(contentListTree);
+            div.addContent(section);
+            mainTree.addContent(div);
+        } else {
+            div.addContent(heading);
+            div.addContent(contentListTree);
+            contentTree.addContent(div);
+        }
     }
 
     /**
@@ -149,9 +173,11 @@
     /**
      * {@inheritDoc}
      */
-    public void addPackageName(PackageDoc pkg, String parsedPackageName,
-            Content summariesTree) {
+    public void addPackageName(String parsedPackageName, Content summariesTree, boolean first) {
         Content pkgNameContent;
+        if (!first && configuration.allowTag(HtmlTag.SECTION)) {
+            summariesTree.addContent(summaryTree);
+        }
         if (parsedPackageName.length() == 0) {
             summariesTree.addContent(getMarkerAnchor(
                     SectionName.UNNAMED_PACKAGE_ANCHOR));
@@ -165,7 +191,11 @@
         Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true,
                 pkgNameContent);
         heading.addContent(headingContent);
-        summariesTree.addContent(heading);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            summaryTree = HtmlTree.SECTION(heading);
+        } else {
+            summariesTree.addContent(heading);
+        }
     }
 
     /**
@@ -178,6 +208,17 @@
     }
 
     /**
+     * {@inheritDoc}
+     */
+    public void addClassConstant(Content summariesTree, Content classConstantTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            summaryTree.addContent(classConstantTree);
+        } else {
+            summariesTree.addContent(classConstantTree);
+        }
+    }
+
+    /**
      * Get the table caption and header for the constant summary table
      *
      * @param cd classdoc to be documented
@@ -208,8 +249,10 @@
      * @return the table caption and header
      */
     protected Content getClassName(Content classStr) {
-        Content table = HtmlTree.TABLE(HtmlStyle.constantsSummary, 0, 3, 0, constantsTableSummary,
-                getTableCaption(classStr));
+        Content caption = getTableCaption(classStr);
+        Content table = (configuration.isOutputHtml5())
+                ? HtmlTree.TABLE(HtmlStyle.constantsSummary, caption)
+                : HtmlTree.TABLE(HtmlStyle.constantsSummary, constantsTableSummary, caption);
         table.addContent(getSummaryTableHeader(constantsTableHeader, "col"));
         return table;
     }
@@ -300,9 +343,30 @@
     /**
      * {@inheritDoc}
      */
+    public void addConstantSummaries(Content contentTree, Content summariesTree) {
+        if (configuration.allowTag(HtmlTag.SECTION) && summaryTree != null) {
+            summariesTree.addContent(summaryTree);
+        }
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(summariesTree);
+            contentTree.addContent(mainTree);
+        } else {
+            contentTree.addContent(summariesTree);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public void addFooter(Content contentTree) {
-        addNavLinks(false, contentTree);
-        addBottom(contentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : contentTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            contentTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -92,6 +92,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public Content getConstructorDetailsTreeHeader(ClassDoc classDoc,
             Content memberDetailsTree) {
         memberDetailsTree.addContent(HtmlConstants.START_OF_CONSTRUCTOR_DETAILS);
@@ -177,6 +184,10 @@
      * {@inheritDoc}
      */
     public Content getConstructorDetails(Content constructorDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(constructorDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(constructorDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -138,8 +138,11 @@
      */
     protected void generateDeprecatedListFile(DeprecatedAPIListBuilder deprapi)
             throws IOException {
-        Content body = getHeader();
-        body.addContent(getContentsList(deprapi));
+        HtmlTree body = getHeader();
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN()
+                : body;
+        htmlTree.addContent(getContentsList(deprapi));
         String memberTableSummary;
         String[] memberTableHeader = new String[1];
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
@@ -164,9 +167,20 @@
                             HEADING_KEYS[i], memberTableSummary, memberTableHeader, div);
             }
         }
-        body.addContent(div);
-        addNavLinks(false, body);
-        addBottom(body);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            htmlTree.addContent(div);
+            body.addContent(htmlTree);
+        } else {
+            body.addContent(div);
+        }
+        htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : body;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
         printHtmlDocument(null, true, body);
     }
 
@@ -226,11 +240,17 @@
      *
      * @return a content tree for the header
      */
-    public Content getHeader() {
+    public HtmlTree getHeader() {
         String title = configuration.getText("doclet.Window_Deprecated_List");
-        Content bodyTree = getBody(true, getWindowTitle(title));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         return bodyTree;
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public Content getEnumConstantsDetailsTreeHeader(ClassDoc classDoc,
             Content memberDetailsTree) {
         memberDetailsTree.addContent(HtmlConstants.START_OF_ENUM_CONSTANT_DETAILS);
@@ -140,6 +147,10 @@
      * {@inheritDoc}
      */
     public Content getEnumConstantsDetails(Content enumConstantsDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(enumConstantsDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(enumConstantsDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -70,6 +70,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public Content getFieldDetailsTreeHeader(ClassDoc classDoc,
             Content memberDetailsTree) {
         memberDetailsTree.addContent(HtmlConstants.START_OF_FIELD_DETAILS);
@@ -161,6 +168,10 @@
      * {@inheritDoc}
      */
     public Content getFieldDetails(Content fieldDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(fieldDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(fieldDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -96,7 +96,12 @@
     protected void generateFrameFile() throws IOException {
         Content frame = getFrameDetails();
         HtmlTree body = new HtmlTree(HtmlTag.BODY);
-        body.addContent(frame);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            HtmlTree main = HtmlTree.MAIN(frame);
+            body.addContent(main);
+        } else {
+            body.addContent(frame);
+        }
         if (configuration.windowtitle.length() > 0) {
             printFramesDocument(configuration.windowtitle, configuration,
                     body);
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,8 @@
  */
 public class HelpWriter extends HtmlDocletWriter {
 
+    HtmlTree mainTree = HtmlTree.MAIN();
+
     /**
      * Constructor to construct HelpWriter object.
      * @param filename File to be generated.
@@ -81,12 +83,24 @@
      */
     protected void generateHelpFile() throws IOException {
         String title = configuration.getText("doclet.Window_Help_title");
-        Content body = getBody(true, getWindowTitle(title));
-        addTop(body);
-        addNavLinks(true, body);
+        HtmlTree body = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : body;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            body.addContent(htmlTree);
+        }
         addHelpFileContents(body);
-        addNavLinks(false, body);
-        addBottom(body);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            htmlTree = HtmlTree.FOOTER();
+        }
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
         printHtmlDocument(null, true, body);
     }
 
@@ -105,26 +119,39 @@
         Content line2 = HtmlTree.DIV(HtmlStyle.subTitle,
                 getResource("doclet.Help_line_2"));
         div.addContent(line2);
-        contentTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            contentTree.addContent(div);
+        }
+        HtmlTree htmlTree;
         HtmlTree ul = new HtmlTree(HtmlTag.UL);
         ul.addStyle(HtmlStyle.blockList);
         if (configuration.createoverview) {
             Content overviewHeading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Overview"));
-            Content liOverview = HtmlTree.LI(HtmlStyle.blockList, overviewHeading);
+            htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(overviewHeading)
+                    : HtmlTree.LI(HtmlStyle.blockList, overviewHeading);
             Content line3 = getResource("doclet.Help_line_3",
                     getHyperLink(DocPaths.OVERVIEW_SUMMARY,
                     configuration.getText("doclet.Overview")));
             Content overviewPara = HtmlTree.P(line3);
-            liOverview.addContent(overviewPara);
-            ul.addContent(liOverview);
+            htmlTree.addContent(overviewPara);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
         Content packageHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Package"));
-        Content liPackage = HtmlTree.LI(HtmlStyle.blockList, packageHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(packageHead)
+                : HtmlTree.LI(HtmlStyle.blockList, packageHead);
         Content line4 = getResource("doclet.Help_line_4");
         Content packagePara = HtmlTree.P(line4);
-        liPackage.addContent(packagePara);
+        htmlTree.addContent(packagePara);
         HtmlTree ulPackage = new HtmlTree(HtmlTag.UL);
         ulPackage.addContent(HtmlTree.LI(
                 getResource("doclet.Interfaces_Italic")));
@@ -138,14 +165,20 @@
                 getResource("doclet.Errors")));
         ulPackage.addContent(HtmlTree.LI(
                 getResource("doclet.AnnotationTypes")));
-        liPackage.addContent(ulPackage);
-        ul.addContent(liPackage);
+        htmlTree.addContent(ulPackage);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         Content classHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Help_line_5"));
-        Content liClass = HtmlTree.LI(HtmlStyle.blockList, classHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(classHead)
+                : HtmlTree.LI(HtmlStyle.blockList, classHead);
         Content line6 = getResource("doclet.Help_line_6");
         Content classPara = HtmlTree.P(line6);
-        liClass.addContent(classPara);
+        htmlTree.addContent(classPara);
         HtmlTree ul1 = new HtmlTree(HtmlTag.UL);
         ul1.addContent(HtmlTree.LI(
                 getResource("doclet.Help_line_7")));
@@ -159,7 +192,7 @@
                 getResource("doclet.Help_line_11")));
         ul1.addContent(HtmlTree.LI(
                 getResource("doclet.Help_line_12")));
-        liClass.addContent(ul1);
+        htmlTree.addContent(ul1);
         HtmlTree ul2 = new HtmlTree(HtmlTag.UL);
         ul2.addContent(HtmlTree.LI(
                 getResource("doclet.Nested_Class_Summary")));
@@ -169,7 +202,7 @@
                 getResource("doclet.Constructor_Summary")));
         ul2.addContent(HtmlTree.LI(
                 getResource("doclet.Method_Summary")));
-        liClass.addContent(ul2);
+        htmlTree.addContent(ul2);
         HtmlTree ul3 = new HtmlTree(HtmlTag.UL);
         ul3.addContent(HtmlTree.LI(
                 getResource("doclet.Field_Detail")));
@@ -177,18 +210,24 @@
                 getResource("doclet.Constructor_Detail")));
         ul3.addContent(HtmlTree.LI(
                 getResource("doclet.Method_Detail")));
-        liClass.addContent(ul3);
+        htmlTree.addContent(ul3);
         Content line13 = getResource("doclet.Help_line_13");
         Content para = HtmlTree.P(line13);
-        liClass.addContent(para);
-        ul.addContent(liClass);
+        htmlTree.addContent(para);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         //Annotation Types
         Content aHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.AnnotationType"));
-        Content liAnnotation = HtmlTree.LI(HtmlStyle.blockList, aHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(aHead)
+                : HtmlTree.LI(HtmlStyle.blockList, aHead);
         Content aline1 = getResource("doclet.Help_annotation_type_line_1");
         Content aPara = HtmlTree.P(aline1);
-        liAnnotation.addContent(aPara);
+        htmlTree.addContent(aPara);
         HtmlTree aul = new HtmlTree(HtmlTag.UL);
         aul.addContent(HtmlTree.LI(
                 getResource("doclet.Help_annotation_type_line_2")));
@@ -200,15 +239,21 @@
                 getResource("doclet.Annotation_Type_Optional_Member_Summary")));
         aul.addContent(HtmlTree.LI(
                 getResource("doclet.Annotation_Type_Member_Detail")));
-        liAnnotation.addContent(aul);
-        ul.addContent(liAnnotation);
+        htmlTree.addContent(aul);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         //Enums
         Content enumHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Enum"));
-        Content liEnum = HtmlTree.LI(HtmlStyle.blockList, enumHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(enumHead)
+                : HtmlTree.LI(HtmlStyle.blockList, enumHead);
         Content eline1 = getResource("doclet.Help_enum_line_1");
         Content enumPara = HtmlTree.P(eline1);
-        liEnum.addContent(enumPara);
+        htmlTree.addContent(enumPara);
         HtmlTree eul = new HtmlTree(HtmlTag.UL);
         eul.addContent(HtmlTree.LI(
                 getResource("doclet.Help_enum_line_2")));
@@ -218,46 +263,68 @@
                 getResource("doclet.Enum_Constant_Summary")));
         eul.addContent(HtmlTree.LI(
                 getResource("doclet.Enum_Constant_Detail")));
-        liEnum.addContent(eul);
-        ul.addContent(liEnum);
+        htmlTree.addContent(eul);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         if (configuration.classuse) {
             Content useHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                     getResource("doclet.Help_line_14"));
-            Content liUse = HtmlTree.LI(HtmlStyle.blockList, useHead);
+            htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(useHead)
+                    : HtmlTree.LI(HtmlStyle.blockList, useHead);
             Content line15 = getResource("doclet.Help_line_15");
             Content usePara = HtmlTree.P(line15);
-            liUse.addContent(usePara);
-            ul.addContent(liUse);
+            htmlTree.addContent(usePara);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
         if (configuration.createtree) {
             Content treeHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                     getResource("doclet.Help_line_16"));
-            Content liTree = HtmlTree.LI(HtmlStyle.blockList, treeHead);
+            htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(treeHead)
+                    : HtmlTree.LI(HtmlStyle.blockList, treeHead);
             Content line17 = getResource("doclet.Help_line_17_with_tree_link",
                     getHyperLink(DocPaths.OVERVIEW_TREE,
                     configuration.getText("doclet.Class_Hierarchy")),
                     HtmlTree.CODE(new StringContent("java.lang.Object")));
             Content treePara = HtmlTree.P(line17);
-            liTree.addContent(treePara);
+            htmlTree.addContent(treePara);
             HtmlTree tul = new HtmlTree(HtmlTag.UL);
             tul.addContent(HtmlTree.LI(
                     getResource("doclet.Help_line_18")));
             tul.addContent(HtmlTree.LI(
                     getResource("doclet.Help_line_19")));
-            liTree.addContent(tul);
-            ul.addContent(liTree);
+            htmlTree.addContent(tul);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
         if (!(configuration.nodeprecatedlist ||
                   configuration.nodeprecated)) {
             Content dHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                     getResource("doclet.Deprecated_API"));
-            Content liDeprecated = HtmlTree.LI(HtmlStyle.blockList, dHead);
+            htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(dHead)
+                    : HtmlTree.LI(HtmlStyle.blockList, dHead);
             Content line20 = getResource("doclet.Help_line_20_with_deprecated_api_link",
                     getHyperLink(DocPaths.DEPRECATED_LIST,
                     configuration.getText("doclet.Deprecated_API")));
             Content dPara = HtmlTree.P(line20);
-            liDeprecated.addContent(dPara);
-            ul.addContent(liDeprecated);
+            htmlTree.addContent(dPara);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
         if (configuration.createindex) {
             Content indexlink;
@@ -270,55 +337,96 @@
             }
             Content indexHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                     getResource("doclet.Help_line_21"));
-            Content liIndex = HtmlTree.LI(HtmlStyle.blockList, indexHead);
+            htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(indexHead)
+                    : HtmlTree.LI(HtmlStyle.blockList, indexHead);
             Content line22 = getResource("doclet.Help_line_22", indexlink);
             Content indexPara = HtmlTree.P(line22);
-            liIndex.addContent(indexPara);
-            ul.addContent(liIndex);
+            htmlTree.addContent(indexPara);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
         Content prevHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Help_line_23"));
-        Content liPrev = HtmlTree.LI(HtmlStyle.blockList, prevHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(prevHead)
+                : HtmlTree.LI(HtmlStyle.blockList, prevHead);
         Content line24 = getResource("doclet.Help_line_24");
         Content prevPara = HtmlTree.P(line24);
-        liPrev.addContent(prevPara);
-        ul.addContent(liPrev);
+        htmlTree.addContent(prevPara);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         Content frameHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Help_line_25"));
-        Content liFrame = HtmlTree.LI(HtmlStyle.blockList, frameHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(frameHead)
+                : HtmlTree.LI(HtmlStyle.blockList, frameHead);
         Content line26 = getResource("doclet.Help_line_26");
         Content framePara = HtmlTree.P(line26);
-        liFrame.addContent(framePara);
-        ul.addContent(liFrame);
+        htmlTree.addContent(framePara);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         Content allclassesHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.All_Classes"));
-        Content liAllClasses = HtmlTree.LI(HtmlStyle.blockList, allclassesHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(allclassesHead)
+                : HtmlTree.LI(HtmlStyle.blockList, allclassesHead);
         Content line27 = getResource("doclet.Help_line_27",
                 getHyperLink(DocPaths.ALLCLASSES_NOFRAME,
                 configuration.getText("doclet.All_Classes")));
         Content allclassesPara = HtmlTree.P(line27);
-        liAllClasses.addContent(allclassesPara);
-        ul.addContent(liAllClasses);
+        htmlTree.addContent(allclassesPara);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Serialized_Form"));
-        Content liSerial = HtmlTree.LI(HtmlStyle.blockList, sHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(sHead)
+                : HtmlTree.LI(HtmlStyle.blockList, sHead);
         Content line28 = getResource("doclet.Help_line_28");
         Content serialPara = HtmlTree.P(line28);
-        liSerial.addContent(serialPara);
-        ul.addContent(liSerial);
+        htmlTree.addContent(serialPara);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         Content constHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 getResource("doclet.Constants_Summary"));
-        Content liConst = HtmlTree.LI(HtmlStyle.blockList, constHead);
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(constHead)
+                : HtmlTree.LI(HtmlStyle.blockList, constHead);
         Content line29 = getResource("doclet.Help_line_29",
                 getHyperLink(DocPaths.CONSTANT_VALUES,
                 configuration.getText("doclet.Constants_Summary")));
         Content constPara = HtmlTree.P(line29);
-        liConst.addContent(constPara);
-        ul.addContent(liConst);
+        htmlTree.addContent(constPara);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
         Content divContent = HtmlTree.DIV(HtmlStyle.contentContainer, ul);
         Content line30 = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase, getResource("doclet.Help_line_30"));
         divContent.addContent(line30);
-        contentTree.addContent(divContent);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(divContent);
+            contentTree.addContent(mainTree);
+        } else {
+            contentTree.addContent(divContent);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -183,8 +183,7 @@
      * @return a content tree for the script
      */
     public Content getAllClassesLinkScript(String id) {
-        HtmlTree script = new HtmlTree(HtmlTag.SCRIPT);
-        script.addAttr(HtmlAttr.TYPE, "text/javascript");
+        HtmlTree script = HtmlTree.SCRIPT();
         String scriptCode = "<!--" + DocletConstants.NL +
                 "  allClassesLink = document.getElementById(\"" + id + "\");" + DocletConstants.NL +
                 "  if(window==top) {" + DocletConstants.NL +
@@ -197,6 +196,9 @@
         Content scriptContent = new RawHtml(scriptCode);
         script.addContent(scriptContent);
         Content div = HtmlTree.DIV(script);
+        Content div_noscript = HtmlTree.DIV(getResource("doclet.No_Script_Message"));
+        Content noScript = HtmlTree.NOSCRIPT(div_noscript);
+        div.addContent(noScript);
         return div;
     }
 
@@ -342,8 +344,9 @@
         if(classes.length > 0) {
             Arrays.sort(classes);
             Content caption = getTableCaption(new RawHtml(label));
-            Content table = HtmlTree.TABLE(HtmlStyle.typeSummary, 0, 3, 0,
-                    tableSummary, caption);
+            Content table = (configuration.isOutputHtml5())
+                    ? HtmlTree.TABLE(HtmlStyle.typeSummary, caption)
+                    : HtmlTree.TABLE(HtmlStyle.typeSummary, tableSummary, caption);
             table.addContent(getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             for (int i = 0; i < classes.length; i++) {
@@ -393,7 +396,9 @@
      */
     public void printHtmlDocument(String[] metakeywords, boolean includeScript,
             Content body) throws IOException {
-        Content htmlDocType = DocType.TRANSITIONAL;
+        Content htmlDocType = configuration.isOutputHtml5()
+                ? DocType.HTML5
+                : DocType.TRANSITIONAL;
         Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
         Content head = new HtmlTree(HtmlTag.HEAD);
         head.addContent(getGeneratedBy(!configuration.notimestamp));
@@ -404,7 +409,9 @@
         head.addContent(meta);
         if (!configuration.notimestamp) {
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-            meta = HtmlTree.META("date", dateFormat.format(new Date()));
+            meta = HtmlTree.META(configuration.isOutputHtml5()
+                    ? "dc.created"
+                    : "date", dateFormat.format(new Date()));
             head.addContent(meta);
         }
         if (metakeywords != null) {
@@ -459,38 +466,41 @@
     /**
      * Adds the user specified top.
      *
-     * @param body the content tree to which user specified top will be added
+     * @param htmlTree the content tree to which user specified top will be added
      */
-    public void addTop(Content body) {
+    public void addTop(Content htmlTree) {
         Content top = new RawHtml(replaceDocRootDir(configuration.top));
-        body.addContent(top);
+        htmlTree.addContent(top);
     }
 
     /**
      * Adds the user specified bottom.
      *
-     * @param body the content tree to which user specified bottom will be added
+     * @param htmlTree the content tree to which user specified bottom will be added
      */
-    public void addBottom(Content body) {
+    public void addBottom(Content htmlTree) {
         Content bottom = new RawHtml(replaceDocRootDir(configuration.bottom));
         Content small = HtmlTree.SMALL(bottom);
         Content p = HtmlTree.P(HtmlStyle.legalCopy, small);
-        body.addContent(p);
+        htmlTree.addContent(p);
     }
 
     /**
      * Adds the navigation bar for the Html page at the top and and the bottom.
      *
      * @param header If true print navigation bar at the top of the page else
-     * @param body the HtmlTree to which the nav links will be added
+     * @param htmlTree the HtmlTree to which the nav links will be added
      */
-    protected void addNavLinks(boolean header, Content body) {
+    protected void addNavLinks(boolean header, Content htmlTree) {
         if (!configuration.nonavbar) {
+            Content tree = (configuration.allowTag(HtmlTag.NAV))
+                    ? HtmlTree.NAV()
+                    : htmlTree;
             String allClassesId = "allclasses_";
             HtmlTree navDiv = new HtmlTree(HtmlTag.DIV);
             Content skipNavLinks = configuration.getResource("doclet.Skip_navigation_links");
             if (header) {
-                body.addContent(HtmlConstants.START_OF_TOP_NAVBAR);
+                tree.addContent(HtmlConstants.START_OF_TOP_NAVBAR);
                 navDiv.addStyle(HtmlStyle.topNav);
                 allClassesId += "navbar_top";
                 Content a = getMarkerAnchor(SectionName.NAVBAR_TOP);
@@ -501,7 +511,7 @@
                     skipNavLinks.toString(), ""));
                 navDiv.addContent(skipLinkContent);
             } else {
-                body.addContent(HtmlConstants.START_OF_BOTTOM_NAVBAR);
+                tree.addContent(HtmlConstants.START_OF_BOTTOM_NAVBAR);
                 navDiv.addStyle(HtmlStyle.bottomNav);
                 allClassesId += "navbar_bottom";
                 Content a = getMarkerAnchor(SectionName.NAVBAR_BOTTOM);
@@ -548,7 +558,7 @@
             navDiv.addContent(navList);
             Content aboutDiv = HtmlTree.DIV(HtmlStyle.aboutLanguage, getUserHeaderFooter(header));
             navDiv.addContent(aboutDiv);
-            body.addContent(navDiv);
+            tree.addContent(navDiv);
             Content ulNav = HtmlTree.UL(HtmlStyle.navList, getNavLinkPrevious());
             ulNav.addContent(getNavLinkNext());
             Content subDiv = HtmlTree.DIV(HtmlStyle.subNav, ulNav);
@@ -562,12 +572,15 @@
             addSummaryDetailLinks(subDiv);
             if (header) {
                 subDiv.addContent(getMarkerAnchor(SectionName.SKIP_NAVBAR_TOP));
-                body.addContent(subDiv);
-                body.addContent(HtmlConstants.END_OF_TOP_NAVBAR);
+                tree.addContent(subDiv);
+                tree.addContent(HtmlConstants.END_OF_TOP_NAVBAR);
             } else {
                 subDiv.addContent(getMarkerAnchor(SectionName.SKIP_NAVBAR_BOTTOM));
-                body.addContent(subDiv);
-                body.addContent(HtmlConstants.END_OF_BOTTOM_NAVBAR);
+                tree.addContent(subDiv);
+                tree.addContent(HtmlConstants.END_OF_BOTTOM_NAVBAR);
+            }
+            if (configuration.allowTag(HtmlTag.NAV)) {
+                htmlTree.addContent(tree);
             }
         }
     }
@@ -904,7 +917,7 @@
     public Content getMarkerAnchor(String anchorName, Content anchorContent) {
         if (anchorContent == null)
             anchorContent = new Comment(" ");
-        Content markerAnchor = HtmlTree.A_NAME(anchorName, anchorContent);
+        Content markerAnchor = HtmlTree.A_ID(anchorName, anchorContent);
         return markerAnchor;
     }
 
@@ -942,8 +955,10 @@
     protected void addPackageDeprecatedAPI(List<Doc> deprPkgs, String headingKey,
             String tableSummary, String[] tableHeader, Content contentTree) {
         if (deprPkgs.size() > 0) {
-            Content table = HtmlTree.TABLE(HtmlStyle.deprecatedSummary, 0, 3, 0, tableSummary,
-                    getTableCaption(configuration.getResource(headingKey)));
+            Content caption = getTableCaption(configuration.getResource(headingKey));
+            Content table = (configuration.isOutputHtml5())
+                    ? HtmlTree.TABLE(HtmlStyle.deprecatedSummary, caption)
+                    : HtmlTree.TABLE(HtmlStyle.deprecatedSummary, tableSummary, caption);
             table.addContent(getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             for (int i = 0; i < deprPkgs.size(); i++) {
@@ -1829,8 +1844,7 @@
      * @return an HtmlTree for the Script tag which provides the JavaScript location
      */
     public HtmlTree getScriptProperties() {
-        HtmlTree script = HtmlTree.SCRIPT("text/javascript",
-                pathToRoot.resolve(DocPaths.JAVASCRIPT).getPath());
+        HtmlTree script = HtmlTree.SCRIPT(pathToRoot.resolve(DocPaths.JAVASCRIPT).getPath());
         return script;
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -150,7 +150,7 @@
             writer.getTagletWriterInstance(false), tagContent);
         Content dlTags = new HtmlTree(HtmlTag.DL);
         dlTags.addContent(tagContent);
-        methodsContentTree.addContent(dlTags);  // TODO: what if empty?
+        methodsContentTree.addContent(dlTags);
         MethodDoc method = member;
         if (method.name().compareTo("writeExternal") == 0
                 && method.tags("serialData").length == 0) {
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -82,6 +82,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public Content getMethodDetailsTreeHeader(ClassDoc classDoc,
             Content memberDetailsTree) {
         memberDetailsTree.addContent(HtmlConstants.START_OF_METHOD_DETAILS);
@@ -182,6 +189,10 @@
      * {@inheritDoc}
      */
     public Content getMethodDetails(Content methodDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(methodDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(methodDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,13 @@
     }
 
     /**
+     * {@inheritDoc}
+     */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
      * Close the writer.
      */
     public void close() throws IOException {
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,15 +93,21 @@
         try {
             packgen = new PackageFrameWriter(configuration, packageDoc);
             String pkgName = configuration.utils.getPackageName(packageDoc);
-            Content body = packgen.getBody(false, packgen.getWindowTitle(pkgName));
+            HtmlTree body = packgen.getBody(false, packgen.getWindowTitle(pkgName));
             Content pkgNameContent = new StringContent(pkgName);
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                    ? HtmlTree.MAIN()
+                    : body;
             Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, HtmlStyle.bar,
                     packgen.getTargetPackageLink(packageDoc, "classFrame", pkgNameContent));
-            body.addContent(heading);
+            htmlTree.addContent(heading);
             HtmlTree div = new HtmlTree(HtmlTag.DIV);
             div.addStyle(HtmlStyle.indexContainer);
             packgen.addClassListing(div);
-            body.addContent(div);
+            htmlTree.addContent(div);
+            if (configuration.allowTag(HtmlTag.MAIN)) {
+                body.addContent(htmlTree);
+            }
             packgen.printHtmlDocument(
                     configuration.metakeywords.getMetaKeywords(packageDoc), false, body);
             packgen.close();
@@ -120,7 +126,7 @@
      *
      * @param contentTree the content tree to which the listing will be added
      */
-    protected void addClassListing(Content contentTree) {
+    protected void addClassListing(HtmlTree contentTree) {
         Configuration config = configuration;
         if (packageDoc.isIncluded()) {
             addClassKindListing(packageDoc.interfaces(),
@@ -160,11 +166,14 @@
      * @param contentTree the content tree to which the class kind listing will be added
      */
     protected void addClassKindListing(ClassDoc[] arr, Content labelContent,
-            Content contentTree) {
+            HtmlTree contentTree) {
         arr = utils.filterOutPrivateClasses(arr, configuration.javafx);
         if(arr.length > 0) {
             Arrays.sort(arr);
             boolean printedHeader = false;
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION()
+                    : contentTree;
             HtmlTree ul = new HtmlTree(HtmlTag.UL);
             ul.setTitle(labelContent);
             for (ClassDoc classDoc : arr) {
@@ -177,7 +186,7 @@
                 if (!printedHeader) {
                     Content heading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                                                        true, labelContent);
-                    contentTree.addContent(heading);
+                    htmlTree.addContent(heading);
                     printedHeader = true;
                 }
                 Content arr_i_name = new StringContent(classDoc.name());
@@ -188,7 +197,10 @@
                 Content li = HtmlTree.LI(link);
                 ul.addContent(li);
             }
-            contentTree.addContent(ul);
+            htmlTree.addContent(ul);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                contentTree.addContent(htmlTree);
+            }
         }
     }
 }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -83,7 +83,9 @@
             String tableSummary, Content body) {
         Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true,
                 packagesLabel);
-        Content div = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading)
+                : HtmlTree.DIV(HtmlStyle.indexContainer, heading);
         HtmlTree ul = new HtmlTree(HtmlTag.UL);
         ul.setTitle(packagesLabel);
         for (PackageDoc aPackage : packages) {
@@ -94,8 +96,8 @@
                 ul.addContent(getPackage(aPackage));
             }
         }
-        div.addContent(ul);
-        body.addContent(div);
+        htmlTree.addContent(ul);
+        body.addContent(htmlTree);
     }
 
     /**
@@ -146,26 +148,26 @@
      * Adds "All Classes" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all classes link should be added
+     * @param ul the Content object to which the "All Classes" link should be added
      */
-    protected void addAllClassesLink(Content div) {
+    protected void addAllClassesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.ALLCLASSES_FRAME,
                 allclassesLabel, "", "packageFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
      * Adds "All Profiles" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all profiles link should be added
+     * @param ul the Content object to which the "All Profiles" link should be added
      */
-    protected void addAllProfilesLink(Content div) {
+    protected void addAllProfilesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.PROFILE_OVERVIEW_FRAME,
                 allprofilesLabel, "", "packageListFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,6 +67,11 @@
     private List<String> groupList;
 
     /**
+     * HTML tree for main tag.
+     */
+    private HtmlTree htmlTree = HtmlTree.MAIN();
+
+    /**
      * Construct the PackageIndexWriter. Also constructs the grouping
      * information as provided on the command line by "-group" option. Stores
      * the order of groups specified by the user.
@@ -140,7 +145,11 @@
         }
         profilesDiv.addContent(ul);
         Content div = HtmlTree.DIV(HtmlStyle.contentContainer, profilesDiv);
-        body.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            htmlTree.addContent(div);
+        } else {
+            body.addContent(div);
+        }
     }
 
     /**
@@ -148,14 +157,19 @@
      */
     protected void addPackagesList(Collection<PackageDoc> packages, String text,
             String tableSummary, Content body) {
-        Content table = HtmlTree.TABLE(HtmlStyle.overviewSummary, 0, 3, 0, tableSummary,
-                getTableCaption(new RawHtml(text)));
+        Content table = (configuration.isOutputHtml5())
+                ? HtmlTree.TABLE(HtmlStyle.overviewSummary, getTableCaption(new RawHtml(text)))
+                : HtmlTree.TABLE(HtmlStyle.overviewSummary, tableSummary, getTableCaption(new RawHtml(text)));
         table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
         Content tbody = new HtmlTree(HtmlTag.TBODY);
         addPackagesList(packages, tbody);
         table.addContent(tbody);
         Content div = HtmlTree.DIV(HtmlStyle.contentContainer, table);
-        body.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            htmlTree.addContent(div);
+        } else {
+            body.addContent(div);
+        }
     }
 
     /**
@@ -192,6 +206,7 @@
      * @param body the documentation tree to which the overview header will be added
      */
     protected void addOverviewHeader(Content body) {
+        addConfigurationTitle(body);
         if (root.inlineTags().length > 0) {
             HtmlTree subTitleDiv = new HtmlTree(HtmlTag.DIV);
             subTitleDiv.addStyle(HtmlStyle.subTitle);
@@ -205,7 +220,11 @@
                     descriptionLabel, "", "");
             descPara.addContent(descLink);
             div.addContent(descPara);
-            body.addContent(div);
+            if (configuration.allowTag(HtmlTag.MAIN)) {
+                htmlTree.addContent(div);
+            } else {
+                body.addContent(div);
+            }
         }
     }
 
@@ -235,7 +254,12 @@
         div.addStyle(HtmlStyle.contentContainer);
         addOverviewComment(div);
         addTagsInfo(root, div);
-        body.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            htmlTree.addContent(div);
+            body.addContent(htmlTree);
+        } else {
+            body.addContent(div);
+        }
     }
 
     /**
@@ -246,9 +270,14 @@
      * @body the documentation tree to which the navigation bar header will be added
      */
     protected void addNavigationBarHeader(Content body) {
-        addTop(body);
-        addNavLinks(true, body);
-        addConfigurationTitle(body);
+        Content htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : body;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            body.addContent(htmlTree);
+        }
     }
 
     /**
@@ -258,7 +287,13 @@
      * @param body the documentation tree to which the navigation bar footer will be added
      */
     protected void addNavigationBarFooter(Content body) {
-        addNavLinks(false, body);
-        addBottom(body);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : body;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
     }
 }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -113,7 +113,10 @@
      * Generate a separate tree file for each package.
      */
     protected void generatePackageTreeFile() throws IOException {
-        Content body = getPackageTreeHeader();
+        HtmlTree body = getPackageTreeHeader();
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN()
+                : body;
         Content headContent = getResource("doclet.Hierarchy_For_Package",
                 utils.getPackageName(packagedoc));
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false,
@@ -122,16 +125,25 @@
         if (configuration.packages.size() > 1) {
             addLinkToMainTree(div);
         }
-        body.addContent(div);
+        htmlTree.addContent(div);
         HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
         divTree.addStyle(HtmlStyle.contentContainer);
         addTree(classtree.baseclasses(), "doclet.Class_Hierarchy", divTree);
         addTree(classtree.baseinterfaces(), "doclet.Interface_Hierarchy", divTree);
         addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree);
         addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree);
-        body.addContent(divTree);
-        addNavLinks(false, body);
-        addBottom(body);
+        htmlTree.addContent(divTree);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            body.addContent(htmlTree);
+        }
+        HtmlTree tree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : body;
+        addNavLinks(false, tree);
+        addBottom(tree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(tree);
+        }
         printHtmlDocument(null, true, body);
     }
 
@@ -140,12 +152,18 @@
      *
      * @return a content tree for the header
      */
-    protected Content getPackageTreeHeader() {
+    protected HtmlTree getPackageTreeHeader() {
         String title = packagedoc.name() + " " +
                 configuration.getText("doclet.Window_Class_Hierarchy");
-        Content bodyTree = getBody(true, getWindowTitle(title));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         return bodyTree;
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@
 
     final PackageDoc pkgdoc;
     final SortedMap<String,Set<ClassDoc>> usingPackageToUsedClasses = new TreeMap<>();
+    protected HtmlTree mainTree = HtmlTree.MAIN();
 
     /**
      * Constructor.
@@ -112,7 +113,7 @@
      * Generate the package use list.
      */
     protected void generatePackageUseFile() throws IOException {
-        Content body = getPackageUseHeader();
+        HtmlTree body = getPackageUseHeader();
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.contentContainer);
         if (usingPackageToUsedClasses.isEmpty()) {
@@ -121,9 +122,20 @@
         } else {
             addPackageUse(div);
         }
-        body.addContent(div);
-        addNavLinks(false, body);
-        addBottom(body);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+            body.addContent(mainTree);
+        } else {
+            body.addContent(div);
+        }
+        HtmlTree tree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : body;
+        addNavLinks(false, tree);
+        addBottom(tree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(tree);
+        }
         printHtmlDocument(null, true, body);
     }
 
@@ -148,10 +160,12 @@
      * @param contentTree the content tree to which the package list will be added
      */
     protected void addPackageList(Content contentTree) throws IOException {
-        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
-                getTableCaption(configuration.getResource(
+        Content caption = getTableCaption(configuration.getResource(
                 "doclet.ClassUse_Packages.that.use.0",
-                getPackageLink(pkgdoc, utils.getPackageName(pkgdoc)))));
+                getPackageLink(pkgdoc, utils.getPackageName(pkgdoc))));
+        Content table = (configuration.isOutputHtml5())
+                ? HtmlTree.TABLE(HtmlStyle.useSummary, caption)
+                : HtmlTree.TABLE(HtmlStyle.useSummary, useTableSummary, caption);
         table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
         Content tbody = new HtmlTree(HtmlTag.TBODY);
         Iterator<String> it = usingPackageToUsedClasses.keySet().iterator();
@@ -191,11 +205,13 @@
             }
             String tableSummary = configuration.getText("doclet.Use_Table_Summary",
                                                         configuration.getText("doclet.classes"));
-            Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, tableSummary,
-                                           getTableCaption(configuration.getResource(
-                                                   "doclet.ClassUse_Classes.in.0.used.by.1",
-                                                   getPackageLink(pkgdoc, utils.getPackageName(pkgdoc)),
-                                                   getPackageLink(usingPackage, utils.getPackageName(usingPackage)))));
+            Content caption = getTableCaption(configuration.getResource(
+                    "doclet.ClassUse_Classes.in.0.used.by.1",
+                    getPackageLink(pkgdoc, utils.getPackageName(pkgdoc)),
+                    getPackageLink(usingPackage, utils.getPackageName(usingPackage))));
+            Content table = (configuration.isOutputHtml5())
+                    ? HtmlTree.TABLE(HtmlStyle.useSummary, caption)
+                    : HtmlTree.TABLE(HtmlStyle.useSummary, tableSummary, caption);
             table.addContent(getSummaryTableHeader(classTableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             Iterator<ClassDoc> itc =
@@ -259,14 +275,20 @@
      *
      * @return a content tree representing the package use header
      */
-    protected Content getPackageUseHeader() {
+    protected HtmlTree getPackageUseHeader() {
         String packageText = configuration.getText("doclet.Package");
         String name = pkgdoc.name();
         String title = configuration.getText("doclet.Window_ClassUse_Header",
                 packageText, name);
-        Content bodyTree = getBody(true, getWindowTitle(title));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         ContentBuilder headContent = new ContentBuilder();
         headContent.addContent(getResource("doclet.ClassUse_Title", packageText));
         headContent.addContent(new HtmlTree(HtmlTag.BR));
@@ -274,7 +296,11 @@
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
                 HtmlStyle.title, headContent);
         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,16 @@
     protected PackageDoc packageDoc;
 
     /**
+     * The HTML tree for main tag.
+     */
+    protected HtmlTree mainTree = HtmlTree.MAIN();
+
+    /**
+     * The HTML tree for section tag.
+     */
+    protected HtmlTree sectionTree = HtmlTree.SECTION();
+
+    /**
      * Constructor to construct PackageWriter object and to generate
      * "package-summary.html" file in the respective package directory.
      * For example for package "java.lang" this will generate file
@@ -90,9 +100,15 @@
      * {@inheritDoc}
      */
     public Content getPackageHeader(String heading) {
-        Content bodyTree = getBody(true, getWindowTitle(utils.getPackageName(packageDoc)));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getPackageName(packageDoc)));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.header);
         Content annotationContent = new HtmlTree(HtmlTag.P);
@@ -117,7 +133,11 @@
             Content descPara = new HtmlTree(HtmlTag.P, seeLabel, space, descLink);
             div.addContent(descPara);
         }
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
@@ -169,8 +189,9 @@
         if(classes.length > 0) {
             Arrays.sort(classes);
             Content caption = getTableCaption(new RawHtml(label));
-            Content table = HtmlTree.TABLE(HtmlStyle.typeSummary, 0, 3, 0,
-                    tableSummary, caption);
+            Content table = (configuration.isOutputHtml5())
+                    ? HtmlTree.TABLE(HtmlStyle.typeSummary, caption)
+                    : HtmlTree.TABLE(HtmlStyle.typeSummary, tableSummary, caption);
             table.addContent(getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             for (int i = 0; i < classes.length; i++) {
@@ -216,9 +237,14 @@
             Content h2Content = new StringContent(
                     configuration.getText("doclet.Package_Description",
                     packageDoc.name()));
-            packageContentTree.addContent(HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING,
-                    true, h2Content));
-            addInlineComment(packageDoc, packageContentTree);
+            Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true, h2Content);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                sectionTree.addContent(heading);
+                addInlineComment(packageDoc, sectionTree);
+            } else {
+                packageContentTree.addContent(heading);
+                addInlineComment(packageDoc, packageContentTree);
+            }
         }
     }
 
@@ -226,15 +252,37 @@
      * {@inheritDoc}
      */
     public void addPackageTags(Content packageContentTree) {
-        addTagsInfo(packageDoc, packageContentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? sectionTree
+                : packageContentTree;
+        addTagsInfo(packageDoc, htmlTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void addPackageContent(Content contentTree, Content packageContentTree) {
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            packageContentTree.addContent(sectionTree);
+            mainTree.addContent(packageContentTree);
+            contentTree.addContent(mainTree);
+        } else {
+            contentTree.addContent(packageContentTree);
+        }
     }
 
     /**
      * {@inheritDoc}
      */
     public void addPackageFooter(Content contentTree) {
-        addNavLinks(false, contentTree);
-        addBottom(contentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : contentTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            contentTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfileIndexFrameWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfileIndexFrameWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -85,7 +85,9 @@
             String tableSummary, Content body) {
         Content heading = HtmlTree.HEADING(HtmlConstants.PROFILE_HEADING, true,
                 profilesLabel);
-        Content div = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading)
+                : HtmlTree.DIV(HtmlStyle.indexContainer, heading);
         HtmlTree ul = new HtmlTree(HtmlTag.UL);
         ul.setTitle(profilesLabel);
         String profileName;
@@ -96,8 +98,8 @@
             if (configuration.shouldDocumentProfile(profileName))
                 ul.addContent(getProfile(profileName));
         }
-        div.addContent(ul);
-        body.addContent(div);
+        htmlTree.addContent(ul);
+        body.addContent(htmlTree);
     }
 
     /**
@@ -141,26 +143,26 @@
      * Adds "All Classes" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all classes link should be added
+     * @param ul the Content object to which the all classes link should be added
      */
-    protected void addAllClassesLink(Content div) {
+    protected void addAllClassesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.ALLCLASSES_FRAME,
                 allclassesLabel, "", "packageFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
      * Adds "All Packages" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all packages link should be added
+     * @param ul the Content object to which the all packages link should be added
      */
-    protected void addAllPackagesLink(Content div) {
+    protected void addAllPackagesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.OVERVIEW_FRAME,
                 allpackagesLabel, "", "packageListFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageFrameWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageFrameWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,21 +93,27 @@
             winTitle.append(sep);
             String pkgName = configuration.utils.getPackageName(packageDoc);
             winTitle.append(pkgName);
-            Content body = profpackgen.getBody(false,
+            HtmlTree body = profpackgen.getBody(false,
                     profpackgen.getWindowTitle(winTitle.toString()));
             Content profName = new StringContent(profileName);
             Content sepContent = new StringContent(sep);
             Content pkgNameContent = new RawHtml(pkgName);
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                    ? HtmlTree.MAIN()
+                    : body;
             Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, HtmlStyle.bar,
                     profpackgen.getTargetProfileLink("classFrame", profName, profileName));
             heading.addContent(sepContent);
             heading.addContent(profpackgen.getTargetProfilePackageLink(packageDoc,
                     "classFrame", pkgNameContent, profileName));
-            body.addContent(heading);
+            htmlTree.addContent(heading);
             HtmlTree div = new HtmlTree(HtmlTag.DIV);
             div.addStyle(HtmlStyle.indexContainer);
             profpackgen.addClassListing(div, profileValue);
-            body.addContent(div);
+            htmlTree.addContent(div);
+            if (configuration.allowTag(HtmlTag.MAIN)) {
+                body.addContent(htmlTree);
+            }
             profpackgen.printHtmlDocument(
                     configuration.metakeywords.getMetaKeywords(packageDoc), false, body);
             profpackgen.close();
@@ -127,7 +133,7 @@
      * @param contentTree the content tree to which the listing will be added
      * @param profileValue the value of the profile being documented
      */
-    protected void addClassListing(Content contentTree, int profileValue) {
+    protected void addClassListing(HtmlTree contentTree, int profileValue) {
         if (packageDoc.isIncluded()) {
             addClassKindListing(packageDoc.interfaces(),
                 getResource("doclet.Interfaces"), contentTree, profileValue);
@@ -153,10 +159,13 @@
      * @param profileValue the value of the profile being documented
      */
     protected void addClassKindListing(ClassDoc[] arr, Content labelContent,
-            Content contentTree, int profileValue) {
+            HtmlTree contentTree, int profileValue) {
         if(arr.length > 0) {
             Arrays.sort(arr);
             boolean printedHeader = false;
+            HtmlTree htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION()
+                    : contentTree;
             HtmlTree ul = new HtmlTree(HtmlTag.UL);
             ul.setTitle(labelContent);
             for (ClassDoc classDoc : arr) {
@@ -170,7 +179,7 @@
                 if (!printedHeader) {
                     Content heading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                                                        true, labelContent);
-                    contentTree.addContent(heading);
+                    htmlTree.addContent(heading);
                     printedHeader = true;
                 }
                 Content arr_i_name = new StringContent(classDoc.name());
@@ -181,7 +190,10 @@
                 Content li = HtmlTree.LI(link);
                 ul.addContent(li);
             }
-            contentTree.addContent(ul);
+            htmlTree.addContent(ul);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                contentTree.addContent(htmlTree);
+            }
         }
     }
 }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageIndexFrameWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageIndexFrameWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -90,7 +90,9 @@
                 getTargetProfileLink("classFrame", profNameContent, profileName));
         heading.addContent(getSpace());
         heading.addContent(packagesLabel);
-        Content div = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading)
+                : HtmlTree.DIV(HtmlStyle.indexContainer, heading);
         HtmlTree ul = new HtmlTree(HtmlTag.UL);
         ul.setTitle(packagesLabel);
         List<PackageDoc> packages = configuration.profilePackages.get(profileName);
@@ -99,8 +101,8 @@
                 ul.addContent(getPackage(packageDoc, profileName));
             }
         }
-        div.addContent(ul);
-        body.addContent(div);
+        htmlTree.addContent(ul);
+        body.addContent(htmlTree);
     }
 
     /**
@@ -156,39 +158,39 @@
      * Adds "All Classes" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all classes link should be added
+     * @param ul the Content object to which the all classes link should be added
      */
-    protected void addAllClassesLink(Content div) {
+    protected void addAllClassesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.ALLCLASSES_FRAME,
                 allclassesLabel, "", "packageFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
      * Adds "All Packages" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all packages link should be added
+     * @param ul the Content object to which the all packages link should be added
      */
-    protected void addAllPackagesLink(Content div) {
+    protected void addAllPackagesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.OVERVIEW_FRAME,
                 allpackagesLabel, "", "packageListFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
      * Adds "All Profiles" link for the top of the left-hand frame page to the
      * documentation tree.
      *
-     * @param div the Content object to which the all profiles link should be added
+     * @param ul the Content object to which the all profiles link should be added
      */
-    protected void addAllProfilesLink(Content div) {
+    protected void addAllProfilesLink(Content ul) {
         Content linkContent = getHyperLink(DocPaths.PROFILE_OVERVIEW_FRAME,
                 allprofilesLabel, "", "packageListFrame");
-        Content span = HtmlTree.SPAN(linkContent);
-        div.addContent(span);
+        Content li = HtmlTree.LI(linkContent);
+        ul.addContent(li);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -74,6 +74,16 @@
     protected int profileValue;
 
     /**
+     * The HTML tree for main tag.
+     */
+    protected HtmlTree mainTree = HtmlTree.MAIN();
+
+    /**
+     * The HTML tree for section tag.
+     */
+    protected HtmlTree sectionTree = HtmlTree.SECTION();
+
+    /**
      * Constructor to construct ProfilePackageWriter object and to generate
      * "profilename-package-summary.html" file in the respective package directory.
      * For example for profile compact1 and package "java.lang" this will generate file
@@ -103,9 +113,15 @@
      * {@inheritDoc}
      */
     public Content getPackageHeader(String heading) {
-        Content bodyTree = getBody(true, getWindowTitle(utils.getPackageName(packageDoc)));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getPackageName(packageDoc)));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.header);
         Content profileContent = new StringContent(profileName);
@@ -133,7 +149,11 @@
             Content descPara = new HtmlTree(HtmlTag.P, seeLabel, space, descLink);
             div.addContent(descPara);
         }
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
@@ -199,9 +219,14 @@
             Content h2Content = new StringContent(
                     configuration.getText("doclet.Package_Description",
                     packageDoc.name()));
-            packageContentTree.addContent(HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING,
-                    true, h2Content));
-            addInlineComment(packageDoc, packageContentTree);
+            Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true, h2Content);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                sectionTree.addContent(heading);
+                addInlineComment(packageDoc, sectionTree);
+            } else {
+                packageContentTree.addContent(heading);
+                addInlineComment(packageDoc, packageContentTree);
+            }
         }
     }
 
@@ -209,15 +234,37 @@
      * {@inheritDoc}
      */
     public void addPackageTags(Content packageContentTree) {
-        addTagsInfo(packageDoc, packageContentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? sectionTree
+                : packageContentTree;
+        addTagsInfo(packageDoc, htmlTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void addPackageContent(Content contentTree, Content packageContentTree) {
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            packageContentTree.addContent(sectionTree);
+            mainTree.addContent(packageContentTree);
+            contentTree.addContent(mainTree);
+        } else {
+            contentTree.addContent(packageContentTree);
+        }
     }
 
     /**
      * {@inheritDoc}
      */
     public void addPackageFooter(Content contentTree) {
-        addNavLinks(false, contentTree);
-        addBottom(contentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : contentTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            contentTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfileWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ProfileWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,11 @@
     protected Profile profile;
 
     /**
+     * The HTML tree for main tag.
+     */
+    protected HtmlTree mainTree = HtmlTree.MAIN();
+
+    /**
      * Constructor to construct ProfileWriter object and to generate
      * "profileName-summary.html" file.
      *
@@ -87,9 +92,15 @@
      */
     public Content getProfileHeader(String heading) {
         String profileName = profile.name;
-        Content bodyTree = getBody(true, getWindowTitle(profileName));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(profileName));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.addStyle(HtmlStyle.header);
         Content tHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
@@ -98,7 +109,11 @@
         Content profileHead = new RawHtml(heading);
         tHeading.addContent(profileHead);
         div.addContent(tHeading);
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
@@ -133,20 +148,29 @@
      * {@inheritDoc}
      */
     public Content getPackageSummaryHeader(PackageDoc pkg) {
-        Content pkgName = getTargetProfilePackageLink(pkg,
-                    "classFrame", new StringContent(pkg.name()), profile.name);
-        Content heading = HtmlTree.HEADING(HtmlTag.H3, pkgName);
-        HtmlTree li = HtmlTree.LI(HtmlStyle.blockList, heading);
-        addPackageDeprecationInfo(li, pkg);
-        return li;
+        Content pkgName = new StringContent(pkg.name());
+        Content pkgNameLink = getTargetProfilePackageLink(pkg,
+                    "classFrame", pkgName, profile.name);
+        Content heading = HtmlTree.HEADING(HtmlTag.H3, pkgNameLink);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(heading)
+                : HtmlTree.LI(HtmlStyle.blockList, heading);
+        addPackageDeprecationInfo(htmlTree, pkg);
+        return htmlTree;
     }
 
     /**
      * {@inheritDoc}
      */
     public Content getPackageSummaryTree(Content packageSummaryContentTree) {
-        HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, packageSummaryContentTree);
-        return ul;
+        HtmlTree htmlTree;
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            htmlTree = HtmlTree.UL(HtmlStyle.blockList,
+                    HtmlTree.LI(HtmlStyle.blockList, packageSummaryContentTree));
+        } else {
+            htmlTree = HtmlTree.UL(HtmlStyle.blockList, packageSummaryContentTree);
+        }
+        return htmlTree;
     }
 
     /**
@@ -161,9 +185,27 @@
     /**
      * {@inheritDoc}
      */
+    public void addProfileContent(Content contentTree, Content profileContentTree) {
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(profileContentTree);
+            contentTree.addContent(mainTree);
+        } else {
+            contentTree.addContent(profileContentTree);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public void addProfileFooter(Content contentTree) {
-        addNavLinks(false, contentTree);
-        addBottom(contentTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : contentTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            contentTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PropertyWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PropertyWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,6 +66,13 @@
     /**
      * {@inheritDoc}
      */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        writer.addMemberTree(memberSummaryTree, memberTree);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public Content getPropertyDetailsTreeHeader(ClassDoc classDoc,
             Content memberDetailsTree) {
         memberDetailsTree.addContent(HtmlConstants.START_OF_PROPERTY_DETAILS);
@@ -157,6 +164,10 @@
      * {@inheritDoc}
      */
     public Content getPropertyDetails(Content propertyDetailsTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(propertyDetailsTree));
+            return htmlTree;
+        }
         return getMemberTree(propertyDetailsTree);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.io.*;
 import java.util.*;
+
 import com.sun.javadoc.*;
 import com.sun.tools.doclets.formats.html.markup.*;
 import com.sun.tools.doclets.internal.toolkit.*;
@@ -49,6 +50,11 @@
     List<ClassDoc> visibleClasses;
 
     /**
+     * HTML tree for main tag.
+     */
+    private HtmlTree mainTree = HtmlTree.MAIN();
+
+    /**
      * @param configuration the configuration data for the doclet
      * @throws IOException
      * @throws DocletAbortException
@@ -66,14 +72,24 @@
      * @return the body content tree
      */
     public Content getHeader(String header) {
-        Content bodyTree = getBody(true, getWindowTitle(header));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(header));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         Content h1Content = new StringContent(header);
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
                 HtmlStyle.title, h1Content);
         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
-        bodyTree.addContent(div);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(div);
+        } else {
+            bodyTree.addContent(div);
+        }
         return bodyTree;
     }
 
@@ -94,9 +110,14 @@
      * @return the package serialized form header tree
      */
     public Content getPackageSerializedHeader() {
-        HtmlTree li = new HtmlTree(HtmlTag.LI);
-        li.addStyle(HtmlStyle.blockList);
-        return li;
+        HtmlTree htmlTree;
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            htmlTree = HtmlTree.SECTION();
+        } else {
+            htmlTree = new HtmlTree(HtmlTag.LI);
+            htmlTree.addStyle(HtmlStyle.blockList);
+        }
+        return htmlTree;
     }
 
     /**
@@ -211,9 +232,24 @@
      * @return a div content tree
      */
     public Content getSerializedContent(Content serializedTreeContent) {
-        Content divContent = HtmlTree.DIV(HtmlStyle.serializedFormContainer,
+        HtmlTree divContent = HtmlTree.DIV(HtmlStyle.serializedFormContainer,
                 serializedTreeContent);
-        return divContent;
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(divContent);
+            return mainTree;
+        } else {
+            return divContent;
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void addPackageSerializedTree(Content serializedSummariesTree,
+            Content packageSerializedTree) {
+        serializedSummariesTree.addContent((configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.LI(HtmlStyle.blockList, packageSerializedTree)
+                : packageSerializedTree);
     }
 
     /**
@@ -222,8 +258,14 @@
      * @param serializedTree the serialized tree to be added
      */
     public void addFooter(Content serializedTree) {
-        addNavLinks(false, serializedTree);
-        addBottom(serializedTree);
+        Content htmlTree = (configuration.allowTag(HtmlTag.FOOTER))
+                ? HtmlTree.FOOTER()
+                : serializedTree;
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            serializedTree.addContent(htmlTree);
+        }
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -89,9 +89,15 @@
      */
     protected void generateIndexFile() throws IOException {
         String title = configuration.getText("doclet.Window_Single_Index");
-        Content body = getBody(true, getWindowTitle(title));
-        addTop(body);
-        addNavLinks(true, body);
+        HtmlTree body = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : body;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            body.addContent(htmlTree);
+        }
         HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
         divTree.addStyle(HtmlStyle.contentContainer);
         addLinksForIndexes(divTree);
@@ -100,9 +106,17 @@
             addContents(unicode, indexbuilder.getMemberList(unicode), divTree);
         }
         addLinksForIndexes(divTree);
-        body.addContent(divTree);
-        addNavLinks(false, body);
-        addBottom(body);
+        body.addContent((configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN(divTree)
+                : divTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            htmlTree = HtmlTree.FOOTER();
+        }
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
         printHtmlDocument(null, true, body);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -176,7 +176,7 @@
             }
             addBlankLines(pre);
             Content div = HtmlTree.DIV(HtmlStyle.sourceContainer, pre);
-            body.addContent(div);
+            body.addContent((configuration.allowTag(HtmlTag.MAIN)) ? HtmlTree.MAIN(div) : div);
             writeToFile(body, outputdir.resolve(DocPath.forClass(cd)));
         } catch (IOException e) {
             e.printStackTrace();
@@ -190,7 +190,9 @@
      * @param path the path for the file.
      */
     private void writeToFile(Content body, DocPath path) throws IOException {
-        Content htmlDocType = DocType.TRANSITIONAL;
+        Content htmlDocType = configuration.isOutputHtml5()
+                ? DocType.HTML5
+                : DocType.TRANSITIONAL;
         Content head = new HtmlTree(HtmlTag.HEAD);
         head.addContent(HtmlTree.TITLE(new StringContent(
                 configuration.getText("doclet.Window_Source_title"))));
@@ -262,8 +264,8 @@
      */
     private void addLine(Content pre, String line, int currentLineNo) {
         if (line != null) {
-            pre.addContent(utils.replaceTabs(configuration, line));
-            Content anchor = HtmlTree.A_NAME("line." + Integer.toString(currentLineNo));
+            Content anchor = HtmlTree.A_ID("line." + Integer.toString(currentLineNo),
+                    new StringContent(utils.replaceTabs(configuration, line)));
             pre.addContent(anchor);
             pre.addContent(NEW_LINE);
         }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -116,17 +116,29 @@
     protected void generateIndexFile(Character unicode) throws IOException {
         String title = configuration.getText("doclet.Window_Split_Index",
                 unicode.toString());
-        Content body = getBody(true, getWindowTitle(title));
-        addTop(body);
-        addNavLinks(true, body);
+        HtmlTree body = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : body;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            body.addContent(htmlTree);
+        }
         HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
         divTree.addStyle(HtmlStyle.contentContainer);
         addLinksForIndexes(divTree);
         addContents(unicode, indexbuilder.getMemberList(unicode), divTree);
         addLinksForIndexes(divTree);
-        body.addContent(divTree);
-        addNavLinks(false, body);
-        addBottom(body);
+        body.addContent((configuration.allowTag(HtmlTag.MAIN)) ? HtmlTree.MAIN(divTree) : divTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            htmlTree = HtmlTree.FOOTER();
+        }
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
         printHtmlDocument(null, true, body);
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,6 +55,11 @@
  */
 public abstract class SubWriterHolderWriter extends HtmlDocletWriter {
 
+    /**
+     * The HTML tree for main tag.
+     */
+    protected HtmlTree mainTree = HtmlTree.MAIN();
+
     public SubWriterHolderWriter(ConfigurationImpl configuration, DocPath filename)
             throws IOException {
         super(configuration, filename);
@@ -92,8 +97,9 @@
         else {
             caption = getTableCaption(mw.getCaption());
         }
-        Content table = HtmlTree.TABLE(HtmlStyle.memberSummary, 0, 3, 0,
-                mw.getTableSummary(), caption);
+        Content table = (configuration.isOutputHtml5())
+                ? HtmlTree.TABLE(HtmlStyle.memberSummary, caption)
+                : HtmlTree.TABLE(HtmlStyle.memberSummary, mw.getTableSummary(), caption);
         table.addContent(getSummaryTableHeader(mw.getSummaryTableHeader(cd), "col"));
         for (Content tableContent : tableContents) {
             table.addContent(tableContent);
@@ -261,6 +267,31 @@
     }
 
     /**
+     * Add the class content tree.
+     *
+     * @param contentTree content tree to which the class content will be added
+     * @param classContentTree class content tree which will be added to the content tree
+     */
+    public void addClassContentTree(Content contentTree, Content classContentTree) {
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            mainTree.addContent(classContentTree);
+            contentTree.addContent(mainTree);
+        } else {
+            contentTree.addContent(classContentTree);
+        }
+    }
+
+    /**
+     * Add the annotation content tree.
+     *
+     * @param contentTree content tree to which the annotation content will be added
+     * @param annotationContentTree annotation content tree which will be added to the content tree
+     */
+    public void addAnnotationContentTree(Content contentTree, Content annotationContentTree) {
+        addClassContentTree(contentTree, annotationContentTree);
+    }
+
+    /**
      * Get the member header tree
      *
      * @return a content tree the member header
@@ -272,6 +303,21 @@
     }
 
     /**
+     * Add the member tree.
+     *
+     * @param memberSummaryTree the content tree representing the member summary
+     * @param memberTree the content tree representing the member
+     */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree) {
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            HtmlTree htmlTree = HtmlTree.SECTION(getMemberTree(memberTree));
+            memberSummaryTree.addContent(htmlTree);
+        } else {
+            memberSummaryTree.addContent(getMemberTree(memberTree));
+        }
+    }
+
+    /**
      * Get the member tree
      *
      * @param contentTree the tree used to generate the complete member tree
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -101,22 +101,36 @@
      * Generate the interface hierarchy and class hierarchy.
      */
     public void generateTreeFile() throws IOException {
-        Content body = getTreeHeader();
+        HtmlTree body = getTreeHeader();
         Content headContent = getResource("doclet.Hierarchy_For_All_Packages");
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false,
                 HtmlStyle.title, headContent);
         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
         addPackageTreeLinks(div);
-        body.addContent(div);
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
+                ? HtmlTree.MAIN()
+                : body;
+        htmlTree.addContent(div);
         HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
         divTree.addStyle(HtmlStyle.contentContainer);
         addTree(classtree.baseclasses(), "doclet.Class_Hierarchy", divTree);
         addTree(classtree.baseinterfaces(), "doclet.Interface_Hierarchy", divTree);
         addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree);
         addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree);
-        body.addContent(divTree);
-        addNavLinks(false, body);
-        addBottom(body);
+        htmlTree.addContent(divTree);
+        if (configuration.allowTag(HtmlTag.MAIN)) {
+            body.addContent(htmlTree);
+        }
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            htmlTree = HtmlTree.FOOTER();
+        } else {
+            htmlTree = body;
+        }
+        addNavLinks(false, htmlTree);
+        addBottom(htmlTree);
+        if (configuration.allowTag(HtmlTag.FOOTER)) {
+            body.addContent(htmlTree);
+        }
         printHtmlDocument(null, true, body);
     }
 
@@ -164,11 +178,17 @@
      *
      * @return a content tree for the tree header
      */
-    protected Content getTreeHeader() {
+    protected HtmlTree getTreeHeader() {
         String title = configuration.getText("doclet.Window_Class_Hierarchy");
-        Content bodyTree = getBody(true, getWindowTitle(title));
-        addTop(bodyTree);
-        addNavLinks(true, bodyTree);
+        HtmlTree bodyTree = getBody(true, getWindowTitle(title));
+        HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
+                ? HtmlTree.HEADER()
+                : bodyTree;
+        addTop(htmlTree);
+        addNavLinks(true, htmlTree);
+        if (configuration.allowTag(HtmlTag.HEADER)) {
+            bodyTree.addContent(htmlTree);
+        }
         return bodyTree;
     }
 
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -48,10 +48,13 @@
     public static final DocType TRANSITIONAL =
             new DocType("Transitional", "http://www.w3.org/TR/html4/loose.dtd");
 
+    public static final DocType HTML5 = new DocType();
+
     /**
      * Constructor to construct a DocType object.
      *
      * @param type the doctype to be added
+     * @param dtd the dtd of the doctype
      */
     private DocType(String type, String dtd) {
         docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 " + type +
@@ -59,6 +62,13 @@
     }
 
     /**
+     * Constructor to construct a DocType object.
+     */
+    private DocType() {
+        docType = "<!DOCTYPE HTML>" + DocletConstants.NL;
+    }
+
+    /**
      * This method is not supported by the class.
      *
      * @param content content that needs to be added
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlAttr.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlAttr.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,9 +39,6 @@
  */
 public enum HtmlAttr {
     ALT,
-    BORDER,
-    CELLPADDING,
-    CELLSPACING,
     CLASS,
     CLEAR,
     COLS,
@@ -53,6 +50,7 @@
     NAME,
     ONLOAD,
     REL,
+    ROLE,
     ROWS,
     SCOPE,
     SCROLLING,
@@ -65,6 +63,25 @@
 
     private final String value;
 
+    public enum Role {
+
+        BANNER,
+        CONTENTINFO,
+        MAIN,
+        NAVIGATION,
+        REGION;
+
+        private final String role;
+
+        Role() {
+            role = StringUtils.toLowerCase(name());
+        }
+
+        public String toString() {
+            return role;
+        }
+    }
+
     HtmlAttr() {
         this.value = StringUtils.toLowerCase(name());
     }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -307,11 +307,13 @@
      *
      * @param title Title of this HTML document
      * @param configuration the configuration object
-     * @param frame the frame content tree to be added to the HTML document
+     * @param body the body content tree to be added to the HTML document
      */
     public void printFramesDocument(String title, ConfigurationImpl configuration,
             HtmlTree body) throws IOException {
-        Content htmlDocType = DocType.TRANSITIONAL;
+        Content htmlDocType = configuration.isOutputHtml5()
+                ? DocType.HTML5
+                : DocType.TRANSITIONAL;
         Content htmlComment = new Comment(configuration.getText("doclet.New_Page"));
         Content head = new HtmlTree(HtmlTag.HEAD);
         head.addContent(getGeneratedBy(!configuration.notimestamp));
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java	Mon Apr 27 09:17:39 2015 -0700
@@ -44,6 +44,7 @@
     blockList,
     blockListLast,
     bottomNav,
+    circle,
     classUseContainer,
     colFirst,
     colLast,
@@ -64,7 +65,7 @@
     horizontal,
     footer,
     indexContainer,
-    indexHeader,
+    indexNav,
     inheritance,
     interfaceName,
     leftContainer,
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTag.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTag.java	Mon Apr 27 09:17:39 2015 -0700
@@ -43,15 +43,16 @@
     BODY(BlockType.OTHER, EndTag.END),
     BR(BlockType.INLINE, EndTag.NOEND),
     CAPTION,
-    CENTER,
+    CENTER(HtmlVersion.HTML4),
     CODE(BlockType.INLINE, EndTag.END),
     DD,
-    DIR,
+    DIR(HtmlVersion.HTML4),
     DIV,
     DL,
     DT,
     EM(BlockType.INLINE, EndTag.END),
-    FONT(BlockType.INLINE, EndTag.END),
+    FONT(HtmlVersion.HTML4, BlockType.INLINE, EndTag.END),
+    FOOTER(HtmlVersion.HTML5),
     H1,
     H2,
     H3,
@@ -59,6 +60,7 @@
     H5,
     H6,
     HEAD(BlockType.OTHER, EndTag.END),
+    HEADER(HtmlVersion.HTML5),
     HR(BlockType.BLOCK, EndTag.NOEND),
     HTML(BlockType.OTHER, EndTag.END),
     I(BlockType.INLINE, EndTag.END),
@@ -67,14 +69,16 @@
     LI,
     LISTING,
     LINK(BlockType.OTHER, EndTag.NOEND),
+    MAIN(HtmlVersion.HTML5),
     MENU,
     META(BlockType.OTHER, EndTag.NOEND),
-    NOFRAMES(BlockType.OTHER, EndTag.END),
+    NAV(HtmlVersion.HTML5),
     NOSCRIPT(BlockType.OTHER, EndTag.END),
     OL,
     P,
     PRE,
     SCRIPT(BlockType.OTHER, EndTag.END),
+    SECTION(HtmlVersion.HTML5),
     SMALL(BlockType.INLINE, EndTag.END),
     SPAN(BlockType.INLINE, EndTag.END),
     STRONG(BlockType.INLINE, EndTag.END),
@@ -85,12 +89,13 @@
     TH,
     TITLE(BlockType.OTHER, EndTag.END),
     TR,
-    TT(BlockType.INLINE, EndTag.END),
+    TT(HtmlVersion.HTML4, BlockType.INLINE, EndTag.END),
     UL;
 
     public final BlockType blockType;
     public final EndTag endTag;
     public final String value;
+    public final HtmlVersion htmlVersion;
 
     /**
      * Enum representing the type of HTML element.
@@ -110,10 +115,19 @@
     }
 
     HtmlTag() {
-        this(BlockType.BLOCK, EndTag.END);
+        this(HtmlVersion.ALL, BlockType.BLOCK, EndTag.END);
+    }
+
+    HtmlTag(HtmlVersion htmlVersion) {
+        this(htmlVersion, BlockType.BLOCK, EndTag.END);
     }
 
     HtmlTag(BlockType blockType, EndTag endTag ) {
+        this(HtmlVersion.ALL, blockType, endTag);
+    }
+
+    HtmlTag(HtmlVersion htmlVersion, BlockType blockType, EndTag endTag ) {
+        this.htmlVersion = htmlVersion;
         this.blockType = blockType;
         this.endTag = endTag;
         this.value = StringUtils.toLowerCase(name());
@@ -129,6 +143,16 @@
         return (endTag == EndTag.END);
     }
 
+    /**
+     * Returns true if the tag is allowed in the output HTML version of this javadoc run.
+     *
+     * @param htmlVer the output HTML version for this javadoc run
+     * @return true if the tag is allowed
+     */
+    public boolean allowTag(HtmlVersion htmlVer) {
+        return (this.htmlVersion == HtmlVersion.ALL || this.htmlVersion == htmlVer);
+    }
+
     public String toString() {
         return value;
     }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Mon Apr 27 09:17:39 2015 -0700
@@ -32,6 +32,7 @@
 
 import com.sun.tools.doclets.internal.toolkit.Content;
 import com.sun.tools.doclets.internal.toolkit.util.*;
+import com.sun.tools.doclets.formats.html.markup.HtmlAttr.Role;
 
 /**
  * Class for generating HTML tree for javadoc output.
@@ -87,6 +88,10 @@
         addAttr(HtmlAttr.TITLE, stripHtml(body));
     }
 
+    public void setRole(Role role) {
+        addAttr(HtmlAttr.ROLE, role.toString());
+    }
+
     /**
      * Adds a style for the HTML tag.
      *
@@ -221,31 +226,20 @@
     }
 
     /**
-     * Generates an HTML anchor tag with name attribute and content.
+     * Generates an HTML anchor tag with id attribute and content.
      *
-     * @param name name for the anchor tag
+     * @param id id for the anchor tag
      * @param body content for the anchor tag
      * @return an HtmlTree object
      */
-    public static HtmlTree A_NAME(String name, Content body) {
-        HtmlTree htmltree = HtmlTree.A_NAME(name);
+    public static HtmlTree A_ID(String id, Content body) {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.A);
+        htmltree.addAttr(HtmlAttr.ID, nullCheck(id));
         htmltree.addContent(nullCheck(body));
         return htmltree;
     }
 
     /**
-     * Generates an HTML anchor tag with name attribute.
-     *
-     * @param name name for the anchor tag
-     * @return an HtmlTree object
-     */
-    public static HtmlTree A_NAME(String name) {
-        HtmlTree htmltree = new HtmlTree(HtmlTag.A);
-        htmltree.addAttr(HtmlAttr.NAME, nullCheck(name));
-        return htmltree;
-    }
-
-    /**
      * Generates a CAPTION tag with some content.
      *
      * @param body content for the tag
@@ -326,18 +320,24 @@
     }
 
     /**
-     * Generates a IFRAME tag.
+     * Generates a FOOTER tag with role attribute.
      *
-     * @param src the url of the document to be shown in the frame
-     * @param name specifies the name of the frame
-     * @param title the title for the frame
-     * @return an HtmlTree object for the IFRAME tag
+     * @return an HtmlTree object for the FOOTER tag
      */
-    public static HtmlTree IFRAME(String src, String name, String title) {
-        HtmlTree htmltree = new HtmlTree(HtmlTag.IFRAME);
-        htmltree.addAttr(HtmlAttr.SRC, nullCheck(src));
-        htmltree.addAttr(HtmlAttr.NAME, nullCheck(name));
-        htmltree.addAttr(HtmlAttr.TITLE, nullCheck(title));
+    public static HtmlTree FOOTER() {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.FOOTER);
+        htmltree.setRole(Role.CONTENTINFO);
+        return htmltree;
+    }
+
+    /**
+     * Generates a HEADER tag with role attribute.
+     *
+     * @return an HtmlTree object for the HEADER tag
+     */
+    public static HtmlTree HEADER() {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.HEADER);
+        htmltree.setRole(Role.BANNER);
         return htmltree;
     }
 
@@ -414,6 +414,22 @@
     }
 
     /**
+     * Generates a IFRAME tag.
+     *
+     * @param src the url of the document to be shown in the frame
+     * @param name specifies the name of the frame
+     * @param title the title for the frame
+     * @return an HtmlTree object for the IFRAME tag
+     */
+    public static HtmlTree IFRAME(String src, String name, String title) {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.IFRAME);
+        htmltree.addAttr(HtmlAttr.SRC, nullCheck(src));
+        htmltree.addAttr(HtmlAttr.NAME, nullCheck(name));
+        htmltree.addAttr(HtmlAttr.TITLE, nullCheck(title));
+        return htmltree;
+    }
+
+    /**
      * Generates a LI tag with some content.
      *
      * @param body content for the tag
@@ -456,6 +472,44 @@
     }
 
     /**
+     * Generates a MAIN tag with role attribute.
+     *
+     * @return an HtmlTree object for the MAIN tag
+     */
+    public static HtmlTree MAIN() {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.MAIN);
+        htmltree.setRole(Role.MAIN);
+        return htmltree;
+    }
+
+    /**
+     * Generates a MAIN tag with role attribute and some content.
+     *
+     * @param body content of the MAIN tag
+     * @return an HtmlTree object for the MAIN tag
+     */
+    public static HtmlTree MAIN(Content body) {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.MAIN, nullCheck(body));
+        htmltree.setRole(Role.MAIN);
+        return htmltree;
+    }
+
+    /**
+     * Generates a MAIN tag with role attribute, style attribute and some content.
+     *
+     * @param styleClass style of the MAIN tag
+     * @param body content of the MAIN tag
+     * @return an HtmlTree object for the MAIN tag
+     */
+    public static HtmlTree MAIN(HtmlStyle styleClass, Content body) {
+        HtmlTree htmltree = HtmlTree.MAIN(body);
+        if (styleClass != null) {
+            htmltree.addStyle(styleClass);
+        }
+        return htmltree;
+    }
+
+    /**
      * Generates a META tag with the http-equiv, content and charset attributes.
      *
      * @param httpEquiv http equiv attribute for the META tag
@@ -486,6 +540,17 @@
     }
 
     /**
+     * Generates a NAV tag with the role attribute.
+     *
+     * @return an HtmlTree object for the NAV tag
+     */
+    public static HtmlTree NAV() {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.NAV);
+        htmltree.setRole(Role.NAVIGATION);
+        return htmltree;
+    }
+
+    /**
      * Generates a NOSCRIPT tag with some content.
      *
      * @param body content of the noscript tag
@@ -527,10 +592,43 @@
      * @param src the path for the script
      * @return an HtmlTree object for the SCRIPT tag
      */
-    public static HtmlTree SCRIPT(String type, String src) {
+    public static HtmlTree SCRIPT(String src) {
+        HtmlTree htmltree = HtmlTree.SCRIPT();
+        htmltree.addAttr(HtmlAttr.SRC, nullCheck(src));
+        return htmltree;
+    }
+
+    /**
+     * Generates a SCRIPT tag with the type attribute.
+     *
+     * @return an HtmlTree object for the SCRIPT tag
+     */
+    public static HtmlTree SCRIPT() {
         HtmlTree htmltree = new HtmlTree(HtmlTag.SCRIPT);
-        htmltree.addAttr(HtmlAttr.TYPE, nullCheck(type));
-        htmltree.addAttr(HtmlAttr.SRC, nullCheck(src));
+        htmltree.addAttr(HtmlAttr.TYPE, "text/javascript");
+        return htmltree;
+    }
+
+    /**
+     * Generates a SECTION tag with role attribute.
+     *
+     * @return an HtmlTree object for the SECTION tag
+     */
+    public static HtmlTree SECTION() {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.SECTION);
+        htmltree.setRole(Role.REGION);
+        return htmltree;
+    }
+
+    /**
+     * Generates a SECTION tag with role attribute and some content.
+     *
+     * @param body content of the section tag
+     * @return an HtmlTree object for the SECTION tag
+     */
+    public static HtmlTree SECTION(Content body) {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.SECTION, nullCheck(body));
+        htmltree.setRole(Role.REGION);
         return htmltree;
     }
 
@@ -587,30 +685,37 @@
     }
 
     /**
-     * Generates a Table tag with style class, border, cell padding,
-     * cellspacing and summary attributes and some content.
+     * Generates a Table tag with style class and summary attributes and some content.
      *
      * @param styleClass style of the table
-     * @param border border for the table
-     * @param cellPadding cell padding for the table
-     * @param cellSpacing cell spacing for the table
      * @param summary summary for the table
      * @param body content for the table
      * @return an HtmlTree object for the TABLE tag
      */
-    public static HtmlTree TABLE(HtmlStyle styleClass, int border, int cellPadding,
-            int cellSpacing, String summary, Content body) {
+    public static HtmlTree TABLE(HtmlStyle styleClass, String summary, Content body) {
         HtmlTree htmltree = new HtmlTree(HtmlTag.TABLE, nullCheck(body));
         if (styleClass != null)
             htmltree.addStyle(styleClass);
-        htmltree.addAttr(HtmlAttr.BORDER, Integer.toString(border));
-        htmltree.addAttr(HtmlAttr.CELLPADDING, Integer.toString(cellPadding));
-        htmltree.addAttr(HtmlAttr.CELLSPACING, Integer.toString(cellSpacing));
         htmltree.addAttr(HtmlAttr.SUMMARY, nullCheck(summary));
         return htmltree;
     }
 
     /**
+     * Generates a Table tag with style class attribute and some content.
+     *
+     * @param styleClass style of the table
+     * @param body content for the table
+     * @return an HtmlTree object for the TABLE tag
+     */
+    public static HtmlTree TABLE(HtmlStyle styleClass, Content body) {
+        HtmlTree htmltree = new HtmlTree(HtmlTag.TABLE, nullCheck(body));
+        if (styleClass != null) {
+            htmltree.addStyle(styleClass);
+        }
+        return htmltree;
+    }
+
+    /**
      * Generates a TD tag with style class attribute and some content.
      *
      * @param styleClass style for the tag
@@ -741,7 +846,7 @@
     public boolean isValid() {
         switch (htmlTag) {
             case A :
-                return (hasAttr(HtmlAttr.NAME) || (hasAttr(HtmlAttr.HREF) && hasContent()));
+                return (hasAttr(HtmlAttr.ID) || (hasAttr(HtmlAttr.HREF) && hasContent()));
             case BR :
                 return (!hasContent() && (!hasAttrs() || hasAttr(HtmlAttr.CLEAR)));
             case IFRAME :
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlVersion.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.tools.doclets.formats.html.markup;
+
+/**
+ * Enum representing the version of HTML generated by javadoc.
+ *
+ * @author Bhavesh Patel
+ */
+public enum HtmlVersion {
+    HTML4,
+    HTML5,
+    ALL
+}
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -306,9 +306,8 @@
      * @return an HtmlTree for the SCRIPT tag
      */
     protected HtmlTree getWinTitleScript(){
-        HtmlTree script = new HtmlTree(HtmlTag.SCRIPT);
+        HtmlTree script = HtmlTree.SCRIPT();
         if(winTitle != null && winTitle.length() > 0) {
-            script.addAttr(HtmlAttr.TYPE, "text/javascript");
             String scriptCode = "<!--" + DocletConstants.NL +
                     "    try {" + DocletConstants.NL +
                     "        if (location.href.indexOf('is-external=true') == -1) {" + DocletConstants.NL +
@@ -377,8 +376,7 @@
      * @return a content for the SCRIPT tag
      */
     protected Content getFramesJavaScript() {
-        HtmlTree script = new HtmlTree(HtmlTag.SCRIPT);
-        script.addAttr(HtmlAttr.TYPE, "text/javascript");
+        HtmlTree script = HtmlTree.SCRIPT();
         String scriptCode = DocletConstants.NL +
                 "    targetPage = \"\" + window.location.search;" + DocletConstants.NL +
                 "    if (targetPage != \"\" && targetPage != \"undefined\")" + DocletConstants.NL +
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties	Mon Apr 27 09:17:39 2015 -0700
@@ -192,6 +192,8 @@
 \  -windowtitle <text>              Browser window title for the documentation\n\
 \  -doctitle <html-code>            Include title for the overview page\n\
 \  -header <html-code>              Include header text for each page\n\
+\  -html4                           Generate HTML 4.01 output\n\
+\  -html5                           Generate HTML 5 output\n\
 \  -footer <html-code>              Include footer text for each page\n\
 \  -top    <html-code>              Include top text for each page\n\
 \  -bottom <html-code>              Include bottom text for each page\n\
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -111,6 +111,14 @@
     public Content getMemberTreeHeader();
 
     /**
+     * Add the annotation content tree to the documentation content tree.
+     *
+     * @param contentTree content tree to which the annotation content will be added
+     * @param annotationContentTree annotation content tree which will be added to the content tree
+     */
+    public void addAnnotationContentTree(Content contentTree, Content annotationContentTree);
+
+    /**
      * Get the member tree.
      *
      * @param memberTree the content tree that will be modified and returned
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -176,6 +176,14 @@
     public Content getMemberTreeHeader();
 
     /**
+     * Add the class content tree.
+     *
+     * @param contentTree content tree to which the class content will be added
+     * @param classContentTree class content tree which will be added to the content tree
+     */
+    public void addClassContentTree(Content contentTree, Content classContentTree);
+
+    /**
      * Add the footer of the page.
      *
      * @param contentTree content tree to which the footer will be added
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,12 +81,12 @@
         Set<String> WriteedPackageHeaders, Content contentListTree);
 
     /**
-     * Get the content list to be added to the documentation tree.
+     * Add the content list to the documentation tree.
      *
+     * @param contentTree the tree to which the contents list will be added
      * @param contentListTree the content that will be added to the list
-     * @return content list that will be added to the documentation tree
      */
-    public abstract Content getContentsList(Content contentListTree);
+    public abstract void addContentsList(Content contentTree, Content contentListTree);
 
     /**
      * Get the constant summaries for the document.
@@ -98,16 +98,15 @@
     /**
      * Adds the given package name.
      *
-     * @param pkg the {@link PackageDoc} to index.
      * @param parsedPackageName the parsed package name.  We only Write the
      *                          first 2 directory levels of the package
      *                          name. For example, java.lang.ref would be
      *                          indexed as java.lang.*.
-     * @param summariesTree the documentation tree to which the package name will
+     * @param summariesTree the summaries documentation tree
+     * @param first true if the first package is listed
      *                    be written
      */
-    public abstract void addPackageName(PackageDoc pkg,
-        String parsedPackageName, Content summariesTree);
+    public abstract void addPackageName(String parsedPackageName, Content summariesTree, boolean first);
 
     /**
      * Get the class summary header for the constants summary.
@@ -117,6 +116,14 @@
     public abstract Content getClassConstantHeader();
 
     /**
+     * Add the content list to the documentation summaries tree.
+     *
+     * @param summariesTree the tree to which the class constants list will be added
+     * @param classConstantTree the class constant tree that will be added to the list
+     */
+    public abstract void addClassConstant(Content summariesTree, Content classConstantTree);
+
+    /**
      * Adds the constant member table to the documentation tree.
      *
      * @param cd the class whose constants are being documented.
@@ -128,6 +135,14 @@
             Content classConstantTree);
 
     /**
+     * Add the summaries list to the content tree.
+     *
+     * @param contentTree the tree to which the summaries list will be added
+     * @param summariesTree the summaries content tree that will be added to the list
+     */
+    public abstract void addConstantSummaries(Content contentTree, Content summariesTree);
+
+    /**
      * Adds the footer for the summary documentation.
      *
      * @param contentTree content tree to which the footer will be added
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -100,14 +100,22 @@
     /**
      * Get inherited summary links.
      *
-     * @return a content tree conatining the inherited summary links
+     * @return a content tree containing the inherited summary links
      */
     public Content getInheritedSummaryLinksTree();
 
     /**
+     * Add the member tree to the member summary tree.
+     *
+     * @param memberSummaryTree the content tree representing the member summary
+     * @param memberTree the content tree representing the member
+     */
+    public void addMemberTree(Content memberSummaryTree, Content memberTree);
+
+    /**
      * Get the member tree.
      *
-     * @param memberTree the content tree representating the member
+     * @param memberTree the content tree representing the member
      * @return a content tree for the member
      */
     public Content getMemberTree(Content memberTree);
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -97,6 +97,15 @@
     public abstract void addPackageTags(Content packageContentTree);
 
     /**
+     * Adds the tag information from the "packages.html" or "package-info.java" file to the
+     * documentation tree.
+     *
+     * @param contentTree the content tree to which the package content tree will be added
+     * @param packageContentTree the package content tree to be added
+     */
+    public abstract void addPackageContent(Content contentTree, Content packageContentTree);
+
+    /**
      * Adds the footer to the documentation tree.
      *
      * @param contentTree the tree to which the footer will be added
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfilePackageSummaryWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfilePackageSummaryWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,6 +95,15 @@
     public abstract void addPackageTags(Content packageContentTree);
 
     /**
+     * Adds the tag information from the "packages.html" or "package-info.java" file to the
+     * documentation tree.
+     *
+     * @param contentTree the content tree to which the package content tree will be added
+     * @param packageContentTree the package content tree to be added
+     */
+    public abstract void addPackageContent(Content contentTree, Content packageContentTree);
+
+    /**
      * Adds the footer to the documentation tree.
      *
      * @param contentTree the tree to which the footer will be added
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfileSummaryWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfileSummaryWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -99,6 +99,14 @@
             String tableSummary, String[] tableHeader, Content packageSummaryContentTree);
 
     /**
+     * Adds the profile content tree to the documentation tree.
+     *
+     * @param contentTree the tree to which the profile content tree will be added
+     * @param profileContentTree the content tree that will be added
+     */
+    public abstract void addProfileContent(Content contentTree, Content profileContentTree);
+
+    /**
      * Adds the footer to the documentation tree.
      *
      * @param contentTree the tree to which the footer will be added
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,6 +66,14 @@
     public Content getPackageSerializedHeader();
 
     /**
+     * Add the serialized tree per package to the serialized summaries tree.
+     *
+     * @param serializedSummariesTree the serialized tree to which the package serialized tree will be added
+     * @param packageSerializedTree the serialized tree per package that needs to be added
+     */
+    public void addPackageSerializedTree(Content serializedSummariesTree, Content packageSerializedTree);
+
+    /**
      * Get the given package header.
      *
      * @param packageName the package header to write
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -118,7 +118,7 @@
                 " " + annotationTypeDoc.name());
          Content annotationContentTree = writer.getAnnotationContentHeader();
          buildChildren(node, annotationContentTree);
-         contentTree.addContent(annotationContentTree);
+         writer.addAnnotationContentTree(contentTree, annotationContentTree);
          writer.addFooter(contentTree);
          writer.printDocument(contentTree);
          writer.close();
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -144,7 +144,7 @@
                  classDoc.name());
          Content classContentTree = writer.getClassContentHeader();
          buildChildren(node, classContentTree);
-         contentTree.addContent(classContentTree);
+         writer.addClassContentTree(contentTree, classContentTree);
          writer.addFooter(contentTree);
          writer.printDocument(contentTree);
          writer.close();
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,11 @@
     private Content contentTree;
 
     /**
+     * True if first package is listed.
+     */
+    private boolean first = true;
+
+    /**
      * Construct a new ConstantsSummaryBuilder.
      *
      * @param context       the build context.
@@ -159,7 +164,7 @@
                                                printedPackageHeaders, contentListTree);
             }
         }
-        contentTree.addContent(writer.getContentsList(contentListTree));
+        writer.addContentsList(contentTree, contentListTree);
     }
 
     /**
@@ -176,9 +181,10 @@
                 currentPackage = aPackage;
                 //Build the documentation for the current package.
                 buildChildren(node, summariesTree);
+                first = false;
             }
         }
-        contentTree.addContent(summariesTree);
+        writer.addConstantSummaries(contentTree, summariesTree);
     }
 
     /**
@@ -190,8 +196,7 @@
     public void buildPackageHeader(XMLNode node, Content summariesTree) {
         String parsedPackageName = parsePackageName(currentPackage.name());
         if (! printedPackageHeaders.contains(parsedPackageName)) {
-            writer.addPackageName(currentPackage,
-                parsePackageName(currentPackage.name()), summariesTree);
+            writer.addPackageName(parsePackageName(currentPackage.name()), summariesTree, first);
             printedPackageHeaders.add(parsedPackageName);
         }
     }
@@ -218,7 +223,7 @@
             //Build the documentation for the current class.
             buildChildren(node, classConstantTree);
         }
-        summariesTree.addContent(classConstantTree);
+        writer.addClassConstant(summariesTree, classConstantTree);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -524,7 +524,7 @@
             for (Content aSummaryTreeList : summaryTreeList) {
                 memberTree.addContent(aSummaryTreeList);
             }
-            memberSummaryTree.addContent(writer.getMemberTree(memberTree));
+            writer.addMemberTree(memberSummaryTree, memberTree);
         }
     }
 }
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -137,7 +137,7 @@
     public void buildContent(XMLNode node, Content contentTree) {
         Content packageContentTree = packageWriter.getContentHeader();
         buildChildren(node, packageContentTree);
-        contentTree.addContent(packageContentTree);
+        packageWriter.addPackageContent(contentTree, packageContentTree);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ProfilePackageSummaryBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ProfilePackageSummaryBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -153,7 +153,7 @@
     public void buildContent(XMLNode node, Content contentTree) {
         Content packageContentTree = profilePackageWriter.getContentHeader();
         buildChildren(node, packageContentTree);
-        contentTree.addContent(packageContentTree);
+        profilePackageWriter.addPackageContent(contentTree, packageContentTree);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ProfileSummaryBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ProfileSummaryBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -142,7 +142,7 @@
     public void buildContent(XMLNode node, Content contentTree) {
         Content profileContentTree = profileWriter.getContentHeader();
         buildChildren(node, profileContentTree);
-        contentTree.addContent(profileContentTree);
+        profileWriter.addProfileContent(contentTree, profileContentTree);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -190,7 +190,7 @@
             return;
         }
         buildChildren(node, packageSerializedTree);
-        serializedSummariesTree.addContent(packageSerializedTree);
+        writer.addPackageSerializedTree(serializedSummariesTree, packageSerializedTree);
     }
 
     /**
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css	Mon Apr 27 09:17:39 2015 -0700
@@ -214,14 +214,20 @@
     margin:0 20px;
     padding:5px 0 0 0;
 }
-.indexHeader {
+.indexNav {
     margin:10px;
     position:relative;
 }
-.indexHeader span{
-    margin-right:15px;
+.indexNav ul {
+    padding:0;
+    margin:0;
 }
-.indexHeader h1 {
+.indexNav ul li {
+    display:inline;
+    list-style-type:none;
+    padding-right:10px;
+}
+.indexNav h1 {
     font-size:13px;
 }
 .title {
@@ -314,6 +320,9 @@
 /*
 List styles
 */
+li.circle {
+    list-style:circle;
+}
 ul.horizontal li {
     display:inline;
     font-size:0.9em;
@@ -370,6 +379,7 @@
 */
 .overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
     width:100%;
+    border-spacing:0;
     border-left:1px solid #EEE; 
     border-right:1px solid #EEE; 
     border-bottom:1px solid #EEE; 
@@ -638,3 +648,9 @@
     overflow:visible;
     margin-bottom:30px;
 }
+/*
+HTML5 specific styles
+*/
+main, nav, header, footer, section {
+    display:block;
+}
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/DocEnv.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/DocEnv.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -814,7 +814,7 @@
         return result;
     }
 
-    void initDoclint(Collection<String> opts, Collection<String> customTagNames) {
+    void initDoclint(Collection<String> opts, Collection<String> customTagNames, String htmlVersion) {
         ArrayList<String> doclintOpts = new ArrayList<>();
 
         for (String opt: opts) {
@@ -836,6 +836,7 @@
             sep = DocLint.SEPARATOR;
         }
         doclintOpts.add(DocLint.XCUSTOM_TAGS_PREFIX + customTags.toString());
+        doclintOpts.add(DocLint.XHTML_VERSION_PREFIX + htmlVersion);
 
         JavacTask t = BasicJavacTask.instance(context);
         doclint = new DocLint();
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/RootDocImpl.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/RootDocImpl.java	Mon Apr 27 09:17:39 2015 -0700
@@ -377,8 +377,9 @@
         return env.fileManager;
     }
 
-    public void initDocLint(Collection<String> opts, Collection<String> customTagNames) {
-        env.initDoclint(opts, customTagNames);
+    public void initDocLint(Collection<String> opts, Collection<String> customTagNames,
+            String htmlVersion) {
+        env.initDoclint(opts, customTagNames, htmlVersion);
     }
 
     public boolean isFunctionalInterface(AnnotationDesc annotationDesc) {
--- a/langtools/test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,14 +49,14 @@
         checkOutput("p1/C1.html", true,
                 // Top navbar <a href>
                 "<a href=\"#skip.navbar.top\" title=\"Skip navigation links\">Skip navigation links</a>",
-                // Top navbar <a name>
-                "<a name=\"skip.navbar.top\">\n"
+                // Top navbar <a id>
+                "<a id=\"skip.navbar.top\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 // Bottom navbar <a href>
                 "<a href=\"#skip.navbar.bottom\" title=\"Skip navigation links\">Skip navigation links</a>",
-                // Bottom navbar <a name>
-                "<a name=\"skip.navbar.bottom\">\n"
+                // Bottom navbar <a id>
+                "<a id=\"skip.navbar.bottom\">\n"
                 + "<!--   -->\n"
                 + "</a>");
 
--- a/langtools/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,15 +53,15 @@
 
         // Test some section markers and links to these markers
         checkOutput("pkg1/RegClass.html", true,
-                "<a name=\"skip.navbar.top\">",
+                "<a id=\"skip.navbar.top\">",
                 "<a href=\"#skip.navbar.top\" title=\"Skip navigation links\">",
-                "<a name=\"nested.class.summary\">",
+                "<a id=\"nested.class.summary\">",
                 "<a href=\"#nested.class.summary\">",
-                "<a name=\"method.summary\">",
+                "<a id=\"method.summary\">",
                 "<a href=\"#method.summary\">",
-                "<a name=\"field.detail\">",
+                "<a id=\"field.detail\">",
                 "<a href=\"#field.detail\">",
-                "<a name=\"constructor.detail\">",
+                "<a id=\"constructor.detail\">",
                 "<a href=\"#constructor.detail\">");
 
         // Test some members and link to these members
@@ -72,59 +72,59 @@
 
         // Test some fields
         checkOutput("pkg1/RegClass.html", true,
-                "<a name=\"Z:Z_\">",
+                "<a id=\"Z:Z_\">",
                 "<a href=\"../pkg1/RegClass.html#Z:Z_\">",
-                "<a name=\"Z:Z_:D\">",
+                "<a id=\"Z:Z_:D\">",
                 "<a href=\"../pkg1/RegClass.html#Z:Z_:D\">",
-                "<a name=\"Z:Z:D_\">",
+                "<a id=\"Z:Z:D_\">",
                 "<a href=\"../pkg1/RegClass.html#Z:Z:D_\">",
-                "<a name=\"Z:Z:Dfield\">",
+                "<a id=\"Z:Z:Dfield\">",
                 "<a href=\"../pkg1/RegClass.html#Z:Z:Dfield\">",
-                "<a name=\"fieldInCla:D:D\">",
+                "<a id=\"fieldInCla:D:D\">",
                 "<a href=\"../pkg1/RegClass.html#fieldInCla:D:D\">",
-                "<a name=\"S_:D:D:D:D:DINT\">",
+                "<a id=\"S_:D:D:D:D:DINT\">",
                 "<a href=\"../pkg1/RegClass.html#S_:D:D:D:D:DINT\">",
-                "<a name=\"method:D:D\">",
+                "<a id=\"method:D:D\">",
                 "<a href=\"../pkg1/RegClass.html#method:D:D\">");
 
         checkOutput("pkg1/DeprMemClass.html", true,
-                "<a name=\"Z:Z_field_In_Class\">",
+                "<a id=\"Z:Z_field_In_Class\">",
                 "<a href=\"../pkg1/DeprMemClass.html#Z:Z_field_In_Class\">");
 
         // Test constructor
         checkOutput("pkg1/RegClass.html", true,
-                "<a name=\"RegClass-java.lang.String-int-\">",
+                "<a id=\"RegClass-java.lang.String-int-\">",
                 "<a href=\"../pkg1/RegClass.html#RegClass-java.lang.String-int-\">");
 
         // Test some methods
         checkOutput("pkg1/RegClass.html", true,
-                "<a name=\"Z:Z_methodInClass-java.lang.String-\">",
+                "<a id=\"Z:Z_methodInClass-java.lang.String-\">",
                 "<a href=\"../pkg1/RegClass.html#Z:Z_methodInClass-java.lang.String-\">",
-                "<a name=\"method--\">",
+                "<a id=\"method--\">",
                 "<a href=\"../pkg1/RegClass.html#method--\">",
-                "<a name=\"foo-java.util.Map-\">",
+                "<a id=\"foo-java.util.Map-\">",
                 "<a href=\"../pkg1/RegClass.html#foo-java.util.Map-\">",
-                "<a name=\"methodInCla:Ds-java.lang.String:A-\">",
+                "<a id=\"methodInCla:Ds-java.lang.String:A-\">",
                 "<a href=\"../pkg1/RegClass.html#methodInCla:Ds-java.lang.String:A-\">",
-                "<a name=\"Z:Z_methodInClas:D-java.lang.String-int-\">",
+                "<a id=\"Z:Z_methodInClas:D-java.lang.String-int-\">",
                 "<a href=\"../pkg1/RegClass.html#Z:Z_methodInClas:D-java.lang.String-int-\">",
-                "<a name=\"methodD-pkg1.RegClass.:DA-\">",
+                "<a id=\"methodD-pkg1.RegClass.:DA-\">",
                 "<a href=\"../pkg1/RegClass.html#methodD-pkg1.RegClass.:DA-\">",
-                "<a name=\"methodD-pkg1.RegClass.D:A-\">",
+                "<a id=\"methodD-pkg1.RegClass.D:A-\">",
                 "<a href=\"../pkg1/RegClass.html#methodD-pkg1.RegClass.D:A-\">");
 
         checkOutput("pkg1/DeprMemClass.html", true,
-                "<a name=\"Z:Z:Dmethod_In_Class--\">",
+                "<a id=\"Z:Z:Dmethod_In_Class--\">",
                 "<a href=\"../pkg1/DeprMemClass.html#Z:Z:Dmethod_In_Class--\">");
 
         // Test enum
         checkOutput("pkg1/RegClass.Te$t_Enum.html", true,
-                "<a name=\"Z:Z:DFLD2\">",
+                "<a id=\"Z:Z:DFLD2\">",
                 "<a href=\"../pkg1/RegClass.Te$t_Enum.html#Z:Z:DFLD2\">");
 
         // Test nested class
         checkOutput("pkg1/RegClass._NestedClas$.html", true,
-                "<a name=\"Z:Z_NestedClas:D--\">",
+                "<a id=\"Z:Z_NestedClas:D--\">",
                 "<a href=\"../pkg1/RegClass._NestedClas$.html#Z:Z_NestedClas:D--\">");
 
         // Test class use page
@@ -143,11 +143,11 @@
         // Test serialized form page
         checkOutput("serialized-form.html", true,
                 //This is the marker for the link that appears in the pkg1.RegClass.html page
-                "<a name=\"pkg1.RegClass\">");
+                "<a id=\"pkg1.RegClass\">");
 
         // Test member name index page
         checkOutput("index-all.html", true,
-                "<a name=\"I:Z:Z:D\">",
+                "<a id=\"I:Z:Z:D\">",
                 "<a href=\"#I:Z:Z:D\">$",
                 "<a href=\"#I:Z:Z_\">_");
 
--- a/langtools/test/com/sun/javadoc/testAnnotationOptional/TestAnnotationOptional.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testAnnotationOptional/TestAnnotationOptional.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,6 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/AnnotationOptional.html", true,
-            "<a name=\"annotation.type.element.detail\">");
+            "<a id=\"annotation.type.element.detail\">");
     }
 }
--- a/langtools/test/com/sun/javadoc/testClassTree/TestClassTree.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testClassTree/TestClassTree.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,22 +50,22 @@
 
         checkOutput("pkg/package-tree.html", true,
                 "<ul>\n"
-                + "<li type=\"circle\">pkg.<a href=\"../pkg/ParentClass.html\" "
+                + "<li class=\"circle\">pkg.<a href=\"../pkg/ParentClass.html\" "
                 + "title=\"class in pkg\"><span class=\"typeNameLink\">ParentClass</span></a>",
                 "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>\n"
                 + "<ul>\n"
-                + "<li type=\"circle\">pkg.<a href=\"../pkg/AnnotationType.html\" "
+                + "<li class=\"circle\">pkg.<a href=\"../pkg/AnnotationType.html\" "
                 + "title=\"annotation in pkg\"><span class=\"typeNameLink\">AnnotationType</span></a> "
                 + "(implements java.lang.annotation.Annotation)</li>\n"
                 + "</ul>",
                 "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>\n"
                 + "<ul>\n"
-                + "<li type=\"circle\">java.lang.Object\n"
+                + "<li class=\"circle\">java.lang.Object\n"
                 + "<ul>\n"
-                + "<li type=\"circle\">java.lang.Enum&lt;E&gt; (implements java.lang."
+                + "<li class=\"circle\">java.lang.Enum&lt;E&gt; (implements java.lang."
                 + "Comparable&lt;T&gt;, java.io.Serializable)\n"
                 + "<ul>\n"
-                + "<li type=\"circle\">pkg.<a href=\"../pkg/Coin.html\" "
+                + "<li class=\"circle\">pkg.<a href=\"../pkg/Coin.html\" "
                 + "title=\"enum in pkg\"><span class=\"typeNameLink\">Coin</span></a></li>\n"
                 + "</ul>\n"
                 + "</li>\n"
@@ -74,7 +74,7 @@
                 + "</ul>");
 
         checkOutput("pkg/package-tree.html", false,
-                "<li type=\"circle\">class pkg.<a href=\"../pkg/ParentClass.html\" "
+                "<li class=\"circle\">class pkg.<a href=\"../pkg/ParentClass.html\" "
                 + "title=\"class in pkg\"><span class=\"typeNameLink\">ParentClass</span></a></li>");
     }
 }
--- a/langtools/test/com/sun/javadoc/testConstructors/TestConstructors.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testConstructors/TestConstructors.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,21 +58,21 @@
                 + "<a href=\"../pkg1/Outer.Inner.NestedInner.html#NestedInner-int-\"><code>"
                 + "NestedInner(int)</code></a>",
                 "<a href=\"../pkg1/Outer.html#Outer--\">Outer</a></span>()",
-                "<a name=\"Outer--\">",
+                "<a id=\"Outer--\">",
                 "<a href=\"../pkg1/Outer.html#Outer-int-\">Outer</a></span>(int&nbsp;i)",
-                "<a name=\"Outer-int-\">");
+                "<a id=\"Outer-int-\">");
 
         checkOutput("pkg1/Outer.Inner.html", true,
                 "<a href=\"../pkg1/Outer.Inner.html#Inner--\">Inner</a></span>()",
-                "<a name=\"Inner--\">",
+                "<a id=\"Inner--\">",
                 "<a href=\"../pkg1/Outer.Inner.html#Inner-int-\">Inner</a></span>(int&nbsp;i)",
-                "<a name=\"Inner-int-\">");
+                "<a id=\"Inner-int-\">");
 
         checkOutput("pkg1/Outer.Inner.NestedInner.html", true,
                 "<a href=\"../pkg1/Outer.Inner.NestedInner.html#NestedInner--\">NestedInner</a></span>()",
-                "<a name=\"NestedInner--\">",
+                "<a id=\"NestedInner--\">",
                 "<a href=\"../pkg1/Outer.Inner.NestedInner.html#NestedInner-int-\">NestedInner</a></span>(int&nbsp;i)",
-                "<a name=\"NestedInner-int-\">");
+                "<a id=\"NestedInner-int-\">");
 
         checkOutput("pkg1/Outer.Inner.html", false,
                 "Outer.Inner--",
--- a/langtools/test/com/sun/javadoc/testHref/TestHref.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testHref/TestHref.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,11 +53,11 @@
                 //Member summary table link.
                 "href=\"../pkg/C1.html#method-int-int-java.util.ArrayList-\"",
                 //Anchor test.
-                "<a name=\"method-int-int-java.util.ArrayList-\">\n"
+                "<a id=\"method-int-int-java.util.ArrayList-\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 //Backward compatibility anchor test."pkg/C1.html",
-                "<a name=\"method-int-int-java.util.ArrayList-\">\n"
+                "<a id=\"method-int-int-java.util.ArrayList-\">\n"
                 + "<!--   -->\n"
                 + "</a>");
 
--- a/langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -113,7 +113,7 @@
         // Test another version of A tag.
         HtmlTree anchor = new HtmlTree(HtmlTag.A);
         anchor.addAttr(HtmlAttr.HREF, "testLink.html");
-        anchor.addAttr(HtmlAttr.NAME, "Another version of a tag");
+        anchor.addAttr(HtmlAttr.ID, "Another version of a tag");
         p1.addContent(anchor);
         body.addContent(p1);
         // Test for empty tags.
--- a/langtools/test/com/sun/javadoc/testHtmlDocument/testMarkup.html	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testHtmlDocument/testMarkup.html	Mon Apr 27 09:17:39 2015 -0700
@@ -9,7 +9,7 @@
 <body>
 <!-- ======== START OF PARAGRAPH ======== -->
 <p>This document is generated from sample source code and HTML files with examples of a wide variety of Java language constructs: packages, subclasses, subinterfaces, nested classes, nested interfaces,inheriting from other packages, constructors, fields,methods, and so forth. <a href="testLink.html">Click Here</a> to &lt;test&gt; out a link.</p>
-<p><a href="testLink.html" name="Another version of a tag"></a></p>
+<p><a href="testLink.html" id="Another version of a tag"></a></p>
 <dl>
 <dd>Test DD</dd>
 </dl>
--- a/langtools/test/com/sun/javadoc/testHtmlTableStyles/TestHtmlTableStyles.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testHtmlTableStyles/TestHtmlTableStyles.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,37 +48,30 @@
 
         checkOutput("pkg1/TestTable.html", true,
                 "<table summary=\"Summary\" border cellpadding=3 cellspacing=1>",
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Field Summary table, listing fields, "
+                "<table class=\"memberSummary\" summary=\"Field Summary table, listing fields, "
                 + "and an explanation\">",
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Constructor Summary table, listing "
+                "<table class=\"memberSummary\" summary=\"Constructor Summary table, listing "
                 + "constructors, and an explanation\">",
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Method Summary table, listing methods, "
+                "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, "
                 + "and an explanation\">");
 
         checkOutput("pkg1/package-summary.html", true,
-                "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Class Summary table, listing classes, "
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, "
                 + "and an explanation\">");
 
         checkOutput("pkg1/class-use/TestTable.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Use table, listing fields, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing fields, and an explanation\">");
 
         checkOutput("overview-summary.html", true,
-                "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Packages table, listing packages, and an explanation\">");
+                "<table class=\"overviewSummary\" "
+                + "summary=\"Packages table, listing packages, and an explanation\">");
 
         checkOutput("deprecated-list.html", true,
-            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" " +
-            "cellspacing=\"0\" summary=\"Deprecated Methods table, listing " +
+            "<table class=\"deprecatedSummary\" summary=\"Deprecated Methods table, listing " +
             "deprecated methods, and an explanation\">");
 
         checkOutput("constant-values.html", true,
-            "<table class=\"constantsSummary\" border=\"0\" cellpadding=\"3\" " +
-            "cellspacing=\"0\" summary=\"Constant Field Values table, listing " +
+            "<table class=\"constantsSummary\" summary=\"Constant Field Values table, listing " +
             "constant fields, and values\">");
     }
 }
--- a/langtools/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,111 +63,85 @@
     void checkHtmlTableSummaries() {
         //Package summary
         checkOutput("pkg1/package-summary.html", true,
-                "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\""
-                + " cellspacing=\"0\" summary=\"Class Summary table, "
+                "<table class=\"typeSummary\" summary=\"Class Summary table, "
                 + "listing classes, and an explanation\">",
-                "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\""
-                + " cellspacing=\"0\" summary=\"Interface Summary table, "
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, "
                 + "listing interfaces, and an explanation\">");
 
         checkOutput("pkg2/package-summary.html", true,
-                "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\""
-                + " cellspacing=\"0\" summary=\"Enum Summary table, "
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, "
                 + "listing enums, and an explanation\">",
-                "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\""
-                + " cellspacing=\"0\" summary=\"Annotation Types Summary table, "
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, "
                 + "listing annotation types, and an explanation\">");
 
         // Class documentation
         checkOutput("pkg1/C1.html", true,
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Field Summary table, listing fields, "
+                "<table class=\"memberSummary\" summary=\"Field Summary table, listing fields, "
                 + "and an explanation\">",
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Method Summary table, listing methods, "
+                "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, "
                 + "and an explanation\">");
 
         checkOutput("pkg2/C2.html", true,
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Nested Class Summary table, listing "
+                "<table class=\"memberSummary\" summary=\"Nested Class Summary table, listing "
                 + "nested classes, and an explanation\">",
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Constructor Summary table, listing "
+                "<table class=\"memberSummary\" summary=\"Constructor Summary table, listing "
                 + "constructors, and an explanation\">");
 
         checkOutput("pkg2/C2.ModalExclusionType.html", true,
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Enum Constant Summary table, listing "
+                "<table class=\"memberSummary\" summary=\"Enum Constant Summary table, listing "
                 + "enum constants, and an explanation\">");
 
         checkOutput("pkg2/C3.html", true,
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Required Element Summary table, "
+                "<table class=\"memberSummary\" summary=\"Required Element Summary table, "
                 + "listing required elements, and an explanation\">");
 
         checkOutput("pkg2/C4.html", true,
-                "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Optional Element Summary table, "
+                "<table class=\"memberSummary\" summary=\"Optional Element Summary table, "
                 + "listing optional elements, and an explanation\">");
 
         // Class use documentation
         checkOutput("pkg1/class-use/I1.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing packages, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">");
 
         checkOutput("pkg1/class-use/C1.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing fields, and an explanation\">",
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing methods, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing fields, and an explanation\">",
+                "<table class=\"useSummary\" summary=\"Use table, listing methods, and an explanation\">");
 
         checkOutput("pkg2/class-use/C2.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing fields, and an explanation\">",
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing methods, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing fields, and an explanation\">",
+                "<table class=\"useSummary\" summary=\"Use table, listing methods, and an explanation\">");
 
         checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing packages, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">");
 
         checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing methods, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing methods, and an explanation\">");
 
         // Package use documentation
         checkOutput("pkg1/package-use.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing packages, and an explanation\">",
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing classes, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">",
+                "<table class=\"useSummary\" summary=\"Use table, listing classes, and an explanation\">");
 
         checkOutput("pkg2/package-use.html", true,
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing packages, and an explanation\">",
-                "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use "
-                + "table, listing classes, and an explanation\">");
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">",
+                "<table class=\"useSummary\" summary=\"Use table, listing classes, and an explanation\">");
 
         // Deprecated
         checkOutput("deprecated-list.html", true,
-                "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
-                + "summary=\"Deprecated Fields table, listing deprecated fields, "
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Fields table, listing deprecated fields, "
                 + "and an explanation\">",
-                "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
-                + "summary=\"Deprecated Methods table, listing deprecated methods, "
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Methods table, listing deprecated methods, "
                 + "and an explanation\">");
 
         // Constant values
         checkOutput("constant-values.html", true,
-                "<table class=\"constantsSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
-                + "summary=\"Constant Field Values table, listing "
+                "<table class=\"constantsSummary\" summary=\"Constant Field Values table, listing "
                 + "constant fields, and values\">");
 
         // Overview Summary
         checkOutput("overview-summary.html", true,
-                "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Packages table, "
-                + "listing packages, and an explanation\">");
+                "<table class=\"overviewSummary\" "
+                + "summary=\"Packages table, listing packages, and an explanation\">");
     }
 
     /*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/TestHtmlVersion.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,2158 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8072945
+ * @summary Test the version of HTML generated by the javadoc tool.
+ * @author bpatel
+ * @library ../lib
+ * @build JavadocTester
+ * @run main TestHtmlVersion
+ */
+
+public class TestHtmlVersion extends JavadocTester {
+
+    public static void main(String... args) throws Exception {
+        TestHtmlVersion tester = new TestHtmlVersion();
+        tester.runTests();
+    }
+
+    @Test
+    void test1() {
+        javadoc("-d", "out-1", "-private", "-linksource", "-html5",
+                "-Xprofilespath", testSrc("profile-rtjar-includes.txt"),
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkExit(Exit.OK);
+
+        html5Output();
+        html5NegatedOutput();
+    }
+
+    @Test
+    void test2() {
+        javadoc("-d", "out-2", "-private", "-linksource", "-html4",
+                "-Xprofilespath", testSrc("profile-rtjar-includes.txt"),
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkExit(Exit.OK);
+
+        html4Output();
+        html4NegatedOutput();
+    }
+
+    @Test
+    void test3() {
+        javadoc("-d", "out-3", "-private", "-linksource",
+                "-Xprofilespath", testSrc("profile-rtjar-includes.txt"),
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkExit(Exit.OK);
+
+        html4Output();
+        html4NegatedOutput();
+    }
+
+    @Test
+    void test4() {
+        javadoc("-d", "out-4", "-private", "-linksource", "-html5",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg3");
+        checkExit(Exit.OK);
+    }
+
+    void html5Output() {
+        // Test for overview-frame page
+        checkOutput("overview-frame.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<nav role=\"navigation\" class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<h2 title=\"Packages\">Packages</h2>");
+
+        // Test for allclasses-frame page
+        checkOutput("allclasses-frame.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Test for allclasses-noframe page
+        checkOutput("allclasses-noframe.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Test for profile-overview-frame page
+        checkOutput("profile-overview-frame.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<nav role=\"navigation\" class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<h2 title=\"Profiles\">Profiles</h2>");
+
+        // Test for <profile-name>-frame page
+        checkOutput("compact1-frame.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<nav role=\"navigation\" class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<h2 title=\"compact1\"><a href=\"compact1-summary.html\" target=\"classFrame\">compact1</a>&nbsp;Packages</h2>");
+
+        // Test for overview-summary page
+        checkOutput("overview-summary.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"overviewSummary\">\n"
+                + "<caption>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<div>\n"
+                + "<h2>Profiles</h2>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for package-frame page
+        checkOutput("pkg/package-frame.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\">\n"
+                + "<h1 class=\"bar\"><a href=\"../pkg/package-summary.html\" target=\"classFrame\">pkg</a></h1>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interfaces\">Interfaces</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Classes\">Classes</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enums\">Enums</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Exceptions\">Exceptions</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Errors\">Errors</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Types\">Annotation Types</h2>");
+
+        // Test for package-summary page
+        checkOutput("pkg/package-summary.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Package pkg Description\">Package pkg Description</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for package-tree page
+        checkOutput("pkg/package-tree.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<li class=\"circle\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for package-use page
+        checkOutput("pkg1/package-use.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"useSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for <profile-name>-package-frame page
+        checkOutput("pkg/compact1-package-frame.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\">\n"
+                + "<h1 class=\"bar\"><a href=\"../compact1-summary.html\" target=\"classFrame\">"
+                + "compact1</a> - <a href=\"../pkg/compact1-package-summary.html\" target=\"classFrame\">pkg</a></h1>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interfaces\">Interfaces</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Classes\">Classes</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enums\">Enums</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Exceptions\">Exceptions</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Errors\">Errors</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Types\">Annotation Types</h2>");
+
+        // Test for <profile-name>-package-summary page
+        checkOutput("pkg/compact1-package-summary.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Package pkg Description\">Package pkg Description</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for <profile-name>-summary page
+        checkOutput("compact1-summary.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<section role=\"region\">\n"
+                + "<h3><a href=\"pkg/compact1-package-summary.html\" target=\"classFrame\">pkg</a></h3>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for constant-values page
+        checkOutput("constant-values.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"constantsSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Contents\">Contents</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"pkg\">pkg.*</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for deprecated-list page
+        checkOutput("deprecated-list.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"deprecatedSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for serialized-form page
+        checkOutput("serialized-form.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Package\">Package&nbsp;pkg</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for overview-tree page
+        checkOutput("overview-tree.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<li class=\"circle\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for index-all page
+        checkOutput("index-all.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "</header>\n"
+                + "<main role=\"main\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for src-html page
+        checkOutput("src-html/pkg/AnotherClass.html", true,
+                "<!DOCTYPE HTML>",
+                "<main role=\"main\">\n"
+                + "<div class=\"sourceContainer\">");
+
+        // Test for help-doc page
+        checkOutput("help-doc.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2>Overview</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2>Package</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2>Class/Interface</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for a regular class page and members (nested class, field, constructore and method)
+        checkOutput("pkg/AnotherClass.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"nested.class.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Nested Class Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"field.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"field.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Detail</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for enum page
+        checkOutput("pkg/AnotherClass.ModalExclusionType.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"enum.constant.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"enum.constant.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Detail</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for interface page
+        checkOutput("pkg2/Interface.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for error page
+        checkOutput("pkg/TestError.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for exception page
+        checkOutput("pkg/TestException.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for annotation page
+        checkOutput("pkg2/TestAnnotationType.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"annotation.type.required.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Required Element Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"annotation.type.optional.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Optional Element Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"annotation.type.element.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Element Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for class use page
+        checkOutput("pkg1/class-use/RegClass.html", true,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<table class=\"useSummary\">",
+                "<section role=\"region\"><a id=\"pkg\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Uses of <a href=\"../../pkg1/RegClass.html\" title=\"class in pkg1\">RegClass</a> in <a href=\"../../pkg/package-summary.html\">pkg</a></h3>\n"
+                + "<table class=\"useSummary\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Test for main index page
+        checkOutput("index.html", true,
+                "<!DOCTYPE HTML>",
+                "<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\" title=\"Style\">",
+                "<body>\n"
+                + "<main role=\"main\">\n"
+                + "<div class=\"mainContainer\">\n"
+                + "<div class=\"leftContainer\">\n"
+                + "<div class=\"leftTop\">\n"
+                + "<iframe src=\"overview-frame.html\" name=\"packageListFrame\" title=\"All Packages\"></iframe>\n"
+                + "</div>");
+    }
+
+    void html5NegatedOutput() {
+        // Negated test for overview-frame page
+        checkOutput("overview-frame.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Packages\">Packages</h2>");
+
+        // Negated test for allclasses-frame page
+        checkOutput("allclasses-frame.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Negated test for allclasses-noframe page
+        checkOutput("allclasses-noframe.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Negated test for profile-overview-frame page
+        checkOutput("profile-overview-frame.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Profiles\">Profiles</h2>");
+
+        // Negated test for <profile-name>-frame page
+        checkOutput("compact1-frame.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"compact1\"><a href=\"compact1-summary.html\" target=\"classFrame\">compact1</a>&nbsp;Packages</h2>");
+
+        // Negated test for overview-summary page
+        checkOutput("overview-summary.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"overviewSummary\" summary=\"Packages table, listing packages, and an explanation\">\n"
+                + "<caption>",
+                "</noscript>\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<div>\n"
+                + "<h2>Profiles</h2>");
+
+        // Negated test for package-frame page
+        checkOutput("pkg/package-frame.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<body>\n"
+                + "<h1 class=\"bar\"><a href=\"../pkg/package-summary.html\" target=\"classFrame\">pkg</a></h1>");
+
+        // Negated test for package-summary page
+        checkOutput("pkg/package-summary.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, listing enums, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Exception Summary table, listing exceptions, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">");
+
+        // Negated test for package-tree page
+        checkOutput("pkg/package-tree.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+
+        // Negated test for package-use page
+        checkOutput("pkg1/package-use.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">");
+
+        // Negated test for <profile-name>-package-frame page
+        checkOutput("pkg/compact1-package-frame.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<body>\n"
+                + "<h1 class=\"bar\"><a href=\"../compact1-summary.html\" target=\"classFrame\">"
+                + "compact1</a> - <a href=\"../pkg/compact1-package-summary.html\" target=\"classFrame\">pkg</a></h1>");
+
+        // Negated test for <profile-name>-package-summary page
+        checkOutput("pkg/compact1-package-summary.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, listing enums, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Exception Summary table, listing exceptions, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">");
+
+        // Negated test for <profile-name>-summary page
+        checkOutput("compact1-summary.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, listing enums, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Exception Summary table, listing exceptions, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">");
+
+        // Negated test for constant-values page
+        checkOutput("constant-values.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<table class=\"constantsSummary\" summary=\"Constant Field Values table, listing constant fields, and values\">");
+
+        // Negated test for deprecated-list page
+        checkOutput("deprecated-list.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">\n"
+                + "<h1 title=\"Deprecated API\" class=\"title\">Deprecated API</h1>\n"
+                + "<h2 title=\"Contents\">Contents</h2>",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Classes table, listing deprecated classes, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Enums table, listing deprecated enums, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Exceptions table, listing deprecated exceptions, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Errors table, listing deprecated errors, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Annotation Types table, listing deprecated annotation types, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Fields table, listing deprecated fields, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Methods table, listing deprecated methods, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Constructors table, listing deprecated constructors, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Enum Constants table, listing deprecated enum constants, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Annotation Type Elements table, listing deprecated annotation type elements, and an explanation\">");
+
+        // Negated test for serialized-form page
+        checkOutput("serialized-form.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<li class=\"blockList\">\n"
+                + "<h2 title=\"Package\">Package&nbsp;pkg</h2>");
+
+        // Negated test for overview-tree page
+        checkOutput("overview-tree.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<div class=\"contentContainer\">\n"
+                + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>",
+                "</ul>\n"
+                + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>",
+                "</ul>\n"
+                + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>");
+
+        // Negated test for index-all page
+        checkOutput("index-all.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"contentContainer\">");
+
+        // Negated test for src-html page
+        checkOutput("src-html/pkg/AnotherClass.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<body>\n"
+                + "<div class=\"sourceContainer\">");
+
+        // Negated test for help-doc page
+        checkOutput("help-doc.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h2>Overview</h2>",
+                "<li class=\"blockList\">\n"
+                + "<h2>Package</h2>",
+                "<li class=\"blockList\">\n"
+                + "<h2>Class/Interface</h2>");
+
+        // Negated test for a regular class page and members (nested class, field, constructore and method)
+        checkOutput("pkg/AnotherClass.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ======== NESTED CLASS SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"nested.class.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Nested Class Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Nested Class Summary table, listing nested classes, and an explanation\">",
+                "<!-- =========== FIELD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"field.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Field Summary table, listing fields, and an explanation\">",
+                "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Constructor Summary table, listing constructors, and an explanation\">",
+                "<!-- ========== METHOD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, and an explanation\">",
+                "<!-- ============ FIELD DETAIL =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"field.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Detail</h3>",
+                "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<!-- ============ METHOD DETAIL ========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>");
+
+        // Negated test for enum page
+        checkOutput("pkg/AnotherClass.ModalExclusionType.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- =========== ENUM CONSTANT SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"enum.constant.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Enum Constant Summary table, listing enum constants, and an explanation\">",
+                "<!-- ========== METHOD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, and an explanation\">",
+                "<!-- ============ ENUM CONSTANT DETAIL =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"enum.constant.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Detail</h3>",
+                "<!-- ============ METHOD DETAIL ========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>");
+
+        // Negated test for interface page
+        checkOutput("pkg2/Interface.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ========== METHOD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, and an explanation\">",
+                "<!-- ============ METHOD DETAIL ========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>");
+
+        // Negated test for error page
+        checkOutput("pkg/TestError.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>");
+
+        // Negated test for exception page
+        checkOutput("pkg/TestException.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>");
+
+        // Negated test for annotation page
+        checkOutput("pkg2/TestAnnotationType.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"annotation.type.required.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Required Element Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Required Element Summary table, listing required elements, and an explanation\">",
+                "<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"annotation.type.optional.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Optional Element Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Optional Element Summary table, listing optional elements, and an explanation\">",
+                "<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Element Detail</h3>");
+
+        // Negated test for class use page
+        checkOutput("pkg1/class-use/RegClass.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">",
+                "<li class=\"blockList\"><a name=\"pkg\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Uses of <a href=\"../../pkg1/RegClass.html\" title=\"class in pkg1\">RegClass</a> in <a href=\"../../pkg/package-summary.html\">pkg</a></h3>\n"
+                + "<table class=\"useSummary\" summary=\"Use table, listing fields, and an explanation\">");
+
+        // Negated test for main index page
+        checkOutput("index.html", false,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<body>\n"
+                + "<div class=\"mainContainer\">\n");
+    }
+
+    void html4Output() {
+        // Test for overview-frame page
+        checkOutput("overview-frame.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Packages\">Packages</h2>");
+
+        // Test for allclasses-frame page
+        checkOutput("allclasses-frame.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Test for allclasses-noframe page
+        checkOutput("allclasses-noframe.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Test for profile-overview-frame page
+        checkOutput("profile-overview-frame.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Profiles\">Profiles</h2>");
+
+        // Test for <profile-name>-frame page
+        checkOutput("compact1-frame.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<div class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"compact1\"><a href=\"compact1-summary.html\" target=\"classFrame\">compact1</a>&nbsp;Packages</h2>");
+
+        // Test for overview-summary page
+        checkOutput("overview-summary.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"overviewSummary\" summary=\"Packages table, listing packages, and an explanation\">\n"
+                + "<caption>",
+                "</noscript>\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<div class=\"contentContainer\">\n"
+                + "<div>\n"
+                + "<h2>Profiles</h2>");
+
+        // Test for package-frame page
+        checkOutput("pkg/package-frame.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<body>\n"
+                + "<h1 class=\"bar\"><a href=\"../pkg/package-summary.html\" target=\"classFrame\">pkg</a></h1>");
+
+        // Test for package-summary page
+        checkOutput("pkg/package-summary.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, listing enums, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Exception Summary table, listing exceptions, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">");
+
+        // Test for package-tree page
+        checkOutput("pkg/package-tree.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<li class=\"circle\">");
+
+        // Test for package-use page
+        checkOutput("pkg1/package-use.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">");
+
+        // Test for <profile-name>-package-frame page
+        checkOutput("pkg/compact1-package-frame.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<body>\n"
+                + "<h1 class=\"bar\"><a href=\"../compact1-summary.html\" target=\"classFrame\">"
+                + "compact1</a> - <a href=\"../pkg/compact1-package-summary.html\" target=\"classFrame\">pkg</a></h1>");
+
+        // Test for <profile-name>-package-summary page
+        checkOutput("pkg/compact1-package-summary.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, listing enums, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Exception Summary table, listing exceptions, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">");
+
+        // Test for <profile-name>-summary page
+        checkOutput("compact1-summary.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Enum Summary table, listing enums, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Exception Summary table, listing exceptions, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">",
+                "<table class=\"typeSummary\" summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">");
+
+        // Test for constant-values page
+        checkOutput("constant-values.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<table class=\"constantsSummary\" summary=\"Constant Field Values table, listing constant fields, and values\">");
+
+        // Test for deprecated-list page
+        checkOutput("deprecated-list.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">\n"
+                + "<h1 title=\"Deprecated API\" class=\"title\">Deprecated API</h1>\n"
+                + "<h2 title=\"Contents\">Contents</h2>",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Classes table, listing deprecated classes, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Enums table, listing deprecated enums, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Exceptions table, listing deprecated exceptions, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Errors table, listing deprecated errors, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Annotation Types table, listing deprecated annotation types, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Fields table, listing deprecated fields, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Methods table, listing deprecated methods, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Constructors table, listing deprecated constructors, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Enum Constants table, listing deprecated enum constants, and an explanation\">",
+                "<table class=\"deprecatedSummary\" summary=\"Deprecated Annotation Type Elements table, listing deprecated annotation type elements, and an explanation\">");
+
+        // Test for serialized-form page
+        checkOutput("serialized-form.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<li class=\"blockList\">\n"
+                + "<h2 title=\"Package\">Package&nbsp;pkg</h2>");
+
+        // Test for overview-tree page
+        checkOutput("overview-tree.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<li class=\"circle\">",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<h1 class=\"title\">Hierarchy For All Packages</h1>\n"
+                + "<span class=\"packageHierarchyLabel\">Package Hierarchies:</span>",
+                "<div class=\"contentContainer\">\n"
+                + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>",
+                "</ul>\n"
+                + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>",
+                "</ul>\n"
+                + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>");
+
+        // Test for index-all page
+        checkOutput("index-all.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"contentContainer\">");
+
+        // Test for src-html page
+        checkOutput("src-html/pkg/AnotherClass.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<body>\n"
+                + "<div class=\"sourceContainer\">");
+
+        // Test for help-doc page
+        checkOutput("help-doc.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h2>Overview</h2>",
+                "<li class=\"blockList\">\n"
+                + "<h2>Package</h2>",
+                "<li class=\"blockList\">\n"
+                + "<h2>Class/Interface</h2>");
+
+        // Test for a regular class page and members (nested class, field, constructore and method)
+        checkOutput("pkg/AnotherClass.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ======== NESTED CLASS SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"nested.class.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Nested Class Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Nested Class Summary table, listing nested classes, and an explanation\">",
+                "<!-- =========== FIELD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"field.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Field Summary table, listing fields, and an explanation\">",
+                "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Constructor Summary table, listing constructors, and an explanation\">",
+                "<!-- ========== METHOD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, and an explanation\">",
+                "<!-- ============ FIELD DETAIL =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"field.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Detail</h3>",
+                "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<!-- ============ METHOD DETAIL ========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>");
+
+        // Test for enum page
+        checkOutput("pkg/AnotherClass.ModalExclusionType.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- =========== ENUM CONSTANT SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"enum.constant.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Enum Constant Summary table, listing enum constants, and an explanation\">",
+                "<!-- ========== METHOD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, and an explanation\">",
+                "<!-- ============ ENUM CONSTANT DETAIL =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"enum.constant.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Detail</h3>",
+                "<!-- ============ METHOD DETAIL ========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>");
+
+        // Test for interface page
+        checkOutput("pkg2/Interface.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ========== METHOD SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Method Summary table, listing methods, and an explanation\">",
+                "<!-- ============ METHOD DETAIL ========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>");
+
+        // Test for error page
+        checkOutput("pkg/TestError.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>");
+
+        // Test for exception page
+        checkOutput("pkg/TestException.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>");
+
+        // Test for annotation page
+        checkOutput("pkg2/TestAnnotationType.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ======== START OF CLASS DATA ======== -->\n"
+                + "<div class=\"header\">",
+                "<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"annotation.type.required.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Required Element Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Required Element Summary table, listing required elements, and an explanation\">",
+                "<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"annotation.type.optional.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Optional Element Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Optional Element Summary table, listing optional elements, and an explanation\">",
+                "<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a id=\"annotation.type.element.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Element Detail</h3>");
+
+        // Test for class use page
+        checkOutput("pkg1/class-use/RegClass.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<meta name=\"date\"",
+                "<a id=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "<div class=\"header\">",
+                "<table class=\"useSummary\" summary=\"Use table, listing packages, and an explanation\">",
+                "<li class=\"blockList\"><a id=\"pkg\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Uses of <a href=\"../../pkg1/RegClass.html\" title=\"class in pkg1\">RegClass</a> in <a href=\"../../pkg/package-summary.html\">pkg</a></h3>\n"
+                + "<table class=\"useSummary\" summary=\"Use table, listing fields, and an explanation\">");
+
+        // Test for main index page
+        checkOutput("index.html", true,
+                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
+                "<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\" title=\"Style\">",
+                "<body>\n"
+                + "<div class=\"mainContainer\">\n"
+                + "<div class=\"leftContainer\">\n"
+                + "<div class=\"leftTop\">\n"
+                + "<iframe src=\"overview-frame.html\" name=\"packageListFrame\" title=\"All Packages\"></iframe>\n"
+                + "</div>");
+    }
+
+    void html4NegatedOutput() {
+        // Negated test for overview-frame page
+        checkOutput("overview-frame.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<nav role=\"navigation\" class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<h2 title=\"Packages\">Packages</h2>");
+
+        // Negated test for allclasses-frame page
+        checkOutput("allclasses-frame.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Negated test for allclasses-noframe page
+        checkOutput("allclasses-noframe.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<ul>\n"
+                + "<li>");
+
+        // Negated test for profile-overview-frame page
+        checkOutput("profile-overview-frame.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<nav role=\"navigation\" class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<h2 title=\"Profiles\">Profiles</h2>");
+
+        // Negated test for <profile-name>-frame page
+        checkOutput("compact1-frame.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<nav role=\"navigation\" class=\"indexNav\">\n"
+                + "<ul>\n"
+                + "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
+                "<main role=\"main\" class=\"indexContainer\">\n"
+                + "<h2 title=\"compact1\"><a href=\"compact1-summary.html\" target=\"classFrame\">compact1</a>&nbsp;Packages</h2>");
+
+        // Negated test for overview-summary page
+        checkOutput("overview-summary.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"overviewSummary\">\n"
+                + "<caption>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<div>\n"
+                + "<h2>Profiles</h2>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for package-frame page
+        checkOutput("pkg/package-frame.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\">\n"
+                + "<h1 class=\"bar\"><a href=\"../pkg/package-summary.html\" target=\"classFrame\">pkg</a></h1>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interfaces\">Interfaces</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Classes\">Classes</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enums\">Enums</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Exceptions\">Exceptions</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Errors\">Errors</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Types\">Annotation Types</h2>");
+
+        // Negated test for package-summary page
+        checkOutput("pkg/package-summary.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Package pkg Description\">Package pkg Description</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for package-tree page
+        checkOutput("pkg/package-tree.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for package-use page
+        checkOutput("pkg1/package-use.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"useSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for <profile-name>-package-frame page
+        checkOutput("pkg/compact1-package-frame.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<main role=\"main\">\n"
+                + "<h1 class=\"bar\"><a href=\"../compact1-summary.html\" target=\"classFrame\">"
+                + "compact1</a> - <a href=\"../pkg/compact1-package-summary.html\" target=\"classFrame\">pkg</a></h1>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interfaces\">Interfaces</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Classes\">Classes</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enums\">Enums</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Exceptions\">Exceptions</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Errors\">Errors</h2>",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Types\">Annotation Types</h2>");
+
+        // Negated test for <profile-name>-package-summary page
+        checkOutput("pkg/compact1-package-summary.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Package pkg Description\">Package pkg Description</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for <profile-name>-summary page
+        checkOutput("compact1-summary.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"typeSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<section role=\"region\">\n"
+                + "<h3><a href=\"pkg/compact1-package-summary.html\" target=\"classFrame\">pkg</a></h3>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for constant-values page
+        checkOutput("constant-values.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"constantsSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Contents\">Contents</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"pkg\">pkg.*</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for deprecated-list page
+        checkOutput("deprecated-list.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<table class=\"deprecatedSummary\">",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for serialized-form page
+        checkOutput("serialized-form.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Package\">Package&nbsp;pkg</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for overview-tree page
+        checkOutput("overview-tree.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for index-all page
+        checkOutput("index-all.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "</header>\n"
+                + "<main role=\"main\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for src-html page
+        checkOutput("src-html/pkg/AnotherClass.html", false,
+                "<!DOCTYPE HTML>",
+                "<main role=\"main\">\n"
+                + "<div class=\"sourceContainer\">");
+
+        // Negated test for help-doc page
+        checkOutput("help-doc.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<h2>Overview</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2>Package</h2>\n",
+                "<section role=\"region\">\n"
+                + "<h2>Class/Interface</h2>\n",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for a regular class page and members (nested class, field, constructore and method)
+        checkOutput("pkg/AnotherClass.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"nested.class.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Nested Class Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"field.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"field.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Field Detail</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for enum page
+        checkOutput("pkg/AnotherClass.ModalExclusionType.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"enum.constant.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"enum.constant.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Enum Constant Detail</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for interface page
+        checkOutput("pkg2/Interface.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"method.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Method Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for error page
+        checkOutput("pkg/TestError.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for exception page
+        checkOutput("pkg/TestException.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Summary</h3>",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"constructor.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Constructor Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for annotation page
+        checkOutput("pkg2/TestAnnotationType.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"annotation.type.required.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Required Element Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"annotation.type.optional.element.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Optional Element Summary</h3>\n"
+                + "<table class=\"memberSummary\">",
+                "<section role=\"region\">\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Element Detail</h3>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for class use page
+        checkOutput("pkg1/class-use/RegClass.html", false,
+                "<!DOCTYPE HTML>",
+                "<meta name=\"dc.created\"",
+                "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ========= START OF TOP NAVBAR ======= -->",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">",
+                "<table class=\"useSummary\">",
+                "<section role=\"region\"><a name=\"pkg\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<h3>Uses of <a href=\"../../pkg1/RegClass.html\" title=\"class in pkg1\">RegClass</a> in <a href=\"../../pkg/package-summary.html\">pkg</a></h3>\n"
+                + "\n"
+                + "<table class=\"useSummary\">",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">\n"
+                + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
+
+        // Negated test for main index page
+        checkOutput("index.html", false,
+                "<!DOCTYPE HTML>",
+                "<body>\n"
+                + "<main role=\"main\">\n"
+                + "<div class=\"mainContainer\">\n");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/AnnotationType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg;
+
+import java.lang.annotation.*;
+
+/**
+ * This is a test annotation type.
+ *
+ * @author Bhavesh Patel.
+ * @since 9
+ */
+@Documented public @interface AnnotationType {
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/AnotherClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg;
+
+import pkg1.*;
+
+/**
+ * Another test class.
+ *
+ * @author Bhavesh Patel
+ */
+public class AnotherClass {
+
+    /**
+     * A test field.
+     */
+    public RegClass field;
+
+    /**
+     * Constant field.
+     */
+    public static final String CONSTANT_FIELD_3 = "constant";
+
+    /**
+     * @deprecated don't use this field anymore.
+     */
+    public RegClass dep_field;
+
+    /**
+     * A sample enum.
+     */
+    public static enum ModalExclusionType {
+        /**
+         * Test comment.
+         */
+        NO_EXCLUDE,
+        /**
+         * Another comment.
+         */
+        APPLICATION_EXCLUDE
+    };
+
+    /**
+     * A string constant.
+     */
+    public static final String CONSTANT1 = "C2";
+
+    /**
+     * A sample method.
+     *
+     * @param param some parameter.
+     * @return a test object.
+     */
+    public Class method(pkg1.RegClass param) {
+        return param;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestError.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg;
+
+/**
+ * Error class.
+ */
+public class TestError extends Error {
+
+    /**
+     * Constructs a test error.
+     */
+    public TestError() {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg;
+
+/**
+ * Thrown when a TestException occurs.
+ */
+public class TestException extends Exception {
+
+    /**
+     * Constructs a {@code TestException} with no detail message.
+     */
+    public TestException() {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestInterface.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg;
+
+/**
+ * This is a description for an Interface.
+ */
+
+public interface TestInterface {
+
+    public void method();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/package-info.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 package.
+ */
+package pkg;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/NestedInnerClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg1;
+
+import java.io.*;
+
+/**
+ * A test class where the outer class is package private and the inner class is private
+ * and a nested inner class is protected.
+ *
+ * @author      Bhavesh Patel
+ */
+
+class NestedInnerClass {
+
+    private static class InnerClass {
+
+        protected static class ProNestedInnerClass implements java.io.Serializable {
+
+            public final int SERIALIZABLE_CONSTANT2 = 1;
+
+            /**
+             * @param s ObjectInputStream.
+             * @throws IOException when there is an I/O error.
+             * @serial
+             */
+            private void readObject(ObjectInputStream s) throws IOException {
+            }
+
+            /**
+             * @param s ObjectOutputStream.
+             * @throws IOException when there is an I/O error.
+             * @serial
+             */
+            private void writeObject(ObjectOutputStream s) throws IOException {
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PrivateIncludeInnerClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg1;
+
+import java.io.*;
+
+/**
+ * A test class where the outer class is package private and inner class
+ * is private which is included using the tag.
+ *
+ * @author      Bhavesh Patel
+ */
+
+class PrivateIncludeInnerClass {
+
+    /**
+     * @serial include
+     */
+    private static class PriInnerClass implements java.io.Serializable {
+
+        public final int SERIALIZABLE_CONSTANT = 1;
+
+        /**
+         * @param s ObjectInputStream.
+         * @throws IOException when there is an I/O error.
+         * @serial
+         */
+        private void readObject(ObjectInputStream s) throws IOException {
+        }
+
+        /**
+         * @param s ObjectOutputStream.
+         * @throws IOException when there is an I/O error.
+         * @serial
+         */
+        private void writeObject(ObjectOutputStream s) throws IOException {
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/ProtectedInnerClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg1;
+
+import java.io.*;
+
+/**
+ * A test class where outer class is package private and the inner class is
+ * protected.
+ *
+ * @author      Bhavesh Patel
+ */
+
+class ProtectedInnerClass {
+
+    protected static class ProInnerClass implements java.io.Serializable {
+
+        public final int SERIALIZABLE_CONSTANT1 = 1;
+
+        /**
+         * @param s ObjectInputStream.
+         * @throws IOException when there is an I/O error.
+         * @serial
+         */
+        private void readObject(ObjectInputStream s) throws IOException {
+        }
+
+        /**
+         * @param s ObjectOutputStream.
+         * @throws IOException when there is an I/O error.
+         * @serial
+         */
+        private void writeObject(ObjectOutputStream s) throws IOException {
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PublicExcludeInnerClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg1;
+
+import java.io.*;
+
+/**
+ * A test class where the outer class is package private and inner class
+ * is public which is excluded using the tag.
+ *
+ * @author      Bhavesh Patel
+ */
+
+class PublicExcludeInnerClass {
+
+    /**
+     * @serial exclude
+     */
+    public static class PubInnerClass implements java.io.Serializable {
+
+        public final int SERIALIZABLE_CONSTANT3 = 1;
+
+        /**
+         * @param s ObjectInputStream.
+         * @throws IOException when there is an I/O error.
+         * @serial
+         */
+        private void readObject(ObjectInputStream s) throws IOException {
+        }
+
+        /**
+         * @param s ObjectOutputStream.
+         * @throws IOException when there is an I/O error.
+         * @serial
+         */
+        private void writeObject(ObjectOutputStream s) throws IOException {
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/RegClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg1;
+
+/**
+ *This is a description for Class.
+ */
+
+public class RegClass {
+
+    /**
+     * Constant field.
+     */
+    public static final String CONSTANT_FIELD_1 = "constant";
+
+    /**
+     * Another constant field.
+     */
+    public static final int CONSTANT_FIELD_2 = 1;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/DeprecatedClassByAnnotation.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+@Deprecated()
+public class DeprecatedClassByAnnotation {
+
+    @Deprecated()
+    public int field;
+
+    @Deprecated()
+    public DeprecatedClassByAnnotation() {}
+
+    @Deprecated()
+    public void method() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/Interface.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+/**
+ * This is a description for an Interface.
+ */
+
+public interface Interface {
+
+    public void method1();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestAnnotationType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+import java.lang.annotation.*;
+
+/**
+ * @deprecated annotation_test1 passes.
+ */
+@Documented public @interface TestAnnotationType {
+
+    /**
+     * @deprecated annotation_test2 passes.
+     */
+    String optional() default "unknown";
+
+   /**
+     * @deprecated annotation_test3 passes.
+     */
+    int required();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestClass.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+/**
+ * @deprecated class_test1 passes.
+ */
+public class TestClass {
+
+    /**
+     * @deprecated class_test2 passes.
+     */
+    public int field;
+
+    /**
+     * @deprecated constant field.
+     */
+    public static final int CONSTANT_FIELD = 2;
+
+    /**
+     * @deprecated class_test3 passes.
+     */
+    public TestClass() {}
+
+    /**
+     * @deprecated class_test4 passes.
+     */
+    public void method() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestEnum.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+/**
+ * @deprecated enum_test1 passes.
+ */
+public enum TestEnum {
+
+    /**
+     * @deprecated enum_test2 passes.
+     */
+    ONE, TWO, THREE;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestError.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+/**
+ * @deprecated error_test1 passes.
+ */
+public class TestError extends Error {
+
+    /**
+     * @deprecated error_test2 passes.
+     */
+    public int field;
+
+    /**
+     * @deprecated error_test3 passes.
+     */
+    public TestError() {}
+
+    /**
+     * @deprecated error_test4 passes.
+     */
+    public void method() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestException.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+/**
+ * @deprecated exception_test1 passes.
+ */
+public class TestException extends Exception {
+
+    /**
+     * @deprecated exception_test2 passes.
+     */
+    public int field;
+
+    /**
+     * @deprecated exception_test3 passes.
+     */
+    public TestException() {}
+
+    /**
+     * @deprecated exception_test4 passes.
+     */
+    public void method() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestInterface.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg2;
+
+/**
+ * @deprecated interface_test1 passes.
+ */
+public class TestInterface {
+
+    /**
+     * @deprecated interface_test2 passes.
+     */
+    public int field;
+
+    /**
+     * @deprecated interface_test3 passes.
+     */
+    public TestInterface() {}
+
+    /**
+     * @deprecated interface_test4 passes.
+     */
+    public void method() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg3/ClassNoConstants.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 pkg3;
+
+/**
+ * This is an empty class specifically testing for no Constant value.
+ */
+
+public class ClassNoConstants {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlVersion/profile-rtjar-includes.txt	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,30 @@
+PROFILE_1_RTJAR_INCLUDE_PACKAGES := \
+    pkg
+
+PROFILE_1_RTJAR_INCLUDE_TYPES := \
+    pkg1/Class.class
+
+PROFILE_1_RTJAR_EXCLUDE_TYPES := 
+
+PROFILE_1_INCLUDE_METAINF_SERVICES := 
+
+
+PROFILE_2_RTJAR_INCLUDE_PACKAGES := \
+    pkg1
+
+PROFILE_2_RTJAR_INCLUDE_TYPES := 
+
+PROFILE_2_RTJAR_EXCLUDE_TYPES := 
+
+PROFILE_2_INCLUDE_METAINF_SERVICES := 
+
+
+PROFILE_3_RTJAR_INCLUDE_PACKAGES := \
+    pkg2
+
+PROFILE_3_RTJAR_INCLUDE_TYPES := 
+
+PROFILE_3_RTJAR_EXCLUDE_TYPES := 
+
+PROFILE_3_INCLUDE_METAINF_SERVICES := 
+
--- a/langtools/test/com/sun/javadoc/testJavaFX/TestJavaFX.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testJavaFX/TestJavaFX.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -99,11 +99,11 @@
                 "pkg2");
         checkExit(Exit.OK);
         checkOutput("pkg2/Test.html", true,
-                "<li class=\"blockList\"><a name=\"property.detail\">\n"
+                "<li class=\"blockList\"><a id=\"property.detail\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
                 + "<h3>Property Detail</h3>\n"
-                + "<a name=\"betaProperty\">\n"
+                + "<a id=\"betaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
                 + "<ul class=\"blockList\">\n"
@@ -112,7 +112,7 @@
                 + "<pre>public&nbsp;java.lang.Object betaProperty</pre>\n"
                 + "</li>\n"
                 + "</ul>\n"
-                + "<a name=\"gammaProperty\">\n"
+                + "<a id=\"gammaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
                 + "<ul class=\"blockList\">\n"
@@ -122,7 +122,7 @@
                 + "java.lang.String&gt; gammaProperty</pre>\n"
                 + "</li>\n"
                 + "</ul>\n"
-                + "<a name=\"deltaProperty\">\n"
+                + "<a id=\"deltaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
                 + "<ul class=\"blockListLast\">\n"
--- a/langtools/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
         checkExit(Exit.OK);
 
         checkOutput("serialized-form.html", true,
-                "<a name=\"pkg.C\">");
+                "<a id=\"pkg.C\">");
         checkOutput("pkg/C.html", true,
                 "<a href=\"../serialized-form.html#pkg.C\">");
     }
--- a/langtools/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,9 +58,9 @@
 
         // Legacy anchor dimensions (6290760)
         checkOutput("pkg2/A.html", true,
-                "<a name=\"f-java.lang.Object:A-\">\n"
+                "<a id=\"f-java.lang.Object:A-\">\n"
                 + "<!--   -->\n"
-                + "</a><a name=\"f-T:A-\">\n"
+                + "</a><a id=\"f-T:A-\">\n"
                 + "<!--   -->\n"
                 + "</a>");
     }
--- a/langtools/test/com/sun/javadoc/testNavigation/TestNavigation.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testNavigation/TestNavigation.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,7 +63,7 @@
                 "<li>Next&nbsp;Class</li>",
                 // Test for 4664607
                 "<div class=\"skipNav\"><a href=\"#skip.navbar.top\" title=\"Skip navigation links\">Skip navigation links</a></div>\n"
-                + "<a name=\"navbar.top.firstrow\">\n"
+                + "<a id=\"navbar.top.firstrow\">\n"
                 + "<!--   -->\n"
                 + "</a>");
     }
--- a/langtools/test/com/sun/javadoc/testProfiles/TestProfiles.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testProfiles/TestProfiles.java	Mon Apr 27 09:17:39 2015 -0700
@@ -47,16 +47,16 @@
 
         // Tests for profile-overview-frame.html listing all profiles.
         checkOutput("profile-overview-frame.html", true,
-                "<span><a href=\"overview-frame.html\" "
-                + "target=\"packageListFrame\">All&nbsp;Packages</a></span>",
+                "<li><a href=\"overview-frame.html\" "
+                + "target=\"packageListFrame\">All&nbsp;Packages</a></li>",
                 "<li><a href=\"compact1-frame.html\" target=\"packageListFrame\">"
                 + "compact1</a></li>");
 
         // Tests for profileName-frame.html listing all packages in a profile.
         checkOutput("compact2-frame.html", true,
-                "<span><a href=\"overview-frame.html\" target=\"packageListFrame\">"
-                + "All&nbsp;Packages</a></span><span><a href=\"profile-overview-frame.html\" "
-                + "target=\"packageListFrame\">All&nbsp;Profiles</a></span>",
+                "<li><a href=\"overview-frame.html\" target=\"packageListFrame\">"
+                + "All&nbsp;Packages</a></li>\n<li><a href=\"profile-overview-frame.html\" "
+                + "target=\"packageListFrame\">All&nbsp;Profiles</a></li>",
                 "<li><a href=\"pkg4/compact2-package-frame.html\" "
                 + "target=\"packageFrame\">pkg4</a></li>");
 
@@ -78,15 +78,13 @@
                 + "<li class=\"blockList\">\n"
                 + "<h3><a href=\"pkg2/compact2-package-summary.html\" target=\"classFrame\">"
                 + "pkg2</a></h3>\n"
-                + "<table class=\"typeSummary\" border=\"0\" "
-                + "cellpadding=\"3\" cellspacing=\"0\" summary=\"Class Summary table, "
+                + "<table class=\"typeSummary\" summary=\"Class Summary table, "
                 + "listing classes, and an explanation\">",
                 "<ul class=\"blockList\">\n"
                 + "<li class=\"blockList\">\n"
                 + "<h3><a href=\"pkg4/compact2-package-summary.html\" target=\"classFrame\">"
                 + "pkg4</a></h3>\n"
-                + "<table class=\"typeSummary\" border=\"0\" "
-                + "cellpadding=\"3\" cellspacing=\"0\" summary=\"Class Summary table, "
+                + "<table class=\"typeSummary\" summary=\"Class Summary table, "
                 + "listing classes, and an explanation\">");
 
 
@@ -98,14 +96,13 @@
                 "<div class=\"subTitle\">compact3</div>",
                 "<ul class=\"blockList\">\n"
                 + "<li class=\"blockList\">\n"
-                + "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" "
-                + "cellspacing=\"0\" summary=\"Interface Summary table, listing "
+                + "<table class=\"typeSummary\" summary=\"Interface Summary table, listing "
                 + "interfaces, and an explanation\">");
 
         // Test for "overview-frame.html" showing the "All Profiles" link.
         checkOutput("overview-frame.html", true,
-                "<span><a href=\"profile-overview-frame.html\" "
-                + "target=\"packageListFrame\">All&nbsp;Profiles</a></span>");
+                "<li><a href=\"profile-overview-frame.html\" "
+                + "target=\"packageListFrame\">All&nbsp;Profiles</a></li>");
 
         // Test for "className.html" showing the profile information for the type.
         checkOutput("pkg2/Class1Pkg2.html", true,
@@ -150,7 +147,6 @@
         // Test exception in profiles
         checkOutput("compact1-summary.html", true,
                 "<table class=\"typeSummary\" "
-                + "border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
                 + "summary=\"Exception Summary table, listing exceptions, and an explanation\">\n"
                 + "<caption><span>Exception Summary</span><span class=\"tabEnd\">"
                 + "&nbsp;</span></caption>\n"
@@ -166,8 +162,7 @@
 
         //Test errors in profiles
         checkOutput("compact1-summary.html", true,
-                "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
-                + "summary=\"Error Summary table, listing errors, and an explanation\">\n"
+                "<table class=\"typeSummary\" summary=\"Error Summary table, listing errors, and an explanation\">\n"
                 + "<caption><span>Error Summary</span><span class=\"tabEnd\">&nbsp;"
                 + "</span></caption>\n"
                 + "<tr>\n"
@@ -199,16 +194,14 @@
             + "<h3><a href=\"pkg2/compact2-package-summary.html\" target=\"classFrame\">"
             + "pkg2</a></h3>\n" +
             "<li class=\"blockList\">\n"
-            + "<table class=\"typeSummary\" border=\"0\" "
-            + "cellpadding=\"3\" cellspacing=\"0\" summary=\"Class Summary table, "
+            + "<table class=\"typeSummary\" summary=\"Class Summary table, "
             + "listing classes, and an explanation\">");
 
         checkOutput("pkg5/compact3-package-summary.html", false,
             "<ul class=\"blockList\">\n" +
             "<li class=\"blockList\">\n"
             + "<li class=\"blockList\">\n"
-            + "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" "
-            + "cellspacing=\"0\" summary=\"Interface Summary table, listing "
+            + "<table class=\"typeSummary\" summary=\"Interface Summary table, listing "
             + "interfaces, and an explanation\">");
     }
 
--- a/langtools/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@
 
         // Nested type parameters
         checkOutput("pkg/C.html", true,
-                "<a name=\"formatDetails-java.util.Collection-java.util.Collection-\">\n"
+                "<a id=\"formatDetails-java.util.Collection-java.util.Collection-\">\n"
                 + "<!--   -->\n"
                 + "</a>");
     }
--- a/langtools/test/com/sun/javadoc/testUseOption/TestUseOption.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/com/sun/javadoc/testUseOption/TestUseOption.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -135,7 +135,7 @@
                 + "UsedInC</a> in <a href=\"../package-summary.html\">&lt;Unnamed&gt;</a>"
         );
         checkOutput("class-use/UsedInC.html", true,
-                "<li class=\"blockList\"><a name=\"unnamed.package\">"
+                "<li class=\"blockList\"><a id=\"unnamed.package\">"
         );
         checkOutput("package-use.html", true,
                 "<td class=\"colOne\">"
--- a/langtools/test/tools/doclint/DocLintTester.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/doclint/DocLintTester.java	Mon Apr 27 09:17:39 2015 -0700
@@ -21,21 +21,20 @@
  * questions.
  */
 
+import java.io.BufferedReader;
 import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.sun.tools.doclint.DocLint;
-import com.sun.tools.doclint.DocLint.BadArgs;
-import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import com.sun.tools.doclint.DocLint;
+import com.sun.tools.doclint.DocLint.BadArgs;
 
 public class DocLintTester {
 
@@ -60,6 +59,8 @@
                 opts.add(arg);
             } else if (arg.startsWith("-XcustomTags")) {
                 opts.add(arg);
+            }  else if (arg.startsWith("-XhtmlVersion")) {
+                opts.add(arg);
             } else if (arg.startsWith("-")) {
                 opts.add(arg);
                 if (i < args.length - 1 && !args[i+1].startsWith("-"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/doclint/HtmlVersionTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8072945
+ * @summary test HTML version
+ * @library ..
+ * @build DocLintTester
+ * @run main DocLintTester -XhtmlVersion:html5 HtmlVersionTest.java
+ * @run main DocLintTester -XhtmlVersion:html4 HtmlVersionTest.java
+ * @run main DocLintTester -badargs -XhtmlVersion: HtmlVersionTest.java
+ * @run main DocLintTester HtmlVersionTest.java
+ */
+
+/**
+ * Test HTML version option.
+ */
+public class HtmlVersionTest {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/doclint/html/HtmlVersionTagsAttrsTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,210 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8072945
+ * @summary test tags and attributes specific to the output HTML version
+ * @library ..
+ * @build DocLintTester
+ * @run main DocLintTester -XhtmlVersion:html5 -ref HtmlVersionTagsAttrsTestHtml5.out HtmlVersionTagsAttrsTest.java
+ * @run main DocLintTester -XhtmlVersion:html4 -ref HtmlVersionTagsAttrsTestHtml4.out HtmlVersionTagsAttrsTest.java
+ * @run main DocLintTester -badargs -XhtmlVersion: HtmlVersionTagsAttrsTest.java
+ * @run main DocLintTester -ref HtmlVersionTagsAttrsTestHtml4.out HtmlVersionTagsAttrsTest.java
+ */
+
+/**
+ * Test HTML tags and attributes based on the output HTML version option.
+ */
+public class HtmlVersionTagsAttrsTest {
+    /**
+     * <a rev="help" href="rev_test.html">Help Page</a>
+     * <a charset="UTF-8" href="charset_test.html">Test page</a>
+     * <a href="shape_test.html" shape="poly" coords="10,30,56,142">Location</a>
+     * <img name="name_test" alt="alt">
+     * <table>
+     * <tr><th axis="desc">Description</th></tr>
+     * <tr><td axis="desc" abbr="abbr_test" scope="row">Axis_Test</td></tr>
+     * </table>
+     * <table summary="summary_test"><tr><td>Test Row</td></tr></table>
+     *
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+     * <caption align="center">Test table, caption, col, colgroup, tbody,
+     * td, tfoot, th, thead and tr Align attribute</caption>
+     * <colgroup align="char" char="." charoff="2" valign="top" width="200">
+     * <col align="center" valign="top" width="200">
+     * <col align="char" char="." charoff="2">
+     * </colgroup>
+     * <thead align="char" char="." charoff="2" valign="top">
+     * <tr align="char" char="." charoff="2" bgcolor="#EAEAEA" valign="top">
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+     * <th>HeadCol2</th>
+     * </tr>
+     * </thead>
+     * <tfoot align="char" char="." charoff="2" valign="top">
+     * <tr>
+     * <td>FootCol1</td>
+     * <td>FootCol2</td>
+     * </tr>
+     * </tfoot>
+     * <tbody align="char" char="." charoff="2" valign="top">
+     * <tr>
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+     * <td>BodyCol2</td>
+     * </tr>
+     * </tbody>
+     * </table>
+     * <br clear="left">
+     * <ol compact>
+     * <li>Test list</li>
+     * <li>Another item</li>
+     * </ol>
+     * <ul type="circle" compact>
+     * <li type="square">Test list</li>
+     * <li>Another item</li>
+     * </ul>
+     * <dl compact>
+     * <dt>Test list</dt>
+     * <dd>Test Description</dd>
+     * </dl>
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+     * <hr size="20" noshade>
+     * <pre width="25">Test Pre</pre>
+     * <a name="AnchorTest">Anchor Test</a>
+     * <table border="0">
+     * <tr><td>Test border</td></tr>
+     * </table>
+     */
+    public void SupportedAttrs_in_html4_not_in_html5() { }
+
+    /**
+     * <ol reversed="reversed">
+     * <li>First</li>
+     * <li>Second</li>
+     * <li>Third</li>
+     * </ol>
+     * <img src="testImg.jpg" alt="imgTest" crossorigin="anonymous">
+     * <div aria-labelledby="Topics" aria-describedby="t1">
+     * <h1 id="Topics">Topics</h1>
+     * <p id="t1">Aria attribute test</p>
+     * <p id="t2" aria-label="Label">Label test</p>
+     * </div>
+     */
+    public void SupportedAttrs_in_html5_not_in_html4() { }
+
+    /**
+     * <p><big>Bigger text test</big></p>
+     * <center>Center text test</center>
+     * <font size="3">Font test</font>
+     * <p>Text <strike>strike</strike></p>
+     * <p><tt>Teletype text</tt></p>
+     * <section>
+     * <hgroup>
+     * <h1>Section</h1>
+     * <h2> Another heading</h2>
+     * </hgroup>
+     * hgroup no longer supported in HTML5.
+     * </section>
+     * <details>
+     * <summary>Summary</summary>
+     * <p>Details and Summary no longer supported in HTML5</p>
+     * </details>
+     */
+    public void notSupportedTags_html5() { }
+
+    /**
+     * <section>
+     * <p>Testing section tag</p>
+     * <h1>Section</h1>
+     * Section text.
+     * </section>
+     * <article>
+     * <p>Testing article tag</p>
+     * <h1>Article</h1>
+     * Article text.
+     * </article>
+     * <header>
+     * <nav>Navigation</nav>
+     * Testing header
+     * </header>
+     * <footer>
+     * <nav>Navigation</nav>
+     * Testing footer
+     * </footer>
+     * <main>
+     * Main content
+     * </main>
+     * <aside>
+     * <h2>Test aside</h2>
+     * <p>Description</p>
+     * </aside>
+     * <ul>
+     * <li>Testing<bdi>BDI</bdi></li>
+     * </ul>
+     * <figure>
+     * <img src="testImg.jpg" alt="imgTest">
+     * <figcaption>Fig. 1</figcaption>
+     * </figure>
+     * <p><mark>Marked</mark> text test</p>
+     * <nav>
+     * <ul>
+     * <li>Nav item 1</li>
+     * <li>Nav item 2</li>
+     * </ul>
+     * </nav>
+     * <template id="testTemplate">
+     * <div class="desc">Desc</div>
+     * </template>
+     * <p>Test current time is <time>10:00</time> at night</p>
+     * <p>Test <wbr>WBR</wbr> text</p>
+     */
+    public void SupportedTags_in_html5_not_in_html4() { }
+
+    /**
+     * <section>
+     * <p>Invalid use of section tag</p>
+     * </section>
+     * <article>
+     * <p>Invalid use of article tag</p>
+     * </article>
+     * <header>
+     * <header>
+     * Invalid nested header
+     * </header>
+     * <footer>
+     * Invalid nested footer
+     * </footer>
+     * <main>
+     * Invalid nested main
+     * </main>
+     * Invalid use of header
+     * </header>
+     * <footer>
+     * <header>
+     * Invalid nested header
+     * </header>
+     * <footer>
+     * Invalid nested footer
+     * </footer>
+     * <main>
+     * Invalid nested main
+     * </main>
+     * Invalid use of footer
+     * </footer>
+     * <table border="2">
+     * <tr><td>Test border</td></tr>
+     * </table>
+     */
+    public void invalidUsage() { }
+
+    /**
+     * <header role="banner">Main text</header>
+     * <div role="navigation">
+     * <ul><li>Test Nav</li></ul>
+     * </div>
+     * <table border="1">
+     * <tr><td>Test border</td></tr>
+     * </table>
+     * <table border="">
+     * <tr><td>Test border</td></tr>
+     * </table>
+     */
+    public void validUsage() { }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/doclint/html/HtmlVersionTagsAttrsTestHtml4.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,212 @@
+HtmlVersionTagsAttrsTest.java:21: warning: attribute obsolete: name
+     * <img name="name_test" alt="alt">
+            ^
+HtmlVersionTagsAttrsTest.java:25: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:28: warning: attribute obsolete, use CSS instead: align
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+              ^
+HtmlVersionTagsAttrsTest.java:28: warning: attribute obsolete, use CSS instead: bgcolor
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                           ^
+HtmlVersionTagsAttrsTest.java:29: warning: attribute obsolete, use CSS instead: align
+     * <caption align="center">Test table, caption, col, colgroup, tbody,
+                ^
+HtmlVersionTagsAttrsTest.java:36: warning: attribute obsolete, use CSS instead: bgcolor
+     * <tr align="char" char="." charoff="2" bgcolor="#EAEAEA" valign="top">
+                                             ^
+HtmlVersionTagsAttrsTest.java:37: warning: attribute obsolete, use CSS instead: bgcolor
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                             ^
+HtmlVersionTagsAttrsTest.java:37: warning: attribute obsolete, use CSS instead: height
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                                               ^
+HtmlVersionTagsAttrsTest.java:37: warning: attribute obsolete, use CSS instead: width
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                                                                         ^
+HtmlVersionTagsAttrsTest.java:37: warning: attribute obsolete, use CSS instead: nowrap
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                                                                                     ^
+HtmlVersionTagsAttrsTest.java:49: warning: attribute obsolete, use CSS instead: bgcolor
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                             ^
+HtmlVersionTagsAttrsTest.java:49: warning: attribute obsolete, use CSS instead: height
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                                               ^
+HtmlVersionTagsAttrsTest.java:49: warning: attribute obsolete, use CSS instead: width
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                                                                         ^
+HtmlVersionTagsAttrsTest.java:49: warning: attribute obsolete, use CSS instead: nowrap
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                                                                                     ^
+HtmlVersionTagsAttrsTest.java:54: warning: attribute obsolete, use CSS instead: clear
+     * <br clear="left">
+           ^
+HtmlVersionTagsAttrsTest.java:55: warning: attribute obsolete, use CSS instead: compact
+     * <ol compact>
+           ^
+HtmlVersionTagsAttrsTest.java:60: warning: attribute obsolete, use CSS instead: type
+     * <li type="square">Test list</li>
+           ^
+HtmlVersionTagsAttrsTest.java:63: warning: attribute obsolete, use CSS instead: compact
+     * <dl compact>
+           ^
+HtmlVersionTagsAttrsTest.java:67: warning: attribute obsolete, use CSS instead: hspace
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+                                            ^
+HtmlVersionTagsAttrsTest.java:67: warning: attribute obsolete, use CSS instead: vspace
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+                                                        ^
+HtmlVersionTagsAttrsTest.java:67: warning: attribute obsolete, use CSS instead: border
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+                                                                    ^
+HtmlVersionTagsAttrsTest.java:68: warning: attribute obsolete, use CSS instead: size
+     * <hr size="20" noshade>
+           ^
+HtmlVersionTagsAttrsTest.java:68: warning: attribute obsolete, use CSS instead: noshade
+     * <hr size="20" noshade>
+                     ^
+HtmlVersionTagsAttrsTest.java:69: warning: attribute obsolete, use CSS instead: width
+     * <pre width="25">Test Pre</pre>
+            ^
+HtmlVersionTagsAttrsTest.java:73: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:78: error: attribute not supported in HTML4: reversed
+     * <ol reversed="reversed">
+           ^
+HtmlVersionTagsAttrsTest.java:83: error: attribute not supported in HTML4: crossorigin
+     * <img src="testImg.jpg" alt="imgTest" crossorigin="anonymous">
+                                            ^
+HtmlVersionTagsAttrsTest.java:84: error: attribute not supported in HTML4: aria-labelledby
+     * <div aria-labelledby="Topics" aria-describedby="t1">
+            ^
+HtmlVersionTagsAttrsTest.java:84: error: attribute not supported in HTML4: aria-describedby
+     * <div aria-labelledby="Topics" aria-describedby="t1">
+                                     ^
+HtmlVersionTagsAttrsTest.java:87: error: attribute not supported in HTML4: aria-label
+     * <p id="t2" aria-label="Label">Label test</p>
+                  ^
+HtmlVersionTagsAttrsTest.java:95: warning: attribute obsolete, use CSS instead: size
+     * <font size="3">Font test</font>
+             ^
+HtmlVersionTagsAttrsTest.java:98: error: tag not supported in the generated HTML version: section
+     * <section>
+       ^
+HtmlVersionTagsAttrsTest.java:99: error: unknown tag: hgroup
+     * <hgroup>
+       ^
+HtmlVersionTagsAttrsTest.java:102: error: unknown tag: hgroup
+     * </hgroup>
+       ^
+HtmlVersionTagsAttrsTest.java:105: error: unknown tag: details
+     * <details>
+       ^
+HtmlVersionTagsAttrsTest.java:106: error: unknown tag: summary
+     * <summary>Summary</summary>
+       ^
+HtmlVersionTagsAttrsTest.java:106: error: unknown tag: summary
+     * <summary>Summary</summary>
+                       ^
+HtmlVersionTagsAttrsTest.java:108: error: unknown tag: details
+     * </details>
+       ^
+HtmlVersionTagsAttrsTest.java:113: error: tag not supported in the generated HTML version: section
+     * <section>
+       ^
+HtmlVersionTagsAttrsTest.java:118: error: tag not supported in the generated HTML version: article
+     * <article>
+       ^
+HtmlVersionTagsAttrsTest.java:123: error: tag not supported in the generated HTML version: header
+     * <header>
+       ^
+HtmlVersionTagsAttrsTest.java:124: error: tag not supported in the generated HTML version: nav
+     * <nav>Navigation</nav>
+       ^
+HtmlVersionTagsAttrsTest.java:127: error: tag not supported in the generated HTML version: footer
+     * <footer>
+       ^
+HtmlVersionTagsAttrsTest.java:128: error: tag not supported in the generated HTML version: nav
+     * <nav>Navigation</nav>
+       ^
+HtmlVersionTagsAttrsTest.java:131: error: tag not supported in the generated HTML version: main
+     * <main>
+       ^
+HtmlVersionTagsAttrsTest.java:134: error: tag not supported in the generated HTML version: aside
+     * <aside>
+       ^
+HtmlVersionTagsAttrsTest.java:139: error: tag not supported in the generated HTML version: bdi
+     * <li>Testing<bdi>BDI</bdi></li>
+                  ^
+HtmlVersionTagsAttrsTest.java:141: error: tag not supported in the generated HTML version: figure
+     * <figure>
+       ^
+HtmlVersionTagsAttrsTest.java:143: error: tag not supported in the generated HTML version: figcaption
+     * <figcaption>Fig. 1</figcaption>
+       ^
+HtmlVersionTagsAttrsTest.java:145: error: tag not supported in the generated HTML version: mark
+     * <p><mark>Marked</mark> text test</p>
+          ^
+HtmlVersionTagsAttrsTest.java:146: error: tag not supported in the generated HTML version: nav
+     * <nav>
+       ^
+HtmlVersionTagsAttrsTest.java:152: error: tag not supported in the generated HTML version: template
+     * <template id="testTemplate">
+       ^
+HtmlVersionTagsAttrsTest.java:155: error: tag not supported in the generated HTML version: time
+     * <p>Test current time is <time>10:00</time> at night</p>
+                               ^
+HtmlVersionTagsAttrsTest.java:156: error: tag not supported in the generated HTML version: wbr
+     * <p>Test <wbr>WBR</wbr> text</p>
+               ^
+HtmlVersionTagsAttrsTest.java:161: error: tag not supported in the generated HTML version: section
+     * <section>
+       ^
+HtmlVersionTagsAttrsTest.java:164: error: tag not supported in the generated HTML version: article
+     * <article>
+       ^
+HtmlVersionTagsAttrsTest.java:167: error: tag not supported in the generated HTML version: header
+     * <header>
+       ^
+HtmlVersionTagsAttrsTest.java:168: error: tag not supported in the generated HTML version: header
+     * <header>
+       ^
+HtmlVersionTagsAttrsTest.java:171: error: tag not supported in the generated HTML version: footer
+     * <footer>
+       ^
+HtmlVersionTagsAttrsTest.java:174: error: tag not supported in the generated HTML version: main
+     * <main>
+       ^
+HtmlVersionTagsAttrsTest.java:179: error: tag not supported in the generated HTML version: footer
+     * <footer>
+       ^
+HtmlVersionTagsAttrsTest.java:180: error: tag not supported in the generated HTML version: header
+     * <header>
+       ^
+HtmlVersionTagsAttrsTest.java:183: error: tag not supported in the generated HTML version: footer
+     * <footer>
+       ^
+HtmlVersionTagsAttrsTest.java:186: error: tag not supported in the generated HTML version: main
+     * <main>
+       ^
+HtmlVersionTagsAttrsTest.java:193: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:198: error: tag not supported in the generated HTML version: header
+     * <header role="banner">Main text</header>
+       ^
+HtmlVersionTagsAttrsTest.java:198: error: attribute not supported in HTML4: role
+     * <header role="banner">Main text</header>
+               ^
+HtmlVersionTagsAttrsTest.java:199: error: attribute not supported in HTML4: role
+     * <div role="navigation">
+            ^
+HtmlVersionTagsAttrsTest.java:204: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:207: error: no summary or caption for table
+     * </table>
+       ^
+46 errors
+24 warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/doclint/html/HtmlVersionTagsAttrsTestHtml5.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,299 @@
+HtmlVersionTagsAttrsTest.java:18: error: attribute not supported in HTML5: rev
+     * <a rev="help" href="rev_test.html">Help Page</a>
+          ^
+HtmlVersionTagsAttrsTest.java:19: error: attribute not supported in HTML5: charset
+     * <a charset="UTF-8" href="charset_test.html">Test page</a>
+          ^
+HtmlVersionTagsAttrsTest.java:20: error: attribute not supported in HTML5: shape
+     * <a href="shape_test.html" shape="poly" coords="10,30,56,142">Location</a>
+                                 ^
+HtmlVersionTagsAttrsTest.java:20: error: attribute not supported in HTML5: coords
+     * <a href="shape_test.html" shape="poly" coords="10,30,56,142">Location</a>
+                                              ^
+HtmlVersionTagsAttrsTest.java:21: error: attribute not supported in HTML5: name
+     * <img name="name_test" alt="alt">
+            ^
+HtmlVersionTagsAttrsTest.java:23: error: attribute not supported in HTML5: axis
+     * <tr><th axis="desc">Description</th></tr>
+               ^
+HtmlVersionTagsAttrsTest.java:24: error: attribute not supported in HTML5: axis
+     * <tr><td axis="desc" abbr="abbr_test" scope="row">Axis_Test</td></tr>
+               ^
+HtmlVersionTagsAttrsTest.java:24: error: attribute not supported in HTML5: abbr
+     * <tr><td axis="desc" abbr="abbr_test" scope="row">Axis_Test</td></tr>
+                           ^
+HtmlVersionTagsAttrsTest.java:24: error: attribute not supported in HTML5: scope
+     * <tr><td axis="desc" abbr="abbr_test" scope="row">Axis_Test</td></tr>
+                                            ^
+HtmlVersionTagsAttrsTest.java:25: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:26: error: attribute not supported in HTML5: summary
+     * <table summary="summary_test"><tr><td>Test Row</td></tr></table>
+              ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: align
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+              ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: bgcolor
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                           ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: cellpadding
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                                             ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: cellspacing
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                                                              ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: frame
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                                                                              ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: rules
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                                                                                          ^
+HtmlVersionTagsAttrsTest.java:28: error: attribute not supported in HTML5: width
+     * <table align="left" bgcolor="#EAEAEA" cellpadding="10" cellspacing="2" frame="box" rules="rows" width="200">
+                                                                                                       ^
+HtmlVersionTagsAttrsTest.java:29: error: attribute not supported in HTML5: align
+     * <caption align="center">Test table, caption, col, colgroup, tbody,
+                ^
+HtmlVersionTagsAttrsTest.java:31: error: attribute not supported in HTML5: align
+     * <colgroup align="char" char="." charoff="2" valign="top" width="200">
+                 ^
+HtmlVersionTagsAttrsTest.java:31: error: attribute not supported in HTML5: char
+     * <colgroup align="char" char="." charoff="2" valign="top" width="200">
+                              ^
+HtmlVersionTagsAttrsTest.java:31: error: attribute not supported in HTML5: charoff
+     * <colgroup align="char" char="." charoff="2" valign="top" width="200">
+                                       ^
+HtmlVersionTagsAttrsTest.java:31: error: attribute not supported in HTML5: valign
+     * <colgroup align="char" char="." charoff="2" valign="top" width="200">
+                                                   ^
+HtmlVersionTagsAttrsTest.java:31: error: attribute not supported in HTML5: width
+     * <colgroup align="char" char="." charoff="2" valign="top" width="200">
+                                                                ^
+HtmlVersionTagsAttrsTest.java:32: error: attribute not supported in HTML5: align
+     * <col align="center" valign="top" width="200">
+            ^
+HtmlVersionTagsAttrsTest.java:32: error: attribute not supported in HTML5: valign
+     * <col align="center" valign="top" width="200">
+                           ^
+HtmlVersionTagsAttrsTest.java:32: error: attribute not supported in HTML5: width
+     * <col align="center" valign="top" width="200">
+                                        ^
+HtmlVersionTagsAttrsTest.java:33: error: attribute not supported in HTML5: align
+     * <col align="char" char="." charoff="2">
+            ^
+HtmlVersionTagsAttrsTest.java:33: error: attribute not supported in HTML5: char
+     * <col align="char" char="." charoff="2">
+                         ^
+HtmlVersionTagsAttrsTest.java:33: error: attribute not supported in HTML5: charoff
+     * <col align="char" char="." charoff="2">
+                                  ^
+HtmlVersionTagsAttrsTest.java:35: error: attribute not supported in HTML5: align
+     * <thead align="char" char="." charoff="2" valign="top">
+              ^
+HtmlVersionTagsAttrsTest.java:35: error: attribute not supported in HTML5: char
+     * <thead align="char" char="." charoff="2" valign="top">
+                           ^
+HtmlVersionTagsAttrsTest.java:35: error: attribute not supported in HTML5: charoff
+     * <thead align="char" char="." charoff="2" valign="top">
+                                    ^
+HtmlVersionTagsAttrsTest.java:36: error: attribute not supported in HTML5: align
+     * <tr align="char" char="." charoff="2" bgcolor="#EAEAEA" valign="top">
+           ^
+HtmlVersionTagsAttrsTest.java:36: error: attribute not supported in HTML5: char
+     * <tr align="char" char="." charoff="2" bgcolor="#EAEAEA" valign="top">
+                        ^
+HtmlVersionTagsAttrsTest.java:36: error: attribute not supported in HTML5: charoff
+     * <tr align="char" char="." charoff="2" bgcolor="#EAEAEA" valign="top">
+                                 ^
+HtmlVersionTagsAttrsTest.java:36: error: attribute not supported in HTML5: bgcolor
+     * <tr align="char" char="." charoff="2" bgcolor="#EAEAEA" valign="top">
+                                             ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: align
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+           ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: char
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                        ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: charoff
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                 ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: bgcolor
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                             ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: height
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                                               ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: width
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                                                                         ^
+HtmlVersionTagsAttrsTest.java:37: error: attribute not supported in HTML5: nowrap
+     * <th align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>HeadCol1</th>
+                                                                                                     ^
+HtmlVersionTagsAttrsTest.java:41: error: attribute not supported in HTML5: align
+     * <tfoot align="char" char="." charoff="2" valign="top">
+              ^
+HtmlVersionTagsAttrsTest.java:41: error: attribute not supported in HTML5: char
+     * <tfoot align="char" char="." charoff="2" valign="top">
+                           ^
+HtmlVersionTagsAttrsTest.java:41: error: attribute not supported in HTML5: charoff
+     * <tfoot align="char" char="." charoff="2" valign="top">
+                                    ^
+HtmlVersionTagsAttrsTest.java:47: error: attribute not supported in HTML5: align
+     * <tbody align="char" char="." charoff="2" valign="top">
+              ^
+HtmlVersionTagsAttrsTest.java:47: error: attribute not supported in HTML5: char
+     * <tbody align="char" char="." charoff="2" valign="top">
+                           ^
+HtmlVersionTagsAttrsTest.java:47: error: attribute not supported in HTML5: charoff
+     * <tbody align="char" char="." charoff="2" valign="top">
+                                    ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: align
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+           ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: char
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                        ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: charoff
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                 ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: bgcolor
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                             ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: height
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                                               ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: width
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                                                                         ^
+HtmlVersionTagsAttrsTest.java:49: error: attribute not supported in HTML5: nowrap
+     * <td align="char" char="." charoff="2" bgcolor="#EAEAEA" height="200" valign="top" width="200" nowrap>BodyCol1</td>
+                                                                                                     ^
+HtmlVersionTagsAttrsTest.java:54: error: attribute not supported in HTML5: clear
+     * <br clear="left">
+           ^
+HtmlVersionTagsAttrsTest.java:55: error: attribute not supported in HTML5: compact
+     * <ol compact>
+           ^
+HtmlVersionTagsAttrsTest.java:59: error: attribute not supported in HTML5: type
+     * <ul type="circle" compact>
+           ^
+HtmlVersionTagsAttrsTest.java:59: error: attribute not supported in HTML5: compact
+     * <ul type="circle" compact>
+                         ^
+HtmlVersionTagsAttrsTest.java:60: error: attribute not supported in HTML5: type
+     * <li type="square">Test list</li>
+           ^
+HtmlVersionTagsAttrsTest.java:63: error: attribute not supported in HTML5: compact
+     * <dl compact>
+           ^
+HtmlVersionTagsAttrsTest.java:67: error: attribute not supported in HTML5: hspace
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+                                            ^
+HtmlVersionTagsAttrsTest.java:67: error: attribute not supported in HTML5: vspace
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+                                                        ^
+HtmlVersionTagsAttrsTest.java:67: error: attribute not supported in HTML5: border
+     * <img src="testImg.jpg" alt="imgTest" hspace="10" vspace="10" border="0">
+                                                                    ^
+HtmlVersionTagsAttrsTest.java:68: error: attribute not supported in HTML5: size
+     * <hr size="20" noshade>
+           ^
+HtmlVersionTagsAttrsTest.java:68: error: attribute not supported in HTML5: noshade
+     * <hr size="20" noshade>
+                     ^
+HtmlVersionTagsAttrsTest.java:69: error: attribute not supported in HTML5: width
+     * <pre width="25">Test Pre</pre>
+            ^
+HtmlVersionTagsAttrsTest.java:70: error: attribute not supported in HTML5: name
+     * <a name="AnchorTest">Anchor Test</a>
+          ^
+HtmlVersionTagsAttrsTest.java:71: error: attribute border for table only accepts "" or "1", use CSS instead: BORDER
+     * <table border="0">
+              ^
+HtmlVersionTagsAttrsTest.java:73: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:93: error: tag not supported in the generated HTML version: big
+     * <p><big>Bigger text test</big></p>
+          ^
+HtmlVersionTagsAttrsTest.java:93: warning: empty <p> tag
+     * <p><big>Bigger text test</big></p>
+                                     ^
+HtmlVersionTagsAttrsTest.java:94: error: tag not supported in the generated HTML version: center
+     * <center>Center text test</center>
+       ^
+HtmlVersionTagsAttrsTest.java:95: error: tag not supported in the generated HTML version: font
+     * <font size="3">Font test</font>
+       ^
+HtmlVersionTagsAttrsTest.java:95: error: attribute not supported in HTML5: size
+     * <font size="3">Font test</font>
+             ^
+HtmlVersionTagsAttrsTest.java:96: error: tag not supported in the generated HTML version: strike
+     * <p>Text <strike>strike</strike></p>
+               ^
+HtmlVersionTagsAttrsTest.java:97: error: tag not supported in the generated HTML version: tt
+     * <p><tt>Teletype text</tt></p>
+          ^
+HtmlVersionTagsAttrsTest.java:97: warning: empty <p> tag
+     * <p><tt>Teletype text</tt></p>
+                                ^
+HtmlVersionTagsAttrsTest.java:99: error: unknown tag: hgroup
+     * <hgroup>
+       ^
+HtmlVersionTagsAttrsTest.java:102: error: unknown tag: hgroup
+     * </hgroup>
+       ^
+HtmlVersionTagsAttrsTest.java:105: error: unknown tag: details
+     * <details>
+       ^
+HtmlVersionTagsAttrsTest.java:106: error: unknown tag: summary
+     * <summary>Summary</summary>
+       ^
+HtmlVersionTagsAttrsTest.java:106: error: unknown tag: summary
+     * <summary>Summary</summary>
+                       ^
+HtmlVersionTagsAttrsTest.java:108: error: unknown tag: details
+     * </details>
+       ^
+HtmlVersionTagsAttrsTest.java:131: error: element not allowed in documentation comments: <main>
+     * <main>
+       ^
+HtmlVersionTagsAttrsTest.java:163: error: heading not found for </section>
+     * </section>
+       ^
+HtmlVersionTagsAttrsTest.java:166: error: heading not found for </article>
+     * </article>
+       ^
+HtmlVersionTagsAttrsTest.java:168: error: tag not allowed here: <header>
+     * <header>
+       ^
+HtmlVersionTagsAttrsTest.java:171: error: tag not allowed here: <footer>
+     * <footer>
+       ^
+HtmlVersionTagsAttrsTest.java:174: error: element not allowed in documentation comments: <main>
+     * <main>
+       ^
+HtmlVersionTagsAttrsTest.java:180: error: tag not allowed here: <header>
+     * <header>
+       ^
+HtmlVersionTagsAttrsTest.java:183: error: tag not allowed here: <footer>
+     * <footer>
+       ^
+HtmlVersionTagsAttrsTest.java:186: error: element not allowed in documentation comments: <main>
+     * <main>
+       ^
+HtmlVersionTagsAttrsTest.java:191: error: attribute border for table only accepts "" or "1", use CSS instead: BORDER
+     * <table border="2">
+              ^
+HtmlVersionTagsAttrsTest.java:193: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:204: error: no summary or caption for table
+     * </table>
+       ^
+HtmlVersionTagsAttrsTest.java:207: error: no summary or caption for table
+     * </table>
+       ^
+97 errors
+2 warnings
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /**
  * @test /nodynamiccopyright/
- * @bug     6722234
+ * @bug     6722234 8078024
  * @summary javac diagnostics need better integration with the type-system
  * @author  mcimadamore
  * @compile/fail/ref=T6722234b_1.out -XDrawDiagnostics -XDdiags=simpleNames T6722234b.java
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_1.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_1.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-T6722234b.java:16:9: compiler.err.cant.apply.symbol: kindname.method, m, List<T>,List<T>, List<compiler.misc.type.captureof: 1, ? extends T6722234b>,List<compiler.misc.type.captureof: 2, ? extends T6722234b>, kindname.class, T6722234b, (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.type.captureof: 2, ? extends T6722234b, compiler.misc.type.captureof: 2, ? extends T6722234b,compiler.misc.type.captureof: 1, ? extends T6722234b)
+T6722234b.java:16:9: compiler.err.cant.apply.symbol: kindname.method, m, List<T>,List<T>, List<compiler.misc.type.captureof: 1, ? extends T6722234b>,List<compiler.misc.type.captureof: 2, ? extends T6722234b>, kindname.class, T6722234b, (compiler.misc.incompatible.eq.bounds: T, compiler.misc.type.captureof: 2, ? extends T6722234b,compiler.misc.type.captureof: 1, ? extends T6722234b)
 1 error
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_2.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b_2.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,4 +1,4 @@
-T6722234b.java:16:9: compiler.err.cant.apply.symbol: kindname.method, m, List<T>,List<T>, List<compiler.misc.captured.type: 1>,List<compiler.misc.captured.type: 2>, kindname.class, T6722234b, (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.captured.type: 2, compiler.misc.captured.type: 2,compiler.misc.captured.type: 1)
+T6722234b.java:16:9: compiler.err.cant.apply.symbol: kindname.method, m, List<T>,List<T>, List<compiler.misc.captured.type: 1>,List<compiler.misc.captured.type: 2>, kindname.class, T6722234b, (compiler.misc.incompatible.eq.bounds: T, compiler.misc.captured.type: 2,compiler.misc.captured.type: 1)
 - compiler.misc.where.description.typevar: T,{(compiler.misc.where.typevar: T, Object, kindname.method, <T>m(List<T>,List<T>))}
 - compiler.misc.where.description.captured.1: compiler.misc.captured.type: 1,compiler.misc.captured.type: 2,{(compiler.misc.where.captured.1: compiler.misc.captured.type: 1, T6722234b, compiler.misc.type.null, ? extends T6722234b),(compiler.misc.where.captured.1: compiler.misc.captured.type: 2, T6722234b, compiler.misc.type.null, ? extends T6722234b)}
 1 error
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234d.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /**
  * @test /nodynamiccopyright/
- * @bug     6722234
+ * @bug     6722234 8078024
  * @summary javac diagnostics need better integration with the type-system
  * @author  mcimadamore
  * @compile/fail/ref=T6722234d_1.out -XDrawDiagnostics -XDdiags=where T6722234d.java
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_1.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_1.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,3 +1,3 @@
-T6722234d.java:18:20: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: compiler.misc.intersection.type: 1, T6722234d.A,java.lang.Object)
-- compiler.misc.where.description.intersection: compiler.misc.intersection.type: 1,{(compiler.misc.where.intersection: compiler.misc.intersection.type: 1, java.lang.Object,T6722234d.I1,T6722234d.I2)}
+T6722234d.java:18:20: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.lower.bounds: Z, T6722234d.A,java.lang.Object, T6722234d.B,T6722234d.A)
+- compiler.misc.where.description.typevar: Z,{(compiler.misc.where.typevar: Z, java.lang.Object, kindname.method, <Z>m(Z,Z))}
 1 error
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_2.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d_2.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,3 +1,3 @@
-T6722234d.java:18:20: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: compiler.misc.intersection.type: 1, T6722234d.A,Object)
-- compiler.misc.where.description.intersection: compiler.misc.intersection.type: 1,{(compiler.misc.where.intersection: compiler.misc.intersection.type: 1, Object,I1,I2)}
+T6722234d.java:18:20: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.lower.bounds: Z, T6722234d.A,Object, T6722234d.B,T6722234d.A)
+- compiler.misc.where.description.typevar: Z,{(compiler.misc.where.typevar: Z, Object, kindname.method, <Z>m(Z,Z))}
 1 error
--- a/langtools/test/tools/javac/Diagnostics/6799605/T6799605.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6799605/T6799605.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /**
  * @test /nodynamiccopyright/
- * @bug     6799605
+ * @bug     6799605 8078024
  * @summary Basic/Raw formatters should use type/symbol printer instead of toString()
  * @author  mcimadamore
  * @compile/fail/ref=T6799605.out -XDrawDiagnostics  T6799605.java
--- a/langtools/test/tools/javac/Diagnostics/6799605/T6799605.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/Diagnostics/6799605/T6799605.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,4 +1,4 @@
 T6799605.java:17:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605<compiler.misc.type.captureof: 1, ?>,{(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>), (compiler.misc.incompatible.eq.upper.bounds: T, compiler.misc.type.captureof: 1, ?, T6799605<T>)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>,T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T))}
-T6799605.java:18:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605<compiler.misc.type.captureof: 1, ?>,T6799605<compiler.misc.type.captureof: 2, ?>,{(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>), (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.type.captureof: 2, ?, compiler.misc.type.captureof: 2, ?,compiler.misc.type.captureof: 1, ?)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>,T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T))}
-T6799605.java:19:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605<compiler.misc.type.captureof: 1, ?>,T6799605<compiler.misc.type.captureof: 2, ?>,T6799605<compiler.misc.type.captureof: 3, ?>,{(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>,T6799605<T>), (compiler.misc.inferred.do.not.conform.to.eq.bounds: compiler.misc.type.captureof: 3, ?, compiler.misc.type.captureof: 3, ?,compiler.misc.type.captureof: 2, ?,compiler.misc.type.captureof: 1, ?))}
+T6799605.java:18:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605<compiler.misc.type.captureof: 1, ?>,T6799605<compiler.misc.type.captureof: 2, ?>,{(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>), (compiler.misc.incompatible.eq.bounds: T, compiler.misc.type.captureof: 2, ?,compiler.misc.type.captureof: 1, ?)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>,T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T))}
+T6799605.java:19:9: compiler.err.cant.apply.symbols: kindname.method, m, T6799605<compiler.misc.type.captureof: 1, ?>,T6799605<compiler.misc.type.captureof: 2, ?>,T6799605<compiler.misc.type.captureof: 3, ?>,{(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.method, T6799605, <T>m(T6799605<T>,T6799605<T>,T6799605<T>), (compiler.misc.incompatible.eq.bounds: T, compiler.misc.type.captureof: 3, ?,compiler.misc.type.captureof: 2, ?,compiler.misc.type.captureof: 1, ?))}
 3 errors
--- a/langtools/test/tools/javac/annotations/repeatingAnnotations/RepeatingTargetNotAllowed.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/repeatingAnnotations/RepeatingTargetNotAllowed.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-RepeatingTargetNotAllowed.java:43:5: compiler.err.invalid.repeatable.annotation.incompatible.target: Foos, Foo
+RepeatingTargetNotAllowed.java:43:5: compiler.err.invalid.repeatable.annotation.not.applicable: Foos, f
 1 error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/DeclVsUseErrorMessage.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8073534
+ * @summary Check for correct type annotation error messages.
+ * @compile/fail/ref=DeclVsUseErrorMessage.out -XDrawDiagnostics DeclVsUseErrorMessage.java
+ */
+
+import java.lang.annotation.*;
+import java.util.ArrayList;
+
+class DeclVsUseErrorMessage {
+
+    @Target(ElementType.METHOD)
+    @interface A {}
+
+    // Should trigger a "decl" warning
+    @A int i;
+
+    // Should trigger a "use" warning
+    {
+        new ArrayList<@A String>();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/DeclVsUseErrorMessage.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,3 @@
+DeclVsUseErrorMessage.java:40:5: compiler.err.annotation.type.not.applicable
+DeclVsUseErrorMessage.java:44:23: compiler.err.annotation.type.not.applicable.to.type: DeclVsUseErrorMessage.A
+2 errors
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/TypeOnAnonClass.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/TypeOnAnonClass.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-TypeOnAnonClass.java:13:40: compiler.err.annotation.type.not.applicable
+TypeOnAnonClass.java:13:40: compiler.err.annotation.type.not.applicable.to.type: X
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/arrays/DeclarationAnnotation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/arrays/DeclarationAnnotation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
-DeclarationAnnotation.java:13:21: compiler.err.annotation.type.not.applicable
-DeclarationAnnotation.java:10:21: compiler.err.annotation.type.not.applicable
-DeclarationAnnotation.java:11:21: compiler.err.annotation.type.not.applicable
-DeclarationAnnotation.java:12:21: compiler.err.annotation.type.not.applicable
+DeclarationAnnotation.java:13:21: compiler.err.annotation.type.not.applicable.to.type: DA
+DeclarationAnnotation.java:10:21: compiler.err.annotation.type.not.applicable.to.type: DA
+DeclarationAnnotation.java:11:21: compiler.err.annotation.type.not.applicable.to.type: DA
+DeclarationAnnotation.java:12:21: compiler.err.annotation.type.not.applicable.to.type: DA
 4 errors
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/arrays/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/arrays/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:11:12: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:11:12: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/innertypeparams/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/innertypeparams/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:10:17: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:10:17: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/newarray/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/newarray/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:11:29: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:11:29: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/parambounds/BrokenAnnotation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/parambounds/BrokenAnnotation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 BrokenAnnotation.java:16:6: compiler.err.cant.resolve.location: kindname.class, Target, , , (compiler.misc.location: kindname.class, BrokenAnnotation<T>, null)
 BrokenAnnotation.java:16:14: compiler.err.cant.resolve.location: kindname.variable, ElementType, , , (compiler.misc.location: kindname.class, BrokenAnnotation<T>, null)
 BrokenAnnotation.java:16:36: compiler.err.cant.resolve.location: kindname.variable, ElementType, , , (compiler.misc.location: kindname.class, BrokenAnnotation<T>, null)
-BrokenAnnotation.java:15:34: compiler.err.annotation.type.not.applicable
+BrokenAnnotation.java:15:34: compiler.err.annotation.type.not.applicable.to.type: BrokenAnnotation.A
 4 errors
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/parambounds/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/parambounds/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:9:33: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:9:33: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/receiver/DeclarationAnnotation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/receiver/DeclarationAnnotation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-DeclarationAnnotation.java:14:14: compiler.err.annotation.type.not.applicable
+DeclarationAnnotation.java:14:14: compiler.err.annotation.type.not.applicable.to.type: DA
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/rest/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/rest/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:11:9: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:11:9: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/typeArgs/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/typeArgs/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:10:19: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:10:19: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/typeparams/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/typeparams/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:9:23: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:9:23: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/wildcards/DeclarationAnnotation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/wildcards/DeclarationAnnotation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-DeclarationAnnotation.java:15:10: compiler.err.annotation.type.not.applicable
+DeclarationAnnotation.java:15:10: compiler.err.annotation.type.not.applicable.to.type: DA
 1 error
--- a/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/wildcards/InvalidLocation.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/common/wildcards/InvalidLocation.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-InvalidLocation.java:10:19: compiler.err.annotation.type.not.applicable
+InvalidLocation.java:10:19: compiler.err.annotation.type.not.applicable.to.type: A
 1 error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/classfiles/attributes/AnnotationDefault/AnnotationDefault.java.template	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.lang.annotation.*;
+
+%REPEATABLE%
+@Retention(RetentionPolicy.%POLICY%)
+public @interface AnnotationDefault {
+    @ExpectedValues(tag = 'Z', name = "booleanDefault", values = "1")
+    boolean booleanDefault() default true;
+
+    @ExpectedValues(tag = 'C', name = "charDefault", values = "1")
+    char charDefault() default 1;
+
+    @ExpectedValues(tag = 'B', name = "byteDefault", values = "1")
+    byte byteDefault() default 1;
+
+    @ExpectedValues(tag = 'S', name = "shortDefault", values = "1")
+    short shortDefault() default 1;
+
+    @ExpectedValues(tag = 'I', name = "intDefault", values = "1")
+    int intDefault() default 1;
+
+    @ExpectedValues(tag = 'J', name = "longDefault", values = "1")
+    long longDefault() default 1;
+
+    @ExpectedValues(tag = 'F', name = "floatDefault", values = "1.0")
+    float floatDefault() default 1.0f;
+
+    @ExpectedValues(tag = 'D', name = "doubleDefault", values = "1.0")
+    double doubleDefault() default 1.0;
+
+    @ExpectedValues(tag = 's', name = "stringDefault", values = "DEFAULT_VALUE")
+    String stringDefault() default "DEFAULT_VALUE";
+
+    @ExpectedValues(tag = 'e', name = "enumDefault", values = {"LAnnotationDefault$DefaultValues;", "VALUE1"})
+    DefaultValues enumDefault() default DefaultValues.VALUE1;
+
+    @ExpectedValues(tag = 'c', name = "clazzDefault1", values = "V")
+    Class<?> clazzDefault1() default void.class;
+
+    @ExpectedValues(tag = 'c', name = "clazzDefault2", values = "Ljava/lang/Void;")
+    Class<?> clazzDefault2() default Void.class;
+
+    @ExpectedValues(tag = '[', name = "arrayDefault1", values = {"1", "2", "3"})
+    int[] arrayDefault1() default {1, 2, 3};
+
+    @ExpectedValues(tag = '[', name = "arrayDefault2", values = {"DEFAULT_VALUE_1", "DEFAULT_VALUE_2", "DEFAULT_VALUE_3"})
+    String[] arrayDefault2() default {"DEFAULT_VALUE_1", "DEFAULT_VALUE_2", "DEFAULT_VALUE_3"};
+
+    @ExpectedValues(tag = '[', name = "arrayOfEnums", values = {"LAnnotationDefault$DefaultValues;", "VALUE2",
+                "LAnnotationDefault$DefaultValues;", "VALUE3"})
+    DefaultValues[] arrayOfEnums() default {DefaultValues.VALUE2, DefaultValues.VALUE3};
+
+    @ExpectedValues(tag = '[', name = "arrayOfAnno", values = {"LAnnotationDefault$DefaultAnnotation;", "value", "DEFAULT_VALUE1",
+                        "LAnnotationDefault$DefaultAnnotation;", "value", "DEFAULT_VALUE2"})
+    DefaultAnnotation[] arrayOfAnno() default {@DefaultAnnotation(value = "DEFAULT_VALUE1"), @DefaultAnnotation(value = "DEFAULT_VALUE2")};
+
+    @ExpectedValues(tag = '@', name = "annoDefault", values = {"LAnnotationDefault$DefaultAnnotation;", "value", "DEFAULT_VALUE"})
+    DefaultAnnotation annoDefault() default @DefaultAnnotation(value = "DEFAULT_VALUE");
+
+    @interface DefaultAnnotation {
+        String value() default "NOT_DEFAULT_VALUE";
+    }
+
+    enum DefaultValues {
+        VALUE1, VALUE2, VALUE3
+    }
+}
+
+@Retention(RetentionPolicy.%POLICY%)
+@interface Container {
+    AnnotationDefault[] value();
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/classfiles/attributes/AnnotationDefault/AnnotationDefaultTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,163 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8042947
+ * @summary Checking AnnotationDefault attribute.
+ * @library /tools/lib /tools/javac/lib ../lib
+ * @build AnnotationDefaultTest TestBase TestResult InMemoryFileManager ToolBox AnnotationDefaultVerifier
+ * @run main AnnotationDefaultTest
+ */
+
+import com.sun.tools.classfile.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.annotation.RetentionPolicy;
+import java.nio.file.Files;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class AnnotationDefaultTest extends TestResult {
+
+    private final static String templateFileName = "AnnotationDefault.java.template";
+
+    private final AnnotationDefaultVerifier verifier;
+
+    public AnnotationDefaultTest() {
+        verifier = new AnnotationDefaultVerifier();
+    }
+
+    private void test(String template, Map<String, String> replacements, boolean hasDefault) {
+        String source = replace(template, replacements);
+        addTestCase(source);
+        try {
+            printf("Testing source:\n%s\n", source);
+            String className = "AnnotationDefault";
+            InMemoryFileManager fileManager = compile(source);
+
+            // Map <method-name, expected-annotation-default-values>
+            Map<String, ExpectedValues> expectedValues =
+                    getExpectedValues(forName(className, fileManager));
+            ClassFile classFile = readClassFile(fileManager.getClasses().get(className));
+
+            for (Method method : classFile.methods) {
+                String methodName = method.getName(classFile.constant_pool);
+                printf("Testing method : %s\n", methodName);
+                AnnotationDefault_attribute attr =
+                        (AnnotationDefault_attribute) method.attributes
+                                .get(Attribute.AnnotationDefault);
+
+                if (hasDefault && !checkNotNull(attr, "Attribute is not null")
+                        || !hasDefault && checkNull(attr, "Attribute is null")) {
+                    // stop checking, attr is null
+                    continue;
+                }
+
+                checkEquals(countNumberOfAttributes(method.attributes.attrs),
+                        1l,
+                        "Number of AnnotationDefault attribute");
+                checkEquals(classFile.constant_pool
+                        .getUTF8Value(attr.attribute_name_index),
+                        "AnnotationDefault", "attribute_name_index");
+
+                ExpectedValues expectedValue = expectedValues.get(methodName);
+                checkEquals((char) attr.default_value.tag, expectedValue.tag(),
+                        String.format("check tag : %c %s", expectedValue.tag(), expectedValue.name()));
+                verifier.testElementValue(attr.default_value.tag,
+                        this, classFile, attr.default_value,
+                        expectedValue.values());
+                verifier.testLength(attr.default_value.tag, this, attr);
+            }
+        } catch (Exception e) {
+            addFailure(e);
+        }
+    }
+
+    private Class<?> forName(String className, InMemoryFileManager fileManager) throws ClassNotFoundException {
+        return fileManager.getClassLoader(null).loadClass(className);
+    }
+
+    private Map<String, ExpectedValues> getExpectedValues(Class<?> clazz) {
+        return Stream.of(clazz.getMethods())
+                .map(method -> method.getAnnotation(ExpectedValues.class))
+                .filter(Objects::nonNull)
+                .collect(Collectors.toMap(
+                        ExpectedValues::name,
+                        Function.identity()));
+    }
+
+    private String replace(String template, Map<String, String> replacements) {
+        String ans = template;
+        for (Map.Entry<String, String> replace : replacements.entrySet()) {
+            ans = ans.replaceAll(replace.getKey(), replace.getValue());
+        }
+        return ans;
+    }
+
+    private long countNumberOfAttributes(Attribute[] attrs) {
+        return Stream.of(attrs)
+                .filter(x -> x instanceof AnnotationDefault_attribute)
+                .count();
+    }
+
+    public String getSource(File templateFileName) throws IOException {
+        return Files.lines(templateFileName.toPath())
+                .filter(str -> !str.startsWith("/*") && !str.startsWith(" *"))
+                .collect(Collectors.joining("\n"));
+    }
+
+    public void test() throws TestFailedException {
+        try {
+            String template = getSource(getSourceFile(templateFileName));
+            for (int i = 0; i < 2; ++i) {
+                for (String repeatable : new String[] {"", "@Repeatable(Container.class)"}) {
+                    for (RetentionPolicy policy : RetentionPolicy.values()) {
+                        final int finalI = i;
+                        Map<String, String> replacements = new HashMap<String, String>(){{
+                            put("%POLICY%", policy.toString());
+                            if (finalI != 0) {
+                                put("default.*\n", ";\n");
+                            }
+                            put("%REPEATABLE%", repeatable);
+                        }};
+                        test(template, replacements, i == 0);
+                    }
+                }
+            }
+        } catch (Throwable e) {
+            addFailure(e);
+        } finally {
+            checkStatus();
+        }
+    }
+
+    public static void main(String[] args) throws TestFailedException {
+        new AnnotationDefaultTest().test();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/classfiles/attributes/AnnotationDefault/AnnotationDefaultVerifier.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,287 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import com.sun.tools.classfile.Annotation;
+import com.sun.tools.classfile.AnnotationDefault_attribute;
+import com.sun.tools.classfile.ClassFile;
+import com.sun.tools.classfile.ConstantPool;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+public class AnnotationDefaultVerifier {
+
+    private final Map<Integer, TestElementValue> verifiers;
+
+    public AnnotationDefaultVerifier() {
+        this.verifiers = new HashMap<>();
+        verifiers.put((int) 'B', new TestIntegerElementValue());
+        verifiers.put((int) 'C', new TestIntegerElementValue());
+        verifiers.put((int) 'D', new TestDoubleElementValue());
+        verifiers.put((int) 'F', new TestFloatElementValue());
+        verifiers.put((int) 'I', new TestIntegerElementValue());
+        verifiers.put((int) 'J', new TestLongElementValue());
+        verifiers.put((int) 'S', new TestIntegerElementValue());
+        verifiers.put((int) 'Z', new TestIntegerElementValue());
+        verifiers.put((int) 's', new TestStringElementValue());
+        verifiers.put((int) 'e', new TestEnumElementValue());
+        verifiers.put((int) 'c', new TestClassElementValue());
+        verifiers.put((int) '[', new TestArrayElementValue());
+        verifiers.put((int) '@', new TestAnnotationElementValue());
+    }
+
+    public void testLength(int tag, TestResult testResult, AnnotationDefault_attribute attr) {
+        verifiers.get(tag).testLength(testResult, attr);
+    }
+
+    public void testElementValue(int tag, TestResult testResult, ClassFile classFile,
+                                 Annotation.element_value element_value, String[] values)
+            throws ConstantPool.UnexpectedEntry, ConstantPool.InvalidIndex {
+        get(tag).testElementValue(testResult, classFile, element_value, values);
+    }
+
+    private TestElementValue get(int tag) {
+        TestElementValue ev = verifiers.get(tag);
+        if (ev == null) {
+            throw new IllegalArgumentException("Unknown tag : " + (char) tag);
+        }
+        return ev;
+    }
+
+    private abstract class TestElementValue {
+        public void testLength(TestResult testCase, AnnotationDefault_attribute attr) {
+            testCase.checkEquals(attr.attribute_length, 1 + attr.default_value.length(),
+                    "attribute_length");
+        }
+
+        public String[] getValues(String[] values, int index, int length) {
+            return Arrays.copyOfRange(values, index, index + length);
+        }
+
+        public int getLength() {
+            return 1;
+        }
+
+        public abstract void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values)
+                throws ConstantPool.InvalidIndex, ConstantPool.UnexpectedEntry;
+    }
+
+    private class TestIntegerElementValue extends TestElementValue {
+
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values) throws ConstantPool.InvalidIndex {
+            Annotation.Primitive_element_value ev =
+                    (Annotation.Primitive_element_value) element_value;
+            ConstantPool.CONSTANT_Integer_info info =
+                    (ConstantPool.CONSTANT_Integer_info)
+                            classFile.constant_pool.get(ev.const_value_index);
+            testCase.checkEquals(info.value, Integer.parseInt(values[0]), "const_value_index");
+        }
+    }
+
+    private class TestLongElementValue extends TestElementValue {
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values) throws ConstantPool.InvalidIndex {
+            Annotation.Primitive_element_value ev =
+                    (Annotation.Primitive_element_value) element_value;
+            ConstantPool.CONSTANT_Long_info info =
+                    (ConstantPool.CONSTANT_Long_info)
+                            classFile.constant_pool.get(ev.const_value_index);
+            testCase.checkEquals(info.value, Long.parseLong(values[0]), "const_value_index");
+        }
+    }
+
+    private class TestFloatElementValue extends TestElementValue {
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values) throws ConstantPool.InvalidIndex {
+            Annotation.Primitive_element_value ev =
+                    (Annotation.Primitive_element_value) element_value;
+            ConstantPool.CONSTANT_Float_info info =
+                    (ConstantPool.CONSTANT_Float_info)
+                            classFile.constant_pool.get(ev.const_value_index);
+            testCase.checkEquals(info.value, Float.parseFloat(values[0]), "const_value_index");
+        }
+    }
+
+    private class TestDoubleElementValue extends TestElementValue {
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values) throws ConstantPool.InvalidIndex {
+            Annotation.Primitive_element_value ev =
+                    (Annotation.Primitive_element_value) element_value;
+            ConstantPool.CONSTANT_Double_info info =
+                    (ConstantPool.CONSTANT_Double_info)
+                            classFile.constant_pool.get(ev.const_value_index);
+            testCase.checkEquals(info.value, Double.parseDouble(values[0]), "const_value_index");
+        }
+    }
+
+    private class TestStringElementValue extends TestElementValue {
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values) throws ConstantPool.InvalidIndex {
+            Annotation.Primitive_element_value ev =
+                    (Annotation.Primitive_element_value) element_value;
+            ConstantPool.CONSTANT_Utf8_info info =
+                    (ConstantPool.CONSTANT_Utf8_info)
+                            classFile.constant_pool.get(ev.const_value_index);
+            testCase.checkEquals(info.value, values[0], "const_value_index");
+        }
+    }
+
+    private class TestEnumElementValue extends TestElementValue {
+
+        @Override
+        public int getLength() {
+            return 2;
+        }
+
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values)
+                throws ConstantPool.InvalidIndex, ConstantPool.UnexpectedEntry {
+            Annotation.Enum_element_value ev = (Annotation.Enum_element_value) element_value;
+            testCase.checkEquals(classFile.constant_pool.getUTF8Info(ev.type_name_index).value,
+                    values[0], "type_name_index");
+            testCase.checkEquals(classFile.constant_pool.getUTF8Info(ev.const_name_index).value,
+                    values[1], "const_name_index");
+        }
+    }
+
+    private class TestClassElementValue extends TestElementValue {
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values)
+                throws ConstantPool.InvalidIndex, ConstantPool.UnexpectedEntry {
+            Annotation.Class_element_value ev = (Annotation.Class_element_value) element_value;
+            testCase.checkEquals(
+                    classFile.constant_pool.getUTF8Info(ev.class_info_index).value,
+                    values[0], "class_info_index");
+        }
+    }
+
+    private class TestAnnotationElementValue extends TestElementValue {
+        @Override
+        public void testLength(TestResult testCase, AnnotationDefault_attribute attr) {
+            // Suppress, since it is hard to test the length of this kind of element values.
+        }
+
+        @Override
+        public int getLength() {
+            // Expected that the test uses DefaultAnnotation
+            // tag (1 byte) + annotation_value (2 bytes) which contains const_value
+            return 3;
+        }
+
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values)
+                throws ConstantPool.InvalidIndex, ConstantPool.UnexpectedEntry {
+            Annotation ev = ((Annotation.Annotation_element_value) element_value)
+                    .annotation_value;
+            testCase.checkEquals(
+                    classFile.constant_pool.getUTF8Info(ev.type_index).value,
+                    values[0],
+                    "type_index");
+            for (int i = 0; i < ev.num_element_value_pairs; ++i) {
+                Annotation.element_value_pair pair = ev.element_value_pairs[i];
+                testCase.checkEquals(
+                        classFile.constant_pool.getUTF8Info(pair.element_name_index).value,
+                        values[2 * i + 1],
+                        "element_name_index");
+                TestElementValue testElementValue = verifiers.get(pair.value.tag);
+                testElementValue.testElementValue(
+                        testCase,
+                        classFile,
+                        pair.value,
+                        new String[]{values[2 * i + 2]});
+            }
+        }
+    }
+
+    private class TestArrayElementValue extends TestElementValue {
+        @Override
+        public void testLength(TestResult testCase, AnnotationDefault_attribute attr) {
+            Annotation.Array_element_value ev =
+                    (Annotation.Array_element_value) attr.default_value;
+            int sizeOfTag = ev.values[0].tag == 'e' ? 0 : 1;
+            // tag (1 byte) + array header (2 byte) + length of entries
+            testCase.checkEquals(attr.attribute_length, 1 + 2 +
+                    (sizeOfTag + ev.length() / ev.num_values) * ev.num_values, "attribute_length");
+        }
+
+        @Override
+        public void testElementValue(
+                TestResult testCase,
+                ClassFile classFile,
+                Annotation.element_value element_value,
+                String[] values)
+                throws ConstantPool.InvalidIndex, ConstantPool.UnexpectedEntry {
+            Annotation.Array_element_value ev =
+                    (Annotation.Array_element_value) element_value;
+            int index = 0;
+            for (int i = 0; i < ev.num_values; ++i) {
+                TestElementValue testElementValue = verifiers.get(ev.values[i].tag);
+                int length = testElementValue.getLength();
+                testElementValue.testElementValue(
+                        testCase,
+                        classFile,
+                        ev.values[i],
+                        testElementValue.getValues(values, index, length));
+                index += length;
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/classfiles/attributes/AnnotationDefault/ExpectedValues.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ExpectedValues {
+    char tag();
+    String name();
+    String[] values();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/completionDeps/DepsAndDocLint.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8078389
+ * @summary Make sure there is no interference between completionDeps and doclint
+ * @compile -XDcompletionDeps -Xdoclint DepsAndDocLint.java
+ */
+
+public class DepsAndDocLint {
+}
--- a/langtools/test/tools/javac/diags/examples.not-yet.txt	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/diags/examples.not-yet.txt	Mon Apr 27 09:17:39 2015 -0700
@@ -93,7 +93,6 @@
 compiler.misc.verbose.retro.with.list                   # UNUSED
 compiler.misc.version.not.available                     # JavaCompiler; implies build error
 compiler.misc.where.description.captured
-compiler.misc.where.description.intersection.1
 compiler.misc.where.typevar.1
 compiler.misc.wrong.version                             # ClassReader
 compiler.warn.annotation.method.not.found               # ClassReader
@@ -115,3 +114,4 @@
 compiler.err.cant.inherit.from.anon                     # error for subclass of anonymous class
 compiler.misc.bad.class.file                            # class file is malformed
 compiler.misc.bad.const.pool.entry                      # constant pool entry has wrong type
+compiler.misc.incompatible.upper.eq.bounds
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/diags/examples/NonApplicableRepeatingAnno.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+// key: compiler.err.invalid.repeatable.annotation.not.applicable
+
+import java.lang.annotation.*;
+
+@Repeatable(Foos.class)
+@interface Foo {}
+
+@Target(ElementType.ANNOTATION_TYPE)
+@interface Foos {
+    Foo[] value();
+}
+
+public class NonApplicableRepeatingAnno {
+    @Foo @Foo int f = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/diags/examples/TypeAnnoNotApplicableInTypeContext.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+// key: compiler.err.annotation.type.not.applicable.to.type
+
+class TypeAnnoNotApplicableInTypeContext<T> {
+    @interface A { }
+    TypeAnnoNotApplicableInTypeContext<@A String> m;
+}
--- a/langtools/test/tools/javac/diags/examples/WhereCaptured.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/diags/examples/WhereCaptured.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 // key: compiler.misc.where.description.typevar
 // key: compiler.misc.where.typevar
 // key: compiler.err.cant.apply.symbol
-// key: compiler.misc.inferred.do.not.conform.to.eq.bounds
+// key: compiler.misc.incompatible.eq.bounds
 // key: compiler.misc.captured.type
 // options: -XDdiags=where,simpleNames
 // run: simple
--- a/langtools/test/tools/javac/diags/examples/WhereCaptured1.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/diags/examples/WhereCaptured1.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 // key: compiler.misc.where.description.typevar
 // key: compiler.misc.where.typevar
 // key: compiler.err.cant.apply.symbol
-// key: compiler.misc.inferred.do.not.conform.to.eq.bounds
+// key: compiler.misc.incompatible.eq.bounds
 // key: compiler.misc.captured.type
 // key: compiler.misc.type.null
 // options: -XDdiags=where,simpleNames
--- a/langtools/test/tools/javac/diags/examples/WhereIntersection.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,23 +21,19 @@
  * questions.
  */
 
-// key: compiler.misc.where.intersection
-// key: compiler.misc.where.description.intersection
+// key: compiler.misc.inferred.do.not.conform.to.upper.bounds
 // key: compiler.misc.intersection.type
+// key: compiler.misc.where.description.intersection.1
+// key: compiler.misc.where.intersection
 // key: compiler.err.prob.found.req
-// key: compiler.misc.inferred.do.not.conform.to.upper.bounds
 // options: -XDdiags=where
 // run: simple
 
 class WhereIntersection {
-    interface I1 {}
-    interface I2 {}
-    class A implements I1, I2 {}
-    class B implements I1, I2 {}
-    class Test {
-        <Z> Z m(Z z1, Z z2) { return null; }
-        void main(){
-            A a = m(new A(), new B());
-        }
+    static <T> T f(T a, T b) {
+        return a;
+    }
+    static Object[] main(int a, float b) {
+        return f(a, b);
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection2.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+// key: compiler.err.intf.expected.here
+// key: compiler.misc.inconvertible.types
+// key: compiler.misc.where.description.typevar
+// key: compiler.misc.where.typevar
+// key: compiler.misc.intersection.type
+// key: compiler.misc.where.description.intersection
+// key: compiler.misc.where.intersection
+// key: compiler.err.prob.found.req
+// options: -XDdiags=where
+// run: simple
+
+class WhereIntersection2 {
+    interface I1 {}
+    interface I2 {}
+    class A implements I1, I2 {}
+    class B implements I1, I2 {}
+    class Test {
+        <Z extends A&B> Z m(Z z1, Z z2) { return null; }
+        <T extends I1 & I2> T m2(){
+            return m(new A(), new B());
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/diags/examples/WhereTypeVar2.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+// key: compiler.misc.incompatible.upper.lower.bounds
+// key: compiler.misc.where.description.typevar
+// key: compiler.misc.where.typevar
+// key: compiler.err.prob.found.req
+// options: -XDdiags=where
+// run: simple
+
+class WhereTypeVar2 {
+    interface I1 {}
+    interface I2 {}
+    class A implements I1, I2 {}
+    class B implements I1, I2 {}
+    class Test {
+        <Z> Z m(Z z1, Z z2) { return null; }
+        void main(){
+            A a = m(new A(), new B());
+        }
+    }
+}
--- a/langtools/test/tools/javac/generics/diamond/neg/Neg07.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/diamond/neg/Neg07.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 6939620 7020044 8062373
+ * @bug 6939620 7020044 8062373 8078024
  *
  * @summary  Check that diamond works where LHS is supertype of RHS (1-ary constructor)
  * @author mcimadamore
--- a/langtools/test/tools/javac/generics/diamond/neg/Neg07.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/diamond/neg/Neg07.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,3 +1,3 @@
-Neg07.java:17:27: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg07.Foo), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number)
-Neg07.java:18:27: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg07.Foo), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number)
+Neg07.java:17:27: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg07.Foo), (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.String)
+Neg07.java:18:27: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg07.Foo), (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.String)
 2 errors
--- a/langtools/test/tools/javac/generics/inference/4941882/T4941882.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/4941882/T4941882.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test    /nodynamiccopyright/
- * @bug     4941882
+ * @bug     4941882 8078024
  * @summary incorrect inference for result of lub(int[], float[])
  * @compile/fail/ref=T4941882.out -XDrawDiagnostics  T4941882.java
  */
--- a/langtools/test/tools/javac/generics/inference/4941882/T4941882.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/4941882/T4941882.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-T4941882.java:13:17: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Object&java.io.Serializable&java.lang.Cloneable, java.lang.Object[],java.lang.Object)
+T4941882.java:13:17: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.lower.bounds: T, java.lang.Object[],java.lang.Object, float[],int[])
 1 error
--- a/langtools/test/tools/javac/generics/inference/6315770/T6315770.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/6315770/T6315770.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /**
  * @test /nodynamiccopyright/
- * @bug     6315770
+ * @bug     6315770 8078024
  * @summary javac inference allows creation of strange types: Integer & Runnable
  * @author Maurizio Cimadamore
  *
--- a/langtools/test/tools/javac/generics/inference/6315770/T6315770.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/6315770/T6315770.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,3 +1,3 @@
 T6315770.java:16:42: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.bounds: T, java.lang.String,java.lang.Integer,java.lang.Runnable)
-T6315770.java:17:40: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Integer,java.lang.Runnable)
+T6315770.java:17:40: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.lower.bounds: T, java.lang.Integer,java.lang.Runnable, java.lang.String)
 2 errors
--- a/langtools/test/tools/javac/generics/inference/6611449/T6611449.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/6611449/T6611449.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /**
  * @test /nodynamiccopyright/
- * @bug 6611449
+ * @bug 6611449 8078024
  * @summary Internal Error thrown during generic method/constructor invocation
  * @compile/fail/ref=T6611449.out -XDrawDiagnostics T6611449.java
  */
--- a/langtools/test/tools/javac/generics/inference/6611449/T6611449.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/6611449/T6611449.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
-T6611449.java:18:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T,T), (compiler.misc.infer.arg.length.mismatch: T))}
-T6611449.java:19:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T,T), (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S))}
-T6611449.java:20:9: compiler.err.cant.apply.symbol: kindname.method, m1, T, int, kindname.class, T6611449<S>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S)
-T6611449.java:21:9: compiler.err.cant.apply.symbol: kindname.method, m2, T,T, int,int, kindname.class, T6611449<S>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, S)
+T6611449.java:18:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T), (compiler.misc.incompatible.upper.lower.bounds: T, S, java.lang.Integer)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T,T), (compiler.misc.infer.arg.length.mismatch: T))}
+T6611449.java:19:9: compiler.err.cant.apply.symbols: kindname.constructor, T6611449, int,int,{(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T), (compiler.misc.infer.arg.length.mismatch: T)),(compiler.misc.inapplicable.method: kindname.constructor, T6611449, <T>T6611449(T,T), (compiler.misc.incompatible.upper.lower.bounds: T, S, java.lang.Integer))}
+T6611449.java:20:9: compiler.err.cant.apply.symbol: kindname.method, m1, T, int, kindname.class, T6611449<S>, (compiler.misc.incompatible.upper.lower.bounds: T, S, java.lang.Integer)
+T6611449.java:21:9: compiler.err.cant.apply.symbol: kindname.method, m2, T,T, int,int, kindname.class, T6611449<S>, (compiler.misc.incompatible.upper.lower.bounds: T, S, java.lang.Integer)
 4 errors
--- a/langtools/test/tools/javac/generics/inference/6650759/T6650759m.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/6650759/T6650759m.java	Mon Apr 27 09:17:39 2015 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug     6650759
+ * @bug     6650759 8078024
  * @summary Inference of formal type parameter (unused in formal parameters) is not performed
  * @compile/fail/ref=T6650759m.out T6650759m.java -XDrawDiagnostics
  */
--- a/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/6650759/T6650759m.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-T6650759m.java:43:36: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Integer,java.lang.Object)
+T6650759m.java:43:36: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.lower.bounds: Z, java.lang.Integer,java.lang.Object, java.lang.String)
 1 error
--- a/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8030741
+ * @bug 8030741 8078024
  * @summary Inference: implement eager resolution of return types, consistent with JDK-8028800
  * @compile/fail/ref=EagerReturnTypeResolutionTestb.out -XDrawDiagnostics EagerReturnTypeResolutionTestb.java
  * @author Dan Smith
--- a/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTestb.out	Mon Apr 27 09:17:39 2015 -0700
@@ -2,37 +2,37 @@
 EagerReturnTypeResolutionTestb.java:43:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ?>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
 EagerReturnTypeResolutionTestb.java:44:29: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:45:26: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:74:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.I<java.lang.Integer>, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:74:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:75:15: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:77:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
-EagerReturnTypeResolutionTestb.java:78:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.I<java.lang.Integer>, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:78:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:79:21: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:81:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:82:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.I<java.lang.Integer>, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:82:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:83:24: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.I<java.lang.Integer>,EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:85:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:85:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:86:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ?>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
-EagerReturnTypeResolutionTestb.java:87:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:87:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:89:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:90:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.I<?>, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
-EagerReturnTypeResolutionTestb.java:91:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.J<java.lang.Integer>, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:90:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.I<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.I<?>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.I<?>,EagerReturnTypeResolutionTestb.I<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:91:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:92:15: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:94:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.J<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.J<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
-EagerReturnTypeResolutionTestb.java:95:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.J<java.lang.Integer>, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:95:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:96:21: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:98:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.J<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:99:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.J<java.lang.Integer>, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:99:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>)
 EagerReturnTypeResolutionTestb.java:100:24: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.J<java.lang.Integer>,EagerReturnTypeResolutionTestb.J<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:102:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.K, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
-EagerReturnTypeResolutionTestb.java:103:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.K, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
-EagerReturnTypeResolutionTestb.java:104:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.K, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
-EagerReturnTypeResolutionTestb.java:105:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.K, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
+EagerReturnTypeResolutionTestb.java:102:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:103:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:104:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.String>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.String>)
+EagerReturnTypeResolutionTestb.java:105:15: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
 EagerReturnTypeResolutionTestb.java:106:15: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:108:9: compiler.err.cant.apply.symbol: kindname.method, takeIString, EagerReturnTypeResolutionTestb.I<java.lang.String>, EagerReturnTypeResolutionTestb.I<compiler.misc.type.captureof: 1, ? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object))
-EagerReturnTypeResolutionTestb.java:109:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.K, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
+EagerReturnTypeResolutionTestb.java:109:21: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
 EagerReturnTypeResolutionTestb.java:110:21: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:112:30: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: EagerReturnTypeResolutionTestb.I<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>>, EagerReturnTypeResolutionTestb.I<java.lang.String>,java.lang.Object)
-EagerReturnTypeResolutionTestb.java:113:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.inferred.do.not.conform.to.eq.bounds: EagerReturnTypeResolutionTestb.K, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
+EagerReturnTypeResolutionTestb.java:113:24: compiler.err.cant.apply.symbol: kindname.method, eq2, java.util.List<T>,java.util.List<T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.eq.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>)
 EagerReturnTypeResolutionTestb.java:114:24: compiler.err.cant.apply.symbol: kindname.method, upper2, java.util.List<? super T>,java.util.List<? super T>, java.util.List<EagerReturnTypeResolutionTestb.J<java.lang.Integer>>,java.util.List<EagerReturnTypeResolutionTestb.K>, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.incompatible.upper.bounds: T, EagerReturnTypeResolutionTestb.K,EagerReturnTypeResolutionTestb.J<java.lang.Integer>,java.lang.Object)
 EagerReturnTypeResolutionTestb.java:174:9: compiler.err.cant.apply.symbol: kindname.method, takeLong, long, java.lang.Double, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.infer.no.conforming.instance.exists: , T, long))
 EagerReturnTypeResolutionTestb.java:175:9: compiler.err.cant.apply.symbol: kindname.method, takeLong, long, java.lang.Double, kindname.class, EagerReturnTypeResolutionTestb, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.infer.no.conforming.instance.exists: , T, long))
--- a/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/PrimitiveTypeBoxingTest.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/PrimitiveTypeBoxingTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8030741
+ * @bug 8030741 8078024
  * @summary Inference: implement eager resolution of return types, consistent with JDK-8028800
  * @compile/fail/ref=PrimitiveTypeBoxingTest.out -XDrawDiagnostics PrimitiveTypeBoxingTest.java
  */
--- a/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/PrimitiveTypeBoxingTest.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/PrimitiveTypeBoxingTest.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,3 +1,3 @@
-PrimitiveTypeBoxingTest.java:19:9: compiler.err.cant.apply.symbol: kindname.method, m1, PrimitiveTypeBoxingTest.F<Z>,Z, @490,int, kindname.class, PrimitiveTypeBoxingTest, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, java.lang.Long,java.lang.Object)
-PrimitiveTypeBoxingTest.java:20:9: compiler.err.cant.apply.symbol: kindname.method, m2, Z,PrimitiveTypeBoxingTest.F<Z>, int,@559, kindname.class, PrimitiveTypeBoxingTest, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, java.lang.Long,java.lang.Object)
+PrimitiveTypeBoxingTest.java:19:9: compiler.err.cant.apply.symbol: kindname.method, m1, PrimitiveTypeBoxingTest.F<Z>,Z, @498,int, kindname.class, PrimitiveTypeBoxingTest, (compiler.misc.incompatible.upper.lower.bounds: Z, java.lang.Long,java.lang.Object, java.lang.Integer)
+PrimitiveTypeBoxingTest.java:20:9: compiler.err.cant.apply.symbol: kindname.method, m2, Z,PrimitiveTypeBoxingTest.F<Z>, int,@567, kindname.class, PrimitiveTypeBoxingTest, (compiler.misc.incompatible.upper.lower.bounds: Z, java.lang.Long,java.lang.Object, java.lang.Integer)
 2 errors
--- a/langtools/test/tools/javac/generics/wildcards/6762569/T6762569b.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/wildcards/6762569/T6762569b.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test    /nodynamiccopyright/
- * @bug     6762569
+ * @bug     6762569 8078024
  * @summary Javac crashes with AssertionError in Types.containedBy
  * @compile/fail/ref=T6762569b.out -XDrawDiagnostics  T6762569b.java
  */
--- a/langtools/test/tools/javac/generics/wildcards/6762569/T6762569b.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/generics/wildcards/6762569/T6762569b.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-T6762569b.java:13:9: compiler.err.cant.apply.symbol: kindname.method, m, T,java.util.List<? super java.util.List<T>>, java.lang.String,java.util.List<compiler.misc.type.captureof: 1, ? super java.util.List<? extends java.lang.Number>>, kindname.class, T6762569b, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number,java.lang.Object)
+T6762569b.java:13:9: compiler.err.cant.apply.symbol: kindname.method, m, T,java.util.List<? super java.util.List<T>>, java.lang.String,java.util.List<compiler.misc.type.captureof: 1, ? super java.util.List<? extends java.lang.Number>>, kindname.class, T6762569b, (compiler.misc.incompatible.upper.lower.bounds: T, java.lang.Number,java.lang.Object, java.lang.String)
 1 error
--- a/langtools/test/tools/javac/lambda/8016177/T8016177g.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/8016177/T8016177g.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8016081 8016178 8069545
+ * @bug 8016081 8016178 8069545 8078024
  * @summary structural most specific and stuckness
  * @compile/fail/ref=T8016177g.out -XDrawDiagnostics T8016177g.java
  */
--- a/langtools/test/tools/javac/lambda/8016177/T8016177g.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/8016177/T8016177g.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,3 +1,3 @@
-T8016177g.java:34:14: compiler.err.cant.apply.symbol: kindname.method, print, java.lang.String, Test.Person, kindname.class, Test, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.inferred.do.not.conform.to.upper.bounds: Test.Person, java.lang.String,java.lang.Object))
+T8016177g.java:34:14: compiler.err.cant.apply.symbol: kindname.method, print, java.lang.String, Test.Person, kindname.class, Test, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.incompatible.upper.lower.bounds: R, java.lang.String,java.lang.Object, Test.Person))
 T8016177g.java:35:20: compiler.err.cant.apply.symbol: kindname.method, abs, int, java.lang.Double, kindname.class, Test, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.infer.no.conforming.instance.exists: , R, int))
 2 errors
--- a/langtools/test/tools/javac/lambda/MethodReference41.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference41.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8003280
+ * @bug 8003280 8078024
  * @summary Add lambda tests
  *  check that diamond inference is applied when using raw constructor reference qualifier
  * @compile/fail/ref=MethodReference41.out -XDrawDiagnostics MethodReference41.java
--- a/langtools/test/tools/javac/lambda/MethodReference41.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference41.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,4 +1,4 @@
-MethodReference41.java:38:11: compiler.err.cant.apply.symbol: kindname.method, m1, MethodReference41.SAM1, @767, kindname.class, MethodReference41, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.String, kindname.class, MethodReference41.Foo<X>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number))))
-MethodReference41.java:40:11: compiler.err.cant.apply.symbol: kindname.method, m3, MethodReference41.SAM3, @811, kindname.class, MethodReference41, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.Object, kindname.class, MethodReference41.Foo<X>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Object, java.lang.Number))))
+MethodReference41.java:38:11: compiler.err.cant.apply.symbol: kindname.method, m1, MethodReference41.SAM1, @775, kindname.class, MethodReference41, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.String, kindname.class, MethodReference41.Foo<X>, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.String))))
+MethodReference41.java:40:11: compiler.err.cant.apply.symbol: kindname.method, m3, MethodReference41.SAM3, @819, kindname.class, MethodReference41, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.Object, kindname.class, MethodReference41.Foo<X>, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.Object))))
 MethodReference41.java:41:9: compiler.err.ref.ambiguous: m4, kindname.method, m4(MethodReference41.SAM2), MethodReference41, kindname.method, m4(MethodReference41.SAM3), MethodReference41
 3 errors
--- a/langtools/test/tools/javac/lambda/MethodReference43.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference43.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8003280
+ * @bug 8003280 8078024
  * @summary Add lambda tests
  *  check that diamond inference is applied when using raw constructor reference qualifier
  * @compile/fail/ref=MethodReference43.out -XDrawDiagnostics MethodReference43.java
--- a/langtools/test/tools/javac/lambda/MethodReference43.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference43.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
-MethodReference43.java:45:11: compiler.err.cant.apply.symbol: kindname.method, m1, MethodReference43.SAM1, @897, kindname.class, MethodReference43, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.String, kindname.class, MethodReference43.Foo<X>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number))))
-MethodReference43.java:47:11: compiler.err.cant.apply.symbol: kindname.method, m3, MethodReference43.SAM3, @941, kindname.class, MethodReference43, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.Object, kindname.class, MethodReference43.Foo<X>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Object, java.lang.Number))))
+MethodReference43.java:45:11: compiler.err.cant.apply.symbol: kindname.method, m1, MethodReference43.SAM1, @905, kindname.class, MethodReference43, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.String, kindname.class, MethodReference43.Foo<X>, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.String))))
+MethodReference43.java:47:11: compiler.err.cant.apply.symbol: kindname.method, m3, MethodReference43.SAM3, @949, kindname.class, MethodReference43, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.Object, kindname.class, MethodReference43.Foo<X>, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.Object))))
 MethodReference43.java:49:9: compiler.err.ref.ambiguous: m5, kindname.method, m5(MethodReference43.SAM3), MethodReference43, kindname.method, m5(MethodReference43.SAM4), MethodReference43
-MethodReference43.java:49:11: compiler.err.cant.apply.symbol: kindname.method, m5, MethodReference43.SAM3, @985, kindname.class, MethodReference43, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.Object, kindname.class, MethodReference43.Foo<X>, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Object, java.lang.Number))))
+MethodReference43.java:49:11: compiler.err.cant.apply.symbol: kindname.method, m5, MethodReference43.SAM3, @993, kindname.class, MethodReference43, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.constructor, (compiler.misc.cant.apply.symbol: kindname.constructor, Foo, java.lang.Number, java.lang.Object, kindname.class, MethodReference43.Foo<X>, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.Object))))
 4 errors
--- a/langtools/test/tools/javac/lambda/MethodReference46.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference46.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8003280
+ * @bug 8003280 8078024
  * @summary Add lambda tests
  *  check that generic method reference is inferred when type parameters are omitted
  * @compile/fail/ref=MethodReference46.out -XDrawDiagnostics MethodReference46.java
--- a/langtools/test/tools/javac/lambda/MethodReference46.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference46.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,4 +1,4 @@
-MethodReference46.java:40:11: compiler.err.cant.apply.symbol: kindname.method, g1, MethodReference46.SAM1, @809, kindname.class, MethodReference46, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.cant.apply.symbol: kindname.method, m, X, java.lang.String, kindname.class, MethodReference46, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.String, java.lang.Number))))
-MethodReference46.java:42:11: compiler.err.cant.apply.symbol: kindname.method, g3, MethodReference46.SAM3, @877, kindname.class, MethodReference46, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.cant.apply.symbol: kindname.method, m, X, java.lang.Object, kindname.class, MethodReference46, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Object, java.lang.Number))))
+MethodReference46.java:40:11: compiler.err.cant.apply.symbol: kindname.method, g1, MethodReference46.SAM1, @817, kindname.class, MethodReference46, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.cant.apply.symbol: kindname.method, m, X, java.lang.String, kindname.class, MethodReference46, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.String))))
+MethodReference46.java:42:11: compiler.err.cant.apply.symbol: kindname.method, g3, MethodReference46.SAM3, @885, kindname.class, MethodReference46, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.cant.apply.symbol: kindname.method, m, X, java.lang.Object, kindname.class, MethodReference46, (compiler.misc.incompatible.upper.lower.bounds: X, java.lang.Number, java.lang.Object))))
 MethodReference46.java:43:9: compiler.err.ref.ambiguous: g4, kindname.method, g4(MethodReference46.SAM2), MethodReference46, kindname.method, g4(MethodReference46.SAM3), MethodReference46
 3 errors
--- a/langtools/test/tools/javac/lambda/MethodReference58.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference58.java	Mon Apr 27 09:17:39 2015 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8004102
+ * @bug 8004102 8078024
  * @summary Add support for generic functional descriptors
  * @compile/fail/ref=MethodReference58.out -XDrawDiagnostics MethodReference58.java
  */
--- a/langtools/test/tools/javac/lambda/MethodReference58.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference58.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-MethodReference58.java:41:23: compiler.err.prob.found.req: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.cant.apply.symbol: kindname.method, g, Z, X, kindname.class, MethodReference58, (compiler.misc.inferred.do.not.conform.to.upper.bounds: X, java.lang.Number)))
+MethodReference58.java:41:23: compiler.err.prob.found.req: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.cant.apply.symbol: kindname.method, g, Z, X, kindname.class, MethodReference58, (compiler.misc.incompatible.upper.lower.bounds: Z, java.lang.Number, X)))
 1 error
--- a/langtools/test/tools/javac/lambda/MethodReference68.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference68.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8016175
+ * @bug 8016175 8078024
  * @summary Add bottom-up type-checking support for unambiguous method references
  * @compile/fail/ref=MethodReference68.out -XDrawDiagnostics MethodReference68.java
  */
--- a/langtools/test/tools/javac/lambda/MethodReference68.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/MethodReference68.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,2 +1,2 @@
-MethodReference68.java:21:10: compiler.err.cant.apply.symbol: kindname.method, g, MethodReference68.F<Z>,Z[], @493,int, kindname.class, MethodReference68, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, MethodReference68.Foo,java.lang.Object)
+MethodReference68.java:21:10: compiler.err.cant.apply.symbol: kindname.method, g, MethodReference68.F<Z>,Z[], @501,int, kindname.class, MethodReference68, (compiler.misc.incompatible.upper.lower.bounds: Z, MethodReference68.Foo,java.lang.Object, java.lang.Integer)
 1 error
--- a/langtools/test/tools/javac/lambda/TargetType02.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/TargetType02.java	Mon Apr 27 09:17:39 2015 -0700
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8003280 8029718
+ * @bug 8003280 8029718 8078024
  * @summary Add lambda tests
  *  check overload resolution and target type inference w.r.t. generic methods
  * Should always use lambda body structure to disambiguate overload resolution
--- a/langtools/test/tools/javac/lambda/TargetType02.out	Fri Apr 24 15:45:25 2015 +0300
+++ b/langtools/test/tools/javac/lambda/TargetType02.out	Mon Apr 27 09:17:39 2015 -0700
@@ -1,4 +1,4 @@
-TargetType02.java:33:14: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Integer, java.lang.String)
+TargetType02.java:33:14: compiler.err.prob.found.req: (compiler.misc.incompatible.upper.lower.bounds: Z, java.lang.String, java.lang.Integer)
 TargetType02.java:34:9: compiler.err.ref.ambiguous: call3, kindname.method, <Z>call3(TargetType02.S1<Z>), TargetType02, kindname.method, <Z>call3(TargetType02.S2<Z>), TargetType02
 TargetType02.java:35:9: compiler.err.ref.ambiguous: call3, kindname.method, <Z>call3(TargetType02.S1<Z>), TargetType02, kindname.method, <Z>call3(TargetType02.S2<Z>), TargetType02
 TargetType02.java:37:20: compiler.err.ref.ambiguous: call4, kindname.method, <Z>call4(TargetType02.S1<Z>), TargetType02, kindname.method, <Z>call4(TargetType02.S2<Z>), TargetType02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/tree/ArrayTypeToString.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8068737
+ * @summary Tests ArrayType.toString with type annotations present
+ * @build ArrayTypeToString
+ * @compile/ref=ArrayTypeToString.out -XDrawDiagnostics -processor ArrayTypeToString -proc:only ArrayTypeToString.java
+ */
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.Set;
+
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic.Kind;
+
+import com.sun.tools.javac.code.Symbol.VarSymbol;
+
+@Retention(RetentionPolicy.SOURCE)
+@Target({ ElementType.TYPE_USE, ElementType.FIELD })
+@interface Foo {
+    int value();
+}
+
+@SupportedAnnotationTypes("Foo")
+@SupportedSourceVersion(SourceVersion.RELEASE_9)
+public class ArrayTypeToString extends AbstractProcessor {
+
+    @Foo(0) String @Foo(1)[] @Foo(2)[] @Foo(3)[] field;
+
+    public boolean process(Set<? extends TypeElement> tes, RoundEnvironment renv) {
+        for (TypeElement te : tes) {
+            for (Element e : renv.getElementsAnnotatedWith(te)) {
+                String s = ((VarSymbol) e).type.toString();
+
+                // Normalize output by removing whitespace
+                s = s.replaceAll("\\s", "");
+
+                // Expected: "@Foo(0)java.lang.String@Foo(3)[]@Foo(2)[]@Foo(1)[]"
+                processingEnv.getMessager().printMessage(Kind.NOTE, s);
+            }
+        }
+        return true;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/tree/ArrayTypeToString.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,1 @@
+- compiler.note.proc.messager: @Foo(0)java.lang.String@Foo(1)[]@Foo(2)[]@Foo(3)[]
--- a/langtools/test/tools/javac/varargs/T8049075/VarargsAndWildcardParameterizedTypeTest.java	Fri Apr 24 15:45:25 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8049075
- * @summary javac, wildcards and generic vararg method invocation not accepted
- * @compile VarargsAndWildcardParameterizedTypeTest.java
- */
-
-class VarargsAndWildcardParameterizedTypeTest {
-    interface I<T> {
-        String m(T... t);
-    }
-
-    void m() {
-        I<? super Integer> i = null;
-        i.m(Integer.valueOf(1), Integer.valueOf(1));
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/OtherPackage.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+/*
+ * Auxiliary file for VarargsInferredPrivateType
+ */
+
+package otherpackage;
+
+public class OtherPackage {
+    public static Private getPrivate() {
+        return new Private();
+    }
+
+    private static class Private {}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsAndWildcardParameterizedTypeTest.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8049075
+ * @summary javac, wildcards and generic vararg method invocation not accepted
+ * @compile VarargsAndWildcardParameterizedTypeTest.java
+ * @compile -source 8 VarargsAndWildcardParameterizedTypeTest.java
+ * @compile -source 7 VarargsAndWildcardParameterizedTypeTest.java
+ */
+
+class VarargsAndWildcardParameterizedTypeTest {
+    interface I<T> {
+        String m(T... t);
+    }
+
+    void m() {
+        I<? super Integer> i = null;
+        i.m(Integer.valueOf(1), Integer.valueOf(1));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsAndWildcardParameterizedTypeTest2.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8075520
+ * @summary Varargs access check mishandles capture variables
+ * @compile VarargsAndWildcardParameterizedTypeTest2.java
+ * @compile -source 8 VarargsAndWildcardParameterizedTypeTest2.java
+ * @compile -source 7 VarargsAndWildcardParameterizedTypeTest2.java
+ */
+
+class VarargsAndWildcardParameterizedTypeTest2 {
+    interface I {
+        <T> void m(T... t);
+    }
+
+    interface Box<T> {
+        T get();
+    }
+
+    void m(I i, Box<? extends Number> b) {
+        i.m(b.get());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsAndWildcardParameterizedTypeTest3.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8075520
+ * @summary Varargs access check mishandles capture variables
+ * @compile VarargsAndWildcardParameterizedTypeTest3.java
+ * @compile -source 8 VarargsAndWildcardParameterizedTypeTest3.java
+ * @compile -source 7 VarargsAndWildcardParameterizedTypeTest3.java
+ */
+
+class VarargsAndWildcardParameterizedTypeTest2 {
+    interface I {
+        <T> void m(Box<? extends T> iter, T... t);
+    }
+
+    interface Box<T> {}
+
+    void m(I i, Box<? extends Number> b) {
+        i.m(b);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsAndWildcardParameterizedTypeTest4.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8075520
+ * @summary Varargs access check mishandles capture variables
+ * @compile VarargsAndWildcardParameterizedTypeTest4.java
+ * @compile -source 8 VarargsAndWildcardParameterizedTypeTest4.java
+ * @compile -source 7 VarargsAndWildcardParameterizedTypeTest4.java
+ */
+
+class VarargsAndWildcardParameterizedTypeTest2 {
+    interface I {
+        <T> void m(Box<T> iter, T... t);
+    }
+
+    interface Box<T> {}
+
+    void m(I i, Box<? extends Number> b) {
+        i.m(b);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsInferredPrivateType-source7.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,4 @@
+VarargsInferredPrivateType.java:16:10: compiler.err.cant.apply.symbol: kindname.method, m, T[], otherpackage.OtherPackage.Private, kindname.interface, VarargsInferredPrivateType.I, (compiler.misc.inaccessible.varargs.type: otherpackage.OtherPackage.Private, kindname.class, VarargsInferredPrivateType)
+- compiler.note.unchecked.filename: VarargsInferredPrivateType.java
+- compiler.note.unchecked.recompile
+1 error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsInferredPrivateType.java	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,18 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8077786
+ * @summary Check varargs access against inferred signature
+ * @compile/fail/ref=VarargsInferredPrivateType.out -nowarn -XDrawDiagnostics VarargsInferredPrivateType.java OtherPackage.java
+ * @compile/fail/ref=VarargsInferredPrivateType.out -source 8 -nowarn -XDrawDiagnostics VarargsInferredPrivateType.java OtherPackage.java
+ * @compile/fail/ref=VarargsInferredPrivateType-source7.out -source 7 -nowarn -XDrawDiagnostics VarargsInferredPrivateType.java OtherPackage.java
+ */
+
+class VarargsInferredPrivateType {
+    interface I {
+        <T> void m(T... t);
+    }
+
+    void m(I i) {
+        i.m(otherpackage.OtherPackage.getPrivate());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/varargs/access/VarargsInferredPrivateType.out	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,4 @@
+VarargsInferredPrivateType.java:16:12: compiler.err.prob.found.req: (compiler.misc.inaccessible.varargs.type: otherpackage.OtherPackage.Private, kindname.class, VarargsInferredPrivateType)
+- compiler.note.unchecked.filename: VarargsInferredPrivateType.java
+- compiler.note.unchecked.recompile
+1 error
--- a/make/CompileJavaModules.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/CompileJavaModules.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -262,6 +262,26 @@
 
 ################################################################################
 
+java.instrument_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
+java.logging_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
+java.management_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
+java.prefs_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
+java.transaction_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
 java.sql_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
 java.sql_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS
 
@@ -340,6 +360,14 @@
 
 ################################################################################
 
+java.security.jgss_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
+java.smartcardio_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
+
+################################################################################
+
 java.xml.crypto_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
 java.xml.crypto_COPY := .dtd .xml
 java.xml.crypto_CLEAN := .properties
--- a/make/Images.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/Images.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
 ############################################################################
 
 MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \
-               jdk.security.auth jdk.security.jgss jdk.pack200
+               jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom
 
 # providers
 PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \
@@ -57,6 +57,10 @@
   PROVIDER_MODULES += jdk.crypto.ucrypto
 endif
 
+ifeq ($(OPENJDK_TARGET_OS), windows)
+  MAIN_MODULES += jdk.accessibility
+endif
+
 ifeq ($(OPENJDK_TARGET_OS), macosx)
   MAIN_MODULES += jdk.deploy.osx
 endif
--- a/make/Javadoc.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/Javadoc.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -1,4 +1,4 @@
-# Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -81,6 +81,8 @@
 JNLP_FIRST_COPYRIGHT_YEAR = 1998
 PLUGIN2_FIRST_COPYRIGHT_YEAR = 2007
 JDKNET_FIRST_COPYRIGHT_YEAR = 2014
+JACCESSAPI_FIRST_COPYRIGHT_YEAR = 2002
+
 
 # Oracle name
 FULL_COMPANY_NAME = Oracle and/or its affiliates
@@ -1233,6 +1235,58 @@
 
 #############################################################
 #
+# jaccessdocs - Java Accessibility Utilities
+#
+
+ALL_OTHER_TARGETS += jaccessdocs
+
+JACCESSAPI_DOCDIR := $(JRE_API_DOCSDIR)/accessibility/jaccess/spec
+JACCESSAPI2COREAPI := ../../../$(JDKJRE2COREAPI)
+JACCESSAPI_DOCTITLE := JACCESS API
+JACCESSAPI_WINDOWTITLE := JACCESS API
+JACCESSAPI_HEADER := <strong>JACCESS API</strong>
+JACCESSAPI_BOTTOM := $(call CommonBottom,$(JACCESSAPI_FIRST_COPYRIGHT_YEAR))
+# JACCESSAPI_PKGS is located in NON_CORE_PKGS.gmk
+
+JACCESSAPI_INDEX_HTML = $(JACCESSAPI_DOCDIR)/index.html
+JACCESSAPI_OPTIONS_FILE = $(DOCSTMPDIR)/jaccess.options
+JACCESSAPI_PACKAGES_FILE = $(DOCSTMPDIR)/jaccess.packages
+
+jaccessdocs: $(JACCESSAPI_INDEX_HTML)
+
+# Set relative location to core api document root
+$(JACCESSAPI_INDEX_HTML): GET2DOCSDIR=$(JACCESSAPI2COREAPI)/..
+
+# Run javadoc if the index file is out of date or missing
+$(JACCESSAPI_INDEX_HTML): $(JACCESSAPI_OPTIONS_FILE) $(JACCESSAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE)
+	$(prep-javadoc)
+	$(call JavadocSummary,$(JACCESSAPI_OPTIONS_FILE),$(JACCESSAPI_PACKAGES_FILE))
+	$(JAVADOC_CMD) -d $(@D) \
+	    @$(JACCESSAPI_OPTIONS_FILE) @$(JACCESSAPI_PACKAGES_FILE)
+
+# Create file with javadoc options in it
+$(JACCESSAPI_OPTIONS_FILE):
+	$(prep-target)
+	@($(call COMMON_JAVADOCFLAGS) ; \
+	  $(call COMMON_JAVADOCTAGS) ; \
+	  $(call OptionOnly,-Xdoclint:all) ; \
+	  $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \
+	  $(call OptionPair,-encoding,ascii) ; \
+	  $(call OptionOnly,-nodeprecatedlist) ; \
+	  $(call OptionPair,-doctitle,$(JACCESSAPI_DOCTITLE)) ; \
+	  $(call OptionPair,-windowtitle,$(JACCESSAPI_WINDOWTITLE) $(DRAFT_WINTITLE)); \
+	  $(call OptionPair,-header,$(JACCESSAPI_HEADER)$(DRAFT_HEADER)) ; \
+	  $(call OptionPair,-bottom,$(JACCESSAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \
+	  $(call OptionTrip,-linkoffline,$(JACCESSAPI2COREAPI),$(COREAPI_DOCSDIR)/); \
+	) >> $@
+
+# Create a file with the package names in it
+$(JACCESSAPI_PACKAGES_FILE): $(call PackageDependencies,$(JACCESSAPI_PKGS))
+	$(prep-target)
+	$(call PackageFilter,$(JACCESSAPI_PKGS))
+
+#############################################################
+#
 # jdk.net docs
 #
 
--- a/make/Main.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/Main.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -392,6 +392,9 @@
   # links against libosxapp.
   jdk.deploy.osx-libs: java.desktop-libs
 
+  # jdk.accessibility depends on java.desktop
+  jdk.accessibility-libs: java.desktop-libs
+
   # This dependency needs to be explicitly declared. jdk.jdi-gensrc generates a
   # header file used by jdk.jdwp.agent-libs. The jdk.jdwp.agent-gensrc is a
   # virtual target.
--- a/make/common/MakeBase.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/common/MakeBase.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -36,6 +36,10 @@
   $(error MakeBase.gmk needs SPEC set to a proper spec.gmk)
 endif
 
+# By defining this pseudo target, make will automatically remove targets
+# if their recipe fails so that a rebuild is automatically triggered on the
+# next make invocation.
+.DELETE_ON_ERROR:
 
 ##############################
 # Functions
@@ -484,6 +488,13 @@
       $(shell $(MKDIR) -p $1 $2 $3 $4 $5 $6 $7 $8 $9)))
 
 ################################################################################
+# Assign a variable only if it is empty
+# Param 1 - Variable to assign
+# Param 2 - Value to assign
+SetIfEmpty = \
+    $(if $($(strip $1)),,$(eval $(strip $1) := $2))
+
+################################################################################
 
 ifeq ($(OPENJDK_TARGET_OS),solaris)
   # On Solaris, if the target is a symlink and exists, cp won't overwrite.
--- a/make/common/NON_CORE_PKGS.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/common/NON_CORE_PKGS.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -99,6 +99,8 @@
       jdk.net \
       jdk.management.cmm
 
+JACCESSAPI_PKGS = com.sun.java.accessibility.util
+
 # non-core packages in rt.jar
 NON_CORE_PKGS = $(DOMAPI_PKGS) \
     $(MGMT_PKGS) \
@@ -110,4 +112,5 @@
     $(SMARTCARDIO_PKGS) \
     $(SCTPAPI_PKGS) \
     $(APPLE_EXT_PKGS) \
-    $(JDK_PKGS)
+    $(JDK_PKGS) \
+    $(JACCESSAPI_PKGS)
--- a/make/common/NativeCompilation.gmk	Fri Apr 24 15:45:25 2015 +0300
+++ b/make/common/NativeCompilation.gmk	Mon Apr 27 09:17:39 2015 -0700
@@ -34,6 +34,73 @@
   $(error You must include MakeBase.gmk prior to including NativeCompilation.gmk)
 endif
 
+################################################################################
+# Define a native toolchain configuration that can be used by
+# SetupNativeCompilation calls
+#
+# Parameter 1 is the name of the toolchain definition
+#
+# Remaining parameters are named arguments:
+#   EXTENDS - Optional parent definition to get defaults from
+#   CC - The C compiler
+#   CXX - The C++ compiler
+#   LD - The Linker
+#   AR - Static linker
+#   AS - Assembler
+#   MT - Windows MT tool
+#   RC - Windows RC tool
+#   SYSROOT_CFLAGS - Compiler flags for using the specific sysroot
+#   SYSROOT_LDFLAGS - Linker flags for using the specific sysroot
+DefineNativeToolchain = $(NamedParamsMacroTemplate)
+define DefineNativeToolchainBody
+  # If extending another definition, get default values from that,
+  # otherwise, nothing more needs to be done as variable assignments
+  # already happened in NamedParamsMacroTemplate.
+  ifneq ($$($1_EXTENDS), )
+    $$(call SetIfEmpty, $1_CC, $$($$($1_EXTENDS)_CC))
+    $$(call SetIfEmpty, $1_CXX, $$($$($1_EXTENDS)_CXX))
+    $$(call SetIfEmpty, $1_LD, $$($$($1_EXTENDS)_LD))
+    $$(call SetIfEmpty, $1_AR, $$($$($1_EXTENDS)_AR))
+    $$(call SetIfEmpty, $1_AS, $$($$($1_EXTENDS)_AS))
+    $$(call SetIfEmpty, $1_MT, $$($$($1_EXTENDS)_MT))
+    $$(call SetIfEmpty, $1_RC, $$($$($1_EXTENDS)_RC))
+    $$(call SetIfEmpty, $1_SYSROOT_CFLAGS, $$($$($1_EXTENDS)_SYSROOT_CFLAGS))
+    $$(call SetIfEmpty, $1_SYSROOT_LDFLAGS, $$($$($1_EXTENDS)_SYSROOT_LDFLAGS))
+  endif
+endef
+
+# Create a default toolchain with the main compiler and linker
+$(eval $(call DefineNativeToolchain, TOOLCHAIN_DEFAULT, \
+    CC := $(CC), \
+    CXX := $(CXX), \
+    LD := $(LD), \
+    AR := $(AR), \
+    AS := $(AS), \
+    MT := $(MT), \
+    RC := $(RC), \
+    SYSROOT_CFLAGS := $(SYSROOT_CFLAGS), \
+    SYSROOT_LDFLAGS := $(SYSROOT_LDFLAGS), \
+))
+
+# Create a toolchain where linking is done with the C++ linker
+$(eval $(call DefineNativeToolchain, TOOLCHAIN_LINK_CXX, \
+    EXTENDS := TOOLCHAIN_DEFAULT, \
+    LD := $(LDCXX), \
+))
+
+# Create a toolchain with the BUILD compiler, used for build tools that
+# are to be run during the build.
+# The BUILD_SYSROOT_*FLAGS variables are empty for now.
+$(eval $(call DefineNativeToolchain, TOOLCHAIN_BUILD, \
+    EXTENDS := TOOLCHAIN_DEFAULT, \
+    CC := $(BUILD_CC), \
+    LD := $(BUILD_LD), \
+    SYSROOT_CFLAGS := $(BUILD_SYSROOT_CFLAGS), \
+    SYSROOT_LDFLAGS := $(BUILD_SYSROOT_LDFLAGS), \
+))
+
+################################################################################
+
 # Extensions of files handled by this macro.
 NATIVE_SOURCE_EXTENSIONS := %.s %.c %.cpp %.m %.mm
 
@@ -70,6 +137,7 @@
     -e 's/\#.*//' \
     -e 's/^[^:]*: *//' \
     -e 's/ *\\$$$$//' \
+    -e 's/^[	 ]*//' \
     -e '/^$$$$/ d' \
     -e 's/$$$$/ :/' \
     #
@@ -170,8 +238,8 @@
 # and the targets generated are listed in a variable by that name.
 #
 # Remaining parameters are named arguments. These include:
+#   TOOLCHAIN Name of toolchain setup to use. Defaults to TOOLCHAIN_DEFAULT.
 #   SRC one or more directory roots to scan for C/C++ files.
-#   LANG C or C++
 #   CFLAGS the compiler flags to be used, used both for C and C++.
 #   CXXFLAGS the compiler flags to be used for c++, if set overrides CFLAGS.
 #   LDFLAGS the linker flags to be used, used both for C and C++.
@@ -192,7 +260,7 @@
 #   REORDER reorder file
 #   DEBUG_SYMBOLS add debug symbols (if configured on)
 #   CC the compiler to use, default is $(CC)
-#   LDEXE the linker to use for linking executables, default is $(LDEXE)
+#   LD the linker to use, default is $(LD)
 #   OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST
 #   DISABLED_WARNINGS_<toolchain> Disable the given warnings for the specified toolchain
 SetupNativeCompilation = $(NamedParamsMacroTemplate)
@@ -288,39 +356,28 @@
     $$(error Neither PROGRAM, LIBRARY nor STATIC_LIBRARY has been specified for SetupNativeCompilation)
   endif
 
-  ifeq (,$$($1_LANG))
-    $$(error You have to specify LANG for native compilation $1)
-  endif
-  ifeq (C,$$($1_LANG))
-    ifeq ($$($1_LDEXE),)
-      $1_LDEXE:=$(LDEXE)
-    endif
-    ifeq ($$($1_LD),)
-      $1_LD:=$(LD)
+  # Setup the toolchain to be used
+  $$(call SetIfEmpty, $1_TOOLCHAIN, TOOLCHAIN_DEFAULT)
+  $$(call SetIfEmpty, $1_CC, $$($$($1_TOOLCHAIN)_CC))
+  $$(call SetIfEmpty, $1_CXX, $$($$($1_TOOLCHAIN)_CXX))
+  $$(call SetIfEmpty, $1_LD, $$($$($1_TOOLCHAIN)_LD))
+  $$(call SetIfEmpty, $1_AR, $$($$($1_TOOLCHAIN)_AR))
+  $$(call SetIfEmpty, $1_AS, $$($$($1_TOOLCHAIN)_AS))
+  $$(call SetIfEmpty, $1_MT, $$($$($1_TOOLCHAIN)_MT))
+  $$(call SetIfEmpty, $1_RC, $$($$($1_TOOLCHAIN)_RC))
+  $$(call SetIfEmpty, $1_SYSROOT_CFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_CFLAGS))
+  $$(call SetIfEmpty, $1_SYSROOT_LDFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_LDFLAGS))
+
+  ifneq ($$($1_MANIFEST), )
+    ifeq ($$($1_MANIFEST_VERSION), )
+      $$(error If MANIFEST is provided, then MANIFEST_VERSION is required in $1)
     endif
-  else
-    ifeq (C++,$$($1_LANG))
-      ifeq ($$($1_LD),)
-        $1_LD:=$(LDCXX)
-      endif
-      ifeq ($$($1_LDEXE),)
-        $1_LDEXE:=$(LDEXECXX)
-      endif
-    else
-      $$(error Unknown native language $$($1_LANG) for $1)
-    endif
-  endif
-
-  ifeq ($$($1_CC),)
-    $1_CC:=$(CC)
-  endif
-  ifeq ($$($1_CXX),)
-    $1_CXX:=$(CXX)
   endif
 
   # Make sure the dirs exist.
   $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR))
-  $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
+  $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),, \
+      $$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
 
   # Find all files in the source trees. Sort to remove duplicates.
   $1_ALL_SRCS := $$(sort $$(call CacheFind,$$($1_SRC)))
@@ -451,9 +508,9 @@
   # Track variable changes for all variables that affect the compilation command
   # lines for all object files in this setup. This includes at least all the
   # variables used in the call to add_native_source below.
-  $1_COMPILE_VARDEPS := $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $(SYSROOT_CFLAGS) \
+  $1_COMPILE_VARDEPS := $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
       $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) \
-      $$($1_CC) $$($1_CXX) $$($1_ASFLAGS) \
+      $$($1_CC) $$($1_CXX) $$($1_AS) $$($1_ASFLAGS) \
       $$(foreach s, $$($1_SRCS), \
           $$($1_$$(notdir $$s)_CFLAGS) $$($1_$$(notdir $$s)_CXXFLAGS))
   $1_COMPILE_VARDEPS_FILE := $$(call DependOnVariable, $1_COMPILE_VARDEPS, \
@@ -462,9 +519,9 @@
   # Now call add_native_source for each source file we are going to compile.
   $$(foreach p,$$($1_SRCS), \
       $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \
-          $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $(SYSROOT_CFLAGS), \
+          $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS), \
           $$($1_CC), \
-          $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $(SYSROOT_CFLAGS), \
+          $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS), \
           $$($1_CXX), $$($1_ASFLAGS))))
 
   # Setup rule for printing progress info when compiling source files.
@@ -489,29 +546,21 @@
       -include $$($1_RES_DEP)
       -include $$($1_RES_DEP_TARGETS)
 
-      $1_RES_VARDEPS := $(RC) $$($1_RC_FLAGS)
+      $1_RES_VARDEPS := $$($1_RC) $$($1_RC_FLAGS)
       $1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \
           $$($1_RES).vardeps)
 
       $$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE)
 		$(ECHO) $(LOG_INFO) "Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$(notdir $$($1_TARGET)))"
-		$(RC) $$($1_RC_FLAGS) $(SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
+		$$($1_RC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
 		    $$($1_VERSIONINFO_RESOURCE)
                 # Windows RC compiler does not support -showIncludes, so we mis-use CL for this.
-		$(CC) $$($1_RC_FLAGS) $(SYSROOT_CFLAGS) -showIncludes -nologo -TC \
+		$$($1_CC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) -showIncludes -nologo -TC \
 		    $(CC_OUT_OPTION)$$($1_RES_DEP).obj $$($1_VERSIONINFO_RESOURCE) > $$($1_RES_DEP).raw 2>&1 || exit 0
 		($(ECHO) $$($1_RES): \\ \
 		&& $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_RES_DEP).raw) > $$($1_RES_DEP)
 		$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_RES_DEP) > $$($1_RES_DEP_TARGETS)
     endif
-    ifneq (,$$($1_MANIFEST))
-      $1_GEN_MANIFEST:=$$($1_OBJECT_DIR)/$$($1_PROGRAM).manifest
-      IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
-      $1_MANIFEST_VARDEPS_FILE := $$(call DependOnVariable, IMVERSIONVALUE, \
-          $$($1_GEN_MANIFEST).vardeps)
-      $$($1_GEN_MANIFEST): $$($1_MANIFEST) $$($1_MANIFEST_VARDEPS_FILE)
-		$(SED) 's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@
-    endif
   endif
 
   # mapfile doesnt seem to be implemented on macosx (yet??)
@@ -622,15 +671,15 @@
 
     $1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX)
 
-    $1_VARDEPS := $$($1_LD) $(SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
-        $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+    $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
+        $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX) $$($1_CREATE_DEBUGINFO_CMDS)
     $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
         $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
 
     $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \
         $$($1_DEBUGINFO_EXTRA_DEPS) $$($1_VARDEPS_FILE)
 		$(ECHO) $(LOG_INFO) "Linking $$($1_BASENAME)"
-		$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $(SYSROOT_LDFLAGS) \
+		$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \
 		    $(LD_OUT_OPTION)$$@ \
 		    $$($1_EXPECTED_OBJS) $$($1_RES) \
 		    $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
@@ -644,14 +693,15 @@
   endif
 
   ifneq (,$$($1_STATIC_LIBRARY))
-    $1_VARDEPS := $(AR) $$($1_ARFLAGS) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+    $1_VARDEPS := $$($1_AR) $$($1_ARFLAGS) $$($1_LDFLAGS_SUFFIX) \
+        $$($1_EXTRA_LDFLAGS_SUFFIX)
     $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
         $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
 
     # Generating a static library, ie object file archive.
     $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_VARDEPS_FILE)
 	$(ECHO) $(LOG_INFO) "Archiving $$($1_STATIC_LIBRARY)"
-	$(AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_EXPECTED_OBJS) \
+	$$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_EXPECTED_OBJS) \
 	    $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
   endif
 
@@ -659,20 +709,23 @@
     # A executable binary has been specified, setup the target for it.
     $1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX)
 
-    $1_VARDEPS := $$($1_LDEXE) $(SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
-        $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+    $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
+        $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX) $$($1_MT) \
+        $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION)
     $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
         $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
 
-    $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_GEN_MANIFEST) \
+    $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_MANIFEST) \
         $$($1_DEBUGINFO_EXTRA_DEPS) $$($1_VARDEPS_FILE)
 		$(ECHO) $(LOG_INFO) "Linking executable $$($1_BASENAME)"
-		$$($1_LDEXE) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $(SYSROOT_LDFLAGS) \
+		$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \
 		    $(EXE_OUT_OPTION)$$($1_TARGET) \
 		    $$($1_EXPECTED_OBJS) $$($1_RES) \
 		    $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
-                ifneq (,$$($1_GEN_MANIFEST))
-		  $(MT) -nologo -manifest $$($1_GEN_MANIFEST) -outputresource:$$@;#1
+                ifeq ($(OPENJDK_TARGET_OS), windows)
+                  ifneq ($$($1_MANIFEST), )
+		    $$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_PROGRAM).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
+                  endif
                 endif
                 # This only works if the openjdk_codesign identity is present on the system. Let
                 # silently fail otherwise.
--- a/modules.xml	Fri Apr 24 15:45:25 2015 +0300
+++ b/modules.xml	Mon Apr 27 09:17:39 2015 -0700
@@ -2,7 +2,7 @@
 
 <!--
 
-   Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved.
    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
    This code is free software; you can redistribute it and/or modify it
@@ -248,18 +248,24 @@
       <to>java.logging</to>
       <to>java.management</to>
       <to>java.naming</to>
+      <to>java.prefs</to>
       <to>java.rmi</to>
       <to>java.security.jgss</to>
       <to>java.security.sasl</to>
       <to>java.sql</to>
+      <to>java.xml</to>
+      <to>java.xml.ws</to>
       <to>jdk.charsets</to>
+      <to>jdk.crypto.pkcs11</to>
       <to>jdk.deploy.osx</to>
+      <to>jdk.httpserver</to>
       <to>jdk.jartool</to>
       <to>jdk.jconsole</to>
       <to>jdk.jvmstat</to>
       <to>jdk.pack200</to>
       <to>jdk.security.auth</to>
       <to>jdk.security.jgss</to>
+      <to>jdk.snmp</to>
     </export>
     <export>
       <name>sun.net.dns</name>
@@ -751,7 +757,7 @@
     </export>
     <export>
       <name>sun.awt</name>
-      <to>jdk.accessbridge</to>
+      <to>jdk.accessibility</to>
     </export>
   </module>
   <module>
@@ -1838,6 +1844,23 @@
     </export>
   </module>
   <module>
+    <name>jdk.xml.dom</name>
+    <depend>java.base</depend>
+    <depend re-exports="true">java.xml</depend>
+    <export>
+      <name>org.w3c.dom.css</name>
+    </export>
+    <export>
+      <name>org.w3c.dom.html</name>
+    </export>
+    <export>
+      <name>org.w3c.dom.stylesheets</name>
+    </export>
+    <export>
+      <name>org.w3c.dom.xpath</name>
+    </export>
+  </module>
+  <module>
     <name>jdk.xml.ws</name>
     <depend>java.base</depend>
     <depend>java.compiler</depend>
@@ -1852,4 +1875,9 @@
     <name>jdk.zipfs</name>
     <depend>java.base</depend>
   </module>
+  <module>
+    <name>jdk.accessibility</name>
+    <depend>java.base</depend>
+    <depend>java.desktop</depend>
+  </module>
 </modules>
--- a/nashorn/.hgtags	Fri Apr 24 15:45:25 2015 +0300
+++ b/nashorn/.hgtags	Mon Apr 27 09:17:39 2015 -0700
@@ -293,3 +293,5 @@
 3bcfcb13c23402cf435079766eb2f9a3c4f890e8 jdk9-b57
 5096a7cca5f0fda814832ac777966bea893f837e jdk9-b58
 ea4e794c3927df4e03f53202e15a3248375b7902 jdk9-b59
+c55ce3738888b6c7596780b7b2ad1aa0f9ebccd7 jdk9-b60
+89937bee80bd28826de8cf60aa63a21edab63f79 jdk9-b61
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/clickcounter.fxml	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,65 @@
+<!-- simple self-contained .fxml file -->
+
+<!--
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<?import javafx.scene.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+<?language javascript?>
+
+<VBox xmlns:fx="http://javafx.com/fxml">
+    <!-- script to handle events -->
+
+    <fx:script>
+
+    // button click handler
+    var clickCount = 0;
+    function onButtonClick(event) {
+        // get another control via scene object
+        var scene = event.source.scene;
+        var textField = scene.lookup("#nameText");
+
+        print(textField.text + ", you clicked " + ++clickCount + " times!");
+    }
+
+    </fx:script>
+
+    <!-- GUI description -->
+    <children>
+    <HBox>
+        <Label text="Your name please:"/>
+        <TextField fx:id="nameText" text="Nashorn"/>
+    </HBox>
+    <Button text="Click!" onAction="onButtonClick(event)"/>
+    </children>
+</VBox>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/colorfulcircles.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Nashorn port of ColorfulCircles.java JavaFX animation example at
+// https://docs.oracle.com/javafx/2/get_started/ColorfulCircles.java.html
+// ColorfulCircles.java is under the following license terms:
+ 
+/*
+* Copyright (c) 2011, 2012 Oracle and/or its affiliates.
+* All rights reserved. Use is subject to license terms.
+*
+* This file is available and licensed under the following license:
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* - Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* - Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in
+* the documentation and/or other materials provided with the distribution.
+* - Neither the name of Oracle nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+ 
+// Usage: jjs -fx colorfulcircles.fx
+ 
+// Porting note: No imports - just load these fx scripts!
+load("fx:controls.js");
+load("fx:graphics.js");
+ 
+// Porting note: whatever is inside
+// public void start(Stage primaryStage)
+// goes into "start" function
+ 
+function start(primaryStage) {
+    // Porting note: Replace types with 'var'. "Group root" becomes "var root".
+    // and so on..
+ 
+    var root = new Group();
+    var scene = new Scene(root, 800, 600, Color.BLACK);
+    primaryStage.setScene(scene);
+    var circles = new Group();
+    // Porting note: for (int i = 0....) becomes for (var i = 0...)
+ 
+    for (var i = 0; i < 30; i++) {
+        var circle = new Circle(150, Color.web("white", 0.05));
+        circle.setStrokeType(StrokeType.OUTSIDE);
+        circle.setStroke(Color.web("white", 0.16));
+        circle.setStrokeWidth(4);
+        circles.getChildren().add(circle);
+    }
+ 
+    // Porting note: There is no "f" suffix for float literals in JS.
+    // LinearGradient(0f, 1f, 1f, 0f,..) becomes just
+    // LinearGradient(0, 1, 1, 0,..)
+ 
+    // Porting note: LinearGradient's constructor is a varargs method
+    // No need to create Stop[] just pass more Stop objects at the end!
+    var colors = new Rectangle(scene.getWidth(), scene.getHeight(),
+       new LinearGradient(0, 1, 1, 0, true, CycleMethod.NO_CYCLE,
+       new Stop(0, Color.web("#f8bd55")),
+       new Stop(0.14, Color.web("#c0fe56")),
+       new Stop(0.28, Color.web("#5dfbc1")),
+       new Stop(0.43, Color.web("#64c2f8")),
+       new Stop(0.57, Color.web("#be4af7")),
+       new Stop(0.71, Color.web("#ed5fc2")),
+       new Stop(0.85, Color.web("#ef504c")),
+       new Stop(1, Color.web("#f2660f"))));
+    colors.widthProperty().bind(scene.widthProperty());
+    colors.heightProperty().bind(scene.heightProperty());
+    var blendModeGroup =
+       new Group(new Group(new Rectangle(scene.getWidth(), scene.getHeight(),
+         Color.BLACK), circles), colors);
+    colors.setBlendMode(BlendMode.OVERLAY);
+    root.getChildren().add(blendModeGroup);
+    circles.setEffect(new BoxBlur(10, 10, 3));
+ 
+    // Porting note: Java code uses static import of
+    // java.lang.Math.random. Just use JS Math.random here
+    var random = Math.random;
+ 
+    var timeline = new Timeline();
+    // Porting note: Java enhanced for loop
+    // for (Node circle : circles.getChildren())
+    // becomes
+    // for each (var circle: circles.getChildren())
+  
+    for each (var circle in circles.getChildren()) {
+        timeline.getKeyFrames().addAll(
+            new KeyFrame(Duration.ZERO, // set start position at 0
+            new KeyValue(circle.translateXProperty(), random() * 800),
+            new KeyValue(circle.translateYProperty(), random() * 600)),
+            new KeyFrame(new Duration(40000), // set end position at 40s
+            new KeyValue(circle.translateXProperty(), random() * 800),
+            new KeyValue(circle.translateYProperty(), random() * 600)));
+    }
+
+    // play 40s of animation
+    timeline.play();
+    primaryStage.show();
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/colorpick.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,52 @@
+#simple color picker example
+
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ 
+if (! $OPTIONS._fx) {
+    print("Usage: jjs -fx colorpick.js");
+    exit(1);
+}
+ 
+var ColorPicker = Java.type("javafx.scene.control.ColorPicker");
+var Scene = Java.type("javafx.scene.Scene");
+ 
+function start(stage) {
+    var picker = new ColorPicker();
+    // just print color details in stdout for fun!
+    picker.onAction = function(evt) {
+        var ld = Object.bindProperties({}, picker.value);
+        print(JSON.stringify(ld));
+    }
+    var scene = new Scene(picker, 200, 30);
+    stage.scene = scene;
+    stage.show();
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/datepick.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,51 @@
+#simple sample to use #javafx8 date picker with #nashorn
+
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+if (! $OPTIONS._fx) {
+    print("Usage: jjs -fx datepick.js");
+    exit(1);
+}
+
+load("fx:controls.js");
+
+function start(stage) {
+    var picker = new DatePicker();
+    picker.onAction = function(evt) {
+        var ld = Object.bindProperties({}, picker.value);
+        print(JSON.stringify(ld));
+    }
+
+    var scene = new Scene(picker, 100, 30);
+    stage.scene = scene;
+    stage.show();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/fjson.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Usage: jjs -scripting flexijson.js fjson.js
+
+var obj = FlexiJSON.parse(<<EOF
+// this is a comment
+{
+    foo: 23,
+    bar: [ 34, 454, 54,],
+    // inline comment here
+
+    /** multi line
+        comments are fine too! */
+
+    # shell style line comment is fine!
+
+    regex: /gdfg/i, // regexp literal
+
+    str: <<END
+Multiple line strings via nashorn 
+-scripting mode extension as well
+END
+}
+EOF)
+
+print(obj.foo);
+print(obj.bar);
+print(obj.regex);
+print(obj.str);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/flexijson.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,167 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Hjson - "the Human JSON - A configuration file format that 
+ * caters to humans and helps reduce the errors they make"
+ * See also: http://hjson.org/
+ *
+ * I wanted to see if we can use Nashorn Parser API (jdk9) to support
+ * similar flexible JSON extension with #nashorn. In this FlexiJSON.parse
+ * implementation, Nashorn Parser API is used to validate that the 
+ * extendable flexi JSON is "data only" (i.e., no executable code) and
+ * then 'eval'ed to make an object out of it.
+ *
+ * FlexiJSON allows the following:
+ *
+ *   * single and mutliple line comments anywhere
+ *   * non-quoted property names and values
+ *   * regexp literal values
+ *   * omitting trailing comma
+ *
+ * When nashorn -scripting mode is enabled, FlexiJSON supports these
+ * as well:
+ *
+ *   * shell style # comments
+ *   * multiple line (Unix heredoc style) string values
+ */
+
+"use strict";
+
+function FlexiJSON() {}
+
+// helper to locate Nashorn Parser API classes
+FlexiJSON.treeType = function(name) {
+    return Java.type("jdk.nashorn.api.tree." + name);
+}
+
+// Nashorn Parser API classes used
+FlexiJSON.ArrayLiteral = FlexiJSON.treeType("ArrayLiteralTree");
+FlexiJSON.ExpressionStatement = FlexiJSON.treeType("ExpressionStatementTree");
+FlexiJSON.ObjectLiteral = FlexiJSON.treeType("ObjectLiteralTree");
+FlexiJSON.RegExpLiteral = FlexiJSON.treeType("RegExpLiteralTree");
+FlexiJSON.Literal = FlexiJSON.treeType("LiteralTree");
+FlexiJSON.Parser = FlexiJSON.treeType("Parser");
+FlexiJSON.SimpleTreeVisitor = FlexiJSON.treeType("SimpleTreeVisitorES5_1");
+
+// FlexiJSON.parse API
+
+FlexiJSON.parse = function(str) {
+    var parser = (typeof $OPTIONS == "undefined")? 
+        FlexiJSON.Parser.create() :
+        FlexiJSON.Parser.create("-scripting");
+
+    // force the string to be an expression by putting it inside (, )
+    str = "(" + str + ")";
+    var ast = parser.parse("<flexijsondoc>", str, null);
+    // Should not happen. parse would have thrown syntax error
+    if (!ast) {
+        return undefined;
+    }
+
+    // allowed 'literal' values in flexi JSON
+    function isLiteral(node) {
+        return node instanceof FlexiJSON.ArrayLiteral ||
+            node instanceof FlexiJSON.Literal ||
+            node instanceof FlexiJSON.ObjectLiteral ||
+            node instanceof FlexiJSON.RegExpLiteral;
+    }
+
+    var visitor;
+    ast.accept(visitor = new (Java.extend(FlexiJSON.SimpleTreeVisitor)) {
+         lineMap: null,
+
+         throwError: function(msg, node) {
+             if (this.lineMap) {
+                 var pos = node.startPosition;
+                 var line = this.lineMap.getLineNumber(pos);
+                 var column = this.lineMap.getColumnNumber(pos);
+                 // we introduced extra '(' at start. So, adjust column number
+                 msg = msg + " @ " + line + ":" + (column - 1);
+             }
+             throw new TypeError(msg);
+         },
+
+         visitLiteral: function(node, extra) {
+             print(node.value);
+         },
+
+         visitExpressionStatement: function(node, extra) {
+             var expr = node.expression;
+             if (isLiteral(expr)) {
+                 expr.accept(visitor, extra);
+             } else {
+                 this.throwError("only literals can occur", expr);
+             }
+         },
+
+         visitArrayLiteral: function(node, extra) {
+             for each (var elem in node.elements) {
+                 if (isLiteral(elem)) {
+                     elem.accept(visitor, extra);
+                 } else {
+                     this.throwError("only literal array element value allowed", elem);
+                 }
+             }
+         },
+
+         visitObjectLiteral: function(node, extra) {
+             for each (var prop in node.properties) {
+                 if (prop.getter != null || prop.setter != null) {
+                     this.throwError("getter/setter property not allowed", node);
+                 }
+
+                 var value = prop.value;
+                 if (isLiteral(value)) {
+                     value.accept(visitor, extra);
+                 } else {
+                     this.throwError("only literal property value allowed", value);
+                 }
+             }
+         },
+
+         visitCompilationUnit: function(node, extra) {
+             this.lineMap = node.lineMap;
+             var elements = node.sourceElements;
+             if (elements.length > 1) {
+                 this.throwError("more than one top level expression", node.sourceElements[1]);
+             } 
+             var stat = node.sourceElements[0];
+             if (! (stat instanceof FlexiJSON.ExpressionStatement)) {
+                 this.throwError("only one top level expresion allowed", stat);
+             }
+             stat.accept(visitor, extra);
+         },
+    }, null);
+
+    // safe to eval given string as flexi JSON!
+    return eval(str);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/fxml_example.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,86 @@
+#Usage: jjs -fx fxml_example.js
+#nashorn simple example using FXML with #javafx
+
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ 
+// See also https://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html
+ 
+if (! $OPTIONS._fx) {
+    print("Usage: jjs -fx fxml_example.js");
+    exit(1);
+}
+ 
+// inline FXML document here
+var fxml = <<EOF
+ 
+<?import javafx.scene.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+ 
+<VBox xmlns:fx="http://javafx.com/fxml">
+    <children>
+    <!-- ids will be used script later -->
+    <HBox>
+        <Label text="Your name please:"/>
+        <TextField fx:id="nameText" text="Nashorn"/>
+    </HBox>
+    <Button fx:id="clickButton" text="Click!"/>
+    </children>
+</VBox>
+ 
+EOF
+ 
+// Java and FX classes used
+var ByteArrayInputStream = Java.type("java.io.ByteArrayInputStream");
+var FXMLLoader = Java.type("javafx.fxml.FXMLLoader");
+var Scene = Java.type("javafx.scene.Scene");
+ 
+function start(stage) {
+    var loader = new FXMLLoader();
+    // load FXML from a string
+    var root = loader.load(new ByteArrayInputStream(fxml.getBytes("UTF-8")));
+ 
+    // get the button and the text field controls
+    var button = root.lookup("#clickButton");
+    var textField = root.lookup("#nameText");
+ 
+    // event handler for button
+    var clickCount = 0;
+    button.onAction = function() {
+        print(textField.text + ", you clicked me: " + ++clickCount + " time(s)");
+    }
+ 
+    var scene = new Scene(root, 300, 275);
+    stage.title = "FXML Example";
+    stage.scene = scene;
+    stage.show();
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/samples/fxmlrunner.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,64 @@
+#Usage: jjs -fx fxmlrunner.js -- <.fxml file>
+
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ 
+// See also https://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html
+
+// Simple script to "run" a .FXML file specified in
+// command line. FXML file is expected to have inline
+// fx:script to handle GUI events. i.e., self-contained
+// FXML file is assumed.
+ 
+var file = arguments[0];
+var File = Java.type("java.io.File"); 
+if (!$OPTIONS._fx || !file || !new File(file).isFile()) {
+    print("Usage: jjs -fx fxmlrunner.js -- <.fxml file> [width] [height]");
+    exit(1);
+}
+
+// optional stage width and height from command line
+var width = arguments[1]? parseInt(arguments[1]) : 400;
+var height = arguments[2]? parseInt(arguments[2]) : 300;
+
+// JavaFX classes used
+var FXMLLoader = Java.type("javafx.fxml.FXMLLoader");
+var Scene = Java.type("javafx.scene.Scene");
+ 
+function start(stage) {
+    // load FXML
+    var root = FXMLLoader.load(new File(file).toURL());
+    // show it in a scene
+    var scene = new Scene(root, width, height);
+    stage.title = file;
+    stage.scene = scene;
+    stage.show();
+} 
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java	Fri Apr 24 15:45:25 2015 +0300
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java	Mon Apr 27 09:17:39 2015 -0700
@@ -297,6 +297,20 @@
     }
 
     /**
+     * Gets the flags for a scope call site.
+     * @param symbol a scope symbol
+     * @return the correct flags for the scope call site
+     */
+    private int getScopeCallSiteFlags(final Symbol symbol) {
+        assert symbol.isScope();
+        final int flags = getCallSiteFlags() | CALLSITE_SCOPE;
+        if (isEvalCode() && symbol.isGlobal()) {
+            return flags; // Don't set fast-scope flag on non-declared globals in eval code - see JDK-8077955.
+        }
+        return isFastScope(symbol) ? flags | CALLSITE_FAST_SCOPE : flags;
+    }
+
+    /**
      * Are we generating code for 'eval' code?
      * @return true if currently compiled code is 'eval' code.
      */
@@ -333,7 +347,7 @@
         }
 
         assert identNode.getSymbol().isScope() : identNode + " is not in scope!";
-        final int flags = CALLSITE_SCOPE | getCallSiteFlags();
+        final int flags = getScopeCallSiteFlags(symbol);
         if (isFastScope(symbol)) {
             // Only generate shared scope getter for fast-scope symbols so we know we can dial in correct scope.
             if (symbol.getUseCount() > SharedScopeCall.FAST_SCOPE_GET_THRESHOLD && !isOptimisticOrRestOf()) {
@@ -457,7 +471,7 @@
         } else {
             method.load(-1);
         }
-        return lc.getScopeGet(unit, symbol, valueType, flags | CALLSITE_FAST_SCOPE).generateInvoke(method);
+        return lc.getScopeGet(unit, symbol, valueType, flags).generateInvoke(method);
     }
 
     private class LoadScopeVar extends OptimisticOperation {
@@ -495,7 +509,7 @@
 
     private class LoadFastScopeVar extends LoadScopeVar {
         LoadFastScopeVar(final IdentNode identNode, final TypeBounds resultBounds, final int flags) {
-            super(identNode, resultBounds, flags | CALLSITE_FAST_SCOPE);
+            super(identNode, resultBounds, flags);
         }
 
         @Override
@@ -506,7 +520,7 @@
 
     private MethodEmitter storeFastScopeVar(final Symbol symbol, final int flags) {
         loadFastScopeProto(symbol, true);
-        method.dynamicSet(symbol.getName(), flags | CALLSITE_FAST_SCOPE, false);
+        method.dynamicSet(symbol.getName(), flags, false);
         return method;
     }
 
@@ -1426,7 +1440,6 @@
             private MethodEmitter sharedScopeCall(final IdentNode identNode, final int flags) {
                 final Symbol symbol = identNode.getSymbol();
                 final boolean isFastScope = isFastScope(symbol);
-                final int scopeCallFlags = flags | (isFastScope ? CALLSITE_FAST_SCOPE : 0);
                 new OptimisticOperation(callNode, resultBounds) {
                     @Override
                     void loadStack() {
@@ -1449,7 +1462,7 @@
                         // As shared scope calls are only used in non-optimistic compilation, we switch from using
                         // TypeBounds to just a single definitive type, resultBounds.widest.
                         final SharedScopeCall scopeCall = codegenLexicalContext.getScopeCall(unit, symbol,
-                                identNode.getType(), resultBounds.widest, paramTypes, scopeCallFlags);
+                                identNode.getType(), resultBounds.widest, paramTypes, flags);
                         scopeCall.generateInvoke(method);
                     }
                 }.emit();
@@ -1550,7 +1563,7 @@
                 final Symbol symbol = node.getSymbol();
 
                 if (symbol.isScope()) {
-                    final int flags = getCallSiteFlags() | CALLSITE_SCOPE;
+                    final int flags = getScopeCallSiteFlags(symbol);
                     final int useCount = symbol.getUseCount();
 
                     // Threshold for generating shared scope callsite is lower for fast scope symbols because we know
@@ -3292,7 +3305,7 @@
                 // block scoped variables need a DECLARE flag to signal end of temporal dead zone (TDZ)
                 method.loadCompilerConstant(SCOPE);
                 method.loadUndefined(Type.OBJECT);
-                final int flags = CALLSITE_SCOPE | getCallSiteFlags() | (varNode.isBlockScoped() ? CALLSITE_DECLARE : 0);
+                final int flags = getScopeCallSiteFlags(identSymbol) | (varNode.isBlockScoped() ? CALLSITE_DECLARE : 0);
                 assert isFastScope(identSymbol);
                 storeFastScopeVar(identSymbol, flags);
             }
@@ -3309,7 +3322,7 @@
         if (needsScope) {
             loadExpressionUnbounded(init);
             // block scoped variables need a DECLARE flag to signal end of temporal dead zone (TDZ)
-            final int flags = CALLSITE_SCOPE | getCallSiteFlags() | (varNode.isBlockScoped() ? CALLSITE_DECLARE : 0);
+            final int flags = getScopeCallSiteFlags(identSymbol) | (varNode.isBlockScoped() ? CALLSITE_DECLARE : 0);
             if (isFastScope(identSymbol)) {
                 storeFastScopeVar(identSymbol, flags);
             } else {
@@ -4443,7 +4456,7 @@
                     final Symbol symbol = node.getSymbol();
                     assert symbol != null;
                     if (symbol.isScope()) {
-                        final int flags = CALLSITE_SCOPE | getCallSiteFlags();
+                        final int flags = getScopeCallSiteFlags(symbol);
                         if (isFastScope(symbol)) {
                             storeFastScopeVar(symbol, flags);
                         } else {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/basic/JDK-8071928.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * JDK-8071928: Instance properties with getters returning wrong values
+ *
+ * @test
+ * @run
+ */
+
+
+var types = {};
+
+function Type() {}
+
+Type.prototype.getName = function() {
+    return this._name;
+};
+
+function defineType(init) {
+    return Object.create(Type.prototype, {
+        _name: { get: function() { return init.name; } }
+    });
+}
+
+types.A = defineType({ name: 'A' });
+types.B = defineType({ name: 'B' });
+types.C = defineType({ name: 'C' });
+types.D = defineType({ name: 'D' });
+
+var keys = Object.keys(types);
+for (var i = 0; i < keys.length; i++) {
+    var t = types[keys[i]];
+    if (t.getName() != keys[i]) {
+        throw 'wrong name for ' + keys[i] + ': ' + t.getName();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/basic/JDK-8073846.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * JDK-8073846: Javascript for-in loop returned extra keys
+ *
+ * @test
+ * @run
+ */
+
+var obj = {};
+
+var list = [
+    '2100000',
+    '420000',
+    '430000'
+];
+
+for (var i = 0; i < list.length; i++) {
+    if (obj[list[i]]) print("duplicate: " + list[i]);
+    obj[list[i]] = 'obj' + list[i]
+}
+
+var count = 0;
+for (var a in obj) {
+    count++;
+    if ('obj' + a !== obj[a]) {
+        throw 'wrong key or value: ' + a + ', ' + obj[a];
+    }
+}
+
+if (count !== 3) {
+    throw 'wrong entry count: ' + count;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/basic/JDK-8077955.js	Mon Apr 27 09:17:39 2015 -0700
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * JDK-8077955: Undeclared globals in eval code should not be handled as fast scope
+ *
+ * @test
+ * @run
+ * @fork
+ * @option -Dnashorn.fields.objects
+ */
+
+var m = new javax.script.ScriptEngineManager();
+var e = m.getEngineByName('js');
+
+// leave the whitespace - need both eval("e") at same column for this test!
+
+e.eval('function f(e) {            eval("e") } f()');
+e.eval('function f() { var e = 33; eval("e") } f()');
+
+function f() {
+    Function.call.call(function x() { eval("x") }); eval("x")
+}
+
+try {
+    f();
+    fail("Should have thrown ReferenceError");
+} catch (e) {
+    if (! (e instanceof ReferenceError)) {
+        fail("ReferenceError expected but got " + e);
+    }
+}