Merge
authorprr
Thu, 08 Mar 2018 10:18:28 -0800
changeset 49228 1d1ecade0126
parent 49227 96bebffe0be1 (current diff)
parent 49157 2478f56cf409 (diff)
child 49229 f942a873a53e
Merge
make/data/x11wrappergen/functions.txt
make/data/x11wrappergen/sizes.32
make/data/x11wrappergen/sizes.64
make/data/x11wrappergen/sizes.64-solaris-i386
src/java.base/share/classes/javax/security/auth/Policy.java
src/java.base/share/classes/sun/security/provider/AuthPolicyFile.java
test/jdk/sanity/releaseFile/NegativeSOURCETest.java
--- a/make/InitSupport.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/InitSupport.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -435,7 +435,7 @@
   define PrepareCompareBuild
 	$(ECHO) "Preparing for comparison rebuild"
         # Apply patch, if any
-	$(if $(COMPARE_BUILD_PATCH), $(PATCH) -p1 < $(COMPARE_BUILD_PATCH))
+	$(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -p1 < $(COMPARE_BUILD_PATCH))
         # Move the first build away temporarily
 	$(RM) -r $(topdir)/build/.compare-build-temp
 	$(MKDIR) -p $(topdir)/build/.compare-build-temp
@@ -455,7 +455,7 @@
   # Cleanup after a compare build
   define CleanupCompareBuild
         # If running with a COMPARE_BUILD patch, reverse-apply it
-	$(if $(COMPARE_BUILD_PATCH), $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH))
+	$(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH))
         # Move this build away and restore the original build
 	$(MKDIR) -p $(topdir)/build/compare-build
 	$(MV) $(OUTPUTDIR) $(COMPARE_BUILD_OUTPUTDIR)
--- a/make/Main.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/Main.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -399,10 +399,13 @@
 update-build-docs:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk)
 
+update-x11wrappers:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateX11Wrappers.gmk)
+
 ALL_TARGETS += docs-jdk-api-javadoc docs-jdk-api-modulegraph \
     docs-javase-api-javadoc docs-javase-api-modulegraph \
     docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \
-    docs-jdk-index docs-zip update-build-docs
+    docs-jdk-index docs-zip update-build-docs update-x11wrappers
 
 ################################################################################
 # Cross compilation support
@@ -724,9 +727,9 @@
 
   # If not already set, set the JVM target so that the JVM will be built.
   JVM_MAIN_TARGETS ?= hotspot
-   
+
   # Building java.base-jmod requires all of VM (ie hotspot) to be built.
-  java.base-jmod: $(JVM_MAIN_TARGETS) 
+  java.base-jmod: $(JVM_MAIN_TARGETS)
 
   # Declare dependencies from <module>-jmod to all other module targets
   # When creating a BUILDJDK, the java compilation has already been done by the
@@ -830,7 +833,7 @@
 
   # If not already set, then set the JVM specific docs targets
   JVM_DOCS_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc
-  
+
   # The gensrc steps for hotspot and jdk.jdi create html spec files.
   docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
       docs-jdk-index
@@ -894,6 +897,8 @@
 
   generate-summary: jmods buildtools-modules
 
+  update-x11wrappers: java.base-copy buildtools-jdk
+
 endif
 
 ################################################################################
--- a/make/RunTests.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/RunTests.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -60,6 +60,18 @@
   endif
 endef
 
+# Setup _NT_SYMBOL_PATH on Windows
+ifeq ($(OPENJDK_TARGET_OS), windows)
+  ifndef _NT_SYMBOL_PATH
+    # Can't use PathList here as it adds quotes around the value.
+    _NT_SYMBOL_PATH := \
+        $(subst $(SPACE),;, $(foreach p, $(sort $(dir $(wildcard \
+        $(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), $(call FixPath, $p)))
+    export _NT_SYMBOL_PATH
+    $(info _NT_SYMBOL_PATH $(_NT_SYMBOL_PATH))
+  endif
+endif
+
 ################################################################################
 # Hook to include the corresponding custom file, if present.
 $(eval $(call IncludeCustomExtension, RunTests.gmk))
@@ -496,6 +508,11 @@
   $1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
   # Some tests needs to find a boot JDK using the JDK8_HOME variable.
   $1_JTREG_BASIC_OPTIONS += -e:JDK8_HOME=$$(BOOT_JDK)
+  # If running on Windows, propagate the _NT_SYMBOL_PATH to enable
+  # symbol lookup in hserr files
+  ifeq ($$(OPENJDK_TARGET_OS), windows)
+    $1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
+  endif
 
   $1_JTREG_BASIC_OPTIONS += \
       $$(addprefix -javaoption:, $$(JTREG_JAVA_OPTIONS)) \
--- a/make/RunTestsPrebuilt.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/RunTestsPrebuilt.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -113,6 +113,7 @@
 # These can have default values based on the ones above
 $(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
 $(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
+$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols))
 
 # Provide default values for tools that we need
 $(eval $(call SetupVariable,MAKE,make,NO_CHECK))
@@ -245,6 +246,7 @@
     JT_HOME := $(JT_HOME), \
     JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
     TEST_IMAGE_DIR := $(TEST_IMAGE_DIR), \
+    SYMBOLS_IMAGE_DIR := $(SYMBOLS_IMAGE_DIR), \
     MAKE := $(MAKE), \
     BASH := $(BASH), \
     JIB_JAR := $(JIB_JAR), \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/UpdateX11Wrappers.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -0,0 +1,101 @@
+#
+# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute 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.
+#
+
+################################################################################
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include NativeCompilation.gmk
+include ToolsJdk.gmk
+
+################################################################################
+# This file is responsible for extracting the x11 native struct offsets to
+# the xawt Java library. The tool needs to be run on the os/arch that
+# will host the final jvm, thus the tool cannot be used when cross compiling.
+#
+# Two versions of the generated offset file, sizes-32.txt and sizes-64.txt are
+# committed into the source code repository. These are the ones used in
+# GensrcX11Wrappers.gmk to generate the Java code during the build.
+################################################################################
+
+ifeq ($(COMPILE_TYPE), cross)
+  $(error It is not possible to update the x11wrappers when cross-compiling)
+endif
+
+X11WRAPPERS_OUTPUT := $(SUPPORT_OUTPUTDIR)/x11wrappers
+
+GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
+
+BITS := $(OPENJDK_TARGET_CPU_BITS)
+
+# Generate the C code for the program that will output the offset file.
+$(X11WRAPPERS_OUTPUT)/src/data_generator.c: $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BUILD_TOOLS_JDK)
+	$(call LogInfo, Generating X11 wrapper data generator source code)
+	$(call MakeDir, $(@D))
+	$(call ExecuteWithLog, $@, \
+	    $(TOOL_WRAPPERGENERATOR) gen_c_source $@ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BITS))
+
+DATA_GENERATOR_INCLUDES := \
+    -I$(TOPDIR)/src/hotspot/share/include \
+    -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \
+    -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
+    -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
+    -I$(TOPDIR)/src/java.base/share/native/libjava \
+    -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
+    -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
+    -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
+    -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
+    #
+
+# Compile the generated C code into an executable.
+$(eval $(call SetupNativeCompilation, BUILD_DATA_GENERATOR, \
+    PROGRAM := data_generator, \
+    OUTPUT_DIR := $(X11WRAPPERS_OUTPUT)/bin, \
+    EXTRA_FILES := $(X11WRAPPERS_OUTPUT)/src/data_generator.c, \
+    CFLAGS := $(X_CFLAGS) $(DATA_GENERATOR_INCLUDES) $(CFLAGS_JDKEXE), \
+    LDFLAGS := $(LDFLAGS_JDKEXE), \
+    LIBS := $(X_LIBS) -lc, \
+    OBJECT_DIR := $(X11WRAPPERS_OUTPUT)/objs, \
+))
+
+# Run the executable to create the data file.
+$(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt: $(BUILD_DATA_GENERATOR_TARGET)
+	$(call LogInfo, Generating X11 wrapper data files)
+	$(call MakeDir, $(@D))
+	$(call ExecuteWithLog, $(X11WRAPPERS_OUTPUT)/generation, \
+	    $(BUILD_DATA_GENERATOR_TARGET) | $(SORT) > $@)
+	$(ECHO) IMPORTANT: If you update the X11 wrapper data files, they most certainly
+	$(ECHO) need to be updated for both 32 and 64 bit platforms. You have now
+	$(ECHO) updated them for $(BITS) bit platforms only.
+
+TARGETS += $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt
+
+################################################################################
+
+all: $(TARGETS)
+
+.PHONY: all default
--- a/make/autoconf/flags-cflags.m4	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/autoconf/flags-cflags.m4	Thu Mar 08 10:18:28 2018 -0800
@@ -108,29 +108,19 @@
 [
   # Debug symbols
   if test "x$TOOLCHAIN_TYPE" = xgcc; then
-    if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
-      CFLAGS_DEBUG_SYMBOLS="-g1"
-    else
-      CFLAGS_DEBUG_SYMBOLS="-g"
-    fi
+    CFLAGS_DEBUG_SYMBOLS="-g"
   elif test "x$TOOLCHAIN_TYPE" = xclang; then
     CFLAGS_DEBUG_SYMBOLS="-g"
   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
-    CFLAGS_DEBUG_SYMBOLS="-g -xs"
     # -g0 enables debug symbols without disabling inlining.
-    CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
+    CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
     CFLAGS_DEBUG_SYMBOLS="-g"
   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
     CFLAGS_DEBUG_SYMBOLS="-Zi"
   fi
 
-  if test "x$CXXFLAGS_DEBUG_SYMBOLS" = x; then
-    # If we did not specify special flags for C++, use C version
-    CXXFLAGS_DEBUG_SYMBOLS="$CFLAGS_DEBUG_SYMBOLS"
-  fi
   AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
-  AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
 
   # FIXME: This was never used in the old build. What to do with it?
   if test "x$TOOLCHAIN_TYPE" = xgcc; then
@@ -143,13 +133,7 @@
 
   # Debug symbols for JVM_CFLAGS
   if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
-    JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -xs"
-    if test "x$DEBUG_LEVEL" = xslowdebug; then
-      JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g"
-    else
-      # -g0 does not disable inlining, which -g does.
-      JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g0"
-    fi
+    JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g0 -xs"
   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
     JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -Z7 -d2Zi+"
   else
@@ -496,7 +480,6 @@
   if test "x$DEBUG_LEVEL" != xrelease; then
     DEBUG_OPTIONS_FLAGS_JDK="$CFLAGS_DEBUG_OPTIONS"
     DEBUG_SYMBOLS_CFLAGS_JDK="$CFLAGS_DEBUG_SYMBOLS"
-    DEBUG_SYMBOLS_CXXFLAGS_JDK="$CXXFLAGS_DEBUG_SYMBOLS"
   fi
 
   #### TOOLCHAIN DEFINES
@@ -556,6 +539,12 @@
     TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
     TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
         -library=stlport4 -mt -features=no%except"
+    if test "x$DEBUG_LEVEL" = xslowdebug; then
+      # Previously -g was used instead of -g0 for slowdebug; this is equivalent
+      # to setting +d.
+      TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM +d"
+    fi
+
   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
     TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt"  # add on both CFLAGS
     TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
@@ -825,16 +814,16 @@
 
   CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
       $OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
-      $WARNING_CFLAGS $WARNING_CFLAGS_JDK"
+      $WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK"
 
   # Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
   # (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might
   # change in the future.)
 
-  CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY $DEBUG_SYMBOLS_CFLAGS_JDK \
+  CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY  \
       $WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}"
   CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \
-      $DEBUG_SYMBOLS_CXXFLAGS_JDK $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
+      $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
 
   $1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}"
   $1_CFLAGS_JDK="${$1_DEFINES_CPU_JDK} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JDK} ${$1_TOOLCHAIN_CFLAGS}"
--- a/make/autoconf/flags.m4	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/autoconf/flags.m4	Thu Mar 08 10:18:28 2018 -0800
@@ -236,7 +236,10 @@
   if test "x$TOOLCHAIN_TYPE" = xxlc; then
     MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}"
   elif test "x$TOOLCHAIN_TYPE" != xmicrosoft; then
-    MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+    if test "x$OPENJDK_TARGET_CPU" != xaarch64 &&
+        test "x$OPENJDK_TARGET_CPU" != xarm; then
+      MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+    fi
   fi
 
   # FIXME: global flags are not used yet...
--- a/make/autoconf/spec.gmk.in	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/autoconf/spec.gmk.in	Thu Mar 08 10:18:28 2018 -0800
@@ -532,7 +532,6 @@
 ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@
 
 CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
-CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
 
 #
 # Compress (or not) jars
--- a/make/common/NativeCompilation.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/common/NativeCompilation.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -150,7 +150,7 @@
 define replace_with_obj_extension
 $(strip \
   $(foreach extension, $(NATIVE_SOURCE_EXTENSIONS), \
-      $(patsubst $(extension),%$(OBJ_SUFFIX),$(filter $(extension),$1))) \
+      $(patsubst $(extension),%$(OBJ_SUFFIX), $(filter $(extension), $1))) \
 )
 endef
 
@@ -183,150 +183,167 @@
     -e 's/$$$$/ :/' \
     #
 
-define add_native_source
-  # param 1 = BUILD_MYPACKAGE
-  # parma 2 = the source file name (..../alfa.c or .../beta.cpp)
-  # param 3 = the bin dir that stores all .o (.obj) and .d files.
-  # param 4 = the c flags to the compiler
-  # param 5 = the c compiler
-  # param 6 = the c++ flags to the compiler
-  # param 7 = the c++ compiler
-  # param 8 = the flags to the assembler
-  # param 9 = set to disable THIS_FILE
-
-  ifeq ($9, )
-    $1_$2_THIS_FILE = -DTHIS_FILE='"$$(<F)"'
-  endif
+################################################################################
+# Create the recipe needed to compile a single native source file.
+#
+# Parameter 1 is the name of the rule, based on the name of the library/
+# program being build and the name of the source code file, e.g.
+# BUILD_LIBFOO_fooMain.cpp.
+#
+# Remaining parameters are named arguments:
+#   FILE - The full path of the source file to compiler
+#   BASE - The name of the rule for the entire binary to build ($1)
+#   DISABLE_THIS_FILE_DEFINE - Set to true to disable the THIS_FILE define.
+#
+SetupCompileNativeFile = $(NamedParamsMacroTemplate)
+define SetupCompileNativeFileBody
+  $1_FILENAME := $$(notdir $$($1_FILE))
 
-  ifeq ($$($1_$(notdir $2)_OPTIMIZATION), )
-    $1_$(notdir $2)_OPT_CFLAGS := $$($1_OPT_CFLAGS)
-    $1_$(notdir $2)_OPT_CXXFLAGS := $$($1_OPT_CXXFLAGS)
-  else
-    ifeq (NONE, $$($1_$(notdir $2)_OPTIMIZATION))
-      $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_NONE)
-      $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
-    else ifeq (LOW, $$($1_$(notdir $2)_OPTIMIZATION))
-      $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_NORM)
-      $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM)
-    else ifeq (HIGH, $$($1_$(notdir $2)_OPTIMIZATION))
-      $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_HI)
-      $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_HI)
-    else ifeq (HIGHEST, $$($1_$(notdir $2)_OPTIMIZATION))
-      $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_HIGHEST)
-      $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST)
-    else ifeq (HIGHEST_JVM, $$($1_$(notdir $2)_OPTIMIZATION))
-      $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM)
-      $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM)
-    else ifeq (SIZE, $$($1_$(notdir $2)_OPTIMIZATION))
-      $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_SIZE)
-      $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE)
-    else
-      $$(error Unknown value for OPTIMIZATION: $$($1_$(notdir $2)_OPTIMIZATION))
+  # The target file to be generated.
+  $1_OBJ := $$($$($1_BASE)_OBJECT_DIR)/$$(call replace_with_obj_extension, \
+      $$($1_FILENAME))
+
+  # Only continue if this object file hasn't been processed already. This lets
+  # the first found source file override any other with the same name.
+  ifeq ($$(findstring $$($1_OBJ), $$($$($1_BASE)_OBJS_SO_FAR)), )
+    $$($1_BASE)_OBJS_SO_FAR += $$($1_OBJ)
+    # This is the definite source file to use for $1_FILENAME.
+    $1_SRC_FILE := $$($1_FILE)
+
+    ifneq ($$($1_DISABLE_THIS_FILE_DEFINE), true)
+      $1_THIS_FILE = -DTHIS_FILE='"$$(<F)"'
     endif
-  endif
 
-  ifneq ($$($1_PRECOMPILED_HEADER), )
-    ifeq ($$(filter $$(notdir $2), $$($1_PRECOMPILED_HEADER_EXCLUDE)), )
-      $1_$2_USE_PCH_FLAGS := $$($1_USE_PCH_FLAGS)
+    ifeq ($$($1_OPTIMIZATION), )
+      $1_OPT_CFLAGS := $$($$($1_BASE)_OPT_CFLAGS)
+      $1_OPT_CXXFLAGS := $$($$($1_BASE)_OPT_CXXFLAGS)
+    else
+      ifeq ($$($1_OPTIMIZATION), NONE)
+        $1_OPT_CFLAGS := $(C_O_FLAG_NONE)
+        $1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE)
+      else ifeq ($$($1_OPTIMIZATION), LOW)
+        $1_OPT_CFLAGS := $(C_O_FLAG_NORM)
+        $1_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM)
+      else ifeq ($$($1_OPTIMIZATION), HIGH)
+        $1_OPT_CFLAGS := $(C_O_FLAG_HI)
+        $1_OPT_CXXFLAGS := $(CXX_O_FLAG_HI)
+      else ifeq ($$($1_OPTIMIZATION), HIGHEST)
+        $1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST)
+        $1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST)
+      else ifeq ($$($1_OPTIMIZATION), HIGHEST_JVM)
+        $1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM)
+        $1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM)
+      else ifeq ($$($1_OPTIMIZATION), SIZE)
+        $1_OPT_CFLAGS := $(C_O_FLAG_SIZE)
+        $1_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE)
+      else
+        $$(error Unknown value for file OPTIMIZATION: $$($1_OPTIMIZATION))
+      endif
     endif
-  endif
+
+    ifneq ($$($$($1_BASE)_PRECOMPILED_HEADER), )
+      ifeq ($$(filter $$($1_FILENAME), $$($$($1_BASE)_PRECOMPILED_HEADER_EXCLUDE)), )
+        $1_USE_PCH_FLAGS := $$($$($1_BASE)_USE_PCH_FLAGS)
+      endif
+    endif
 
-  ifneq ($$(filter %.c, $2), )
-    # Compile as a C file
-    $1_$2_FLAGS := $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \
-        $$($1_$(notdir $2)_OPT_CFLAGS) \
-        $$($1_$(notdir $2)_CFLAGS) $$($1_$2_THIS_FILE) -c
-    $1_$2_COMP := $5
-    $1_$2_DEP_FLAG := $(C_FLAG_DEPS)
-  else ifneq ($$(filter %.m, $2), )
-    # Compile as an Objective-C file
-    $1_$2_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \
-        $$($1_$(notdir $2)_OPT_CFLAGS) \
-        $$($1_$(notdir $2)_CFLAGS) $$($1_$2_THIS_FILE) -c
-    $1_$2_COMP := $5
-    $1_$2_DEP_FLAG := $(C_FLAG_DEPS)
-  else ifneq ($$(filter %.s %.S, $2), )
-    # Compile as assembler file
-    $1_$2_FLAGS := $8
-    $1_$2_COMP := $(AS)
-    $1_$2_DEP_FLAG :=
-  else ifneq ($$(filter %.cpp, $2)$$(filter %.cc, $2)$$(filter %.mm, $2), )
-    # Compile as a C++ or Objective-C++ file
-    $1_$2_FLAGS := $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $6 \
-        $$($1_$(notdir $2)_OPT_CXXFLAGS) \
-        $$($1_$(notdir $2)_CXXFLAGS) $$($1_$2_THIS_FILE) -c
-    $1_$2_COMP := $7
-    $1_$2_DEP_FLAG := $(CXX_FLAG_DEPS)
-  else
-    $$(error Internal error in NativeCompilation.gmk: no compiler for file $2)
-  endif
-  # Generate the .o (.obj) file name and place it in the bin dir.
-  $1_$2_OBJ := $3/$$(call replace_with_obj_extension, $$(notdir $2))
-  # Only continue if this object file hasn't been processed already. This lets the first found
-  # source file override any other with the same name.
-  ifeq ($$(findstring $$($1_$2_OBJ), $$($1_OBJS_SO_FAR)), )
-    $1_OBJS_SO_FAR += $$($1_$2_OBJ)
-    ifeq ($$(filter %.s %.S, $2), )
+    $1_BASE_CFLAGS :=  $$($$($1_BASE)_CFLAGS) $$($$($1_BASE)_EXTRA_CFLAGS) \
+        $$($$($1_BASE)_SYSROOT_CFLAGS)
+    $1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \
+        $$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
+
+    ifneq ($$(filter %.c, $$($1_FILENAME)), )
+      # Compile as a C file
+      $1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CFLAGS) \
+          $$($1_OPT_CFLAGS) $$($1_CFLAGS) $$($1_THIS_FILE) -c
+      $1_COMPILER := $$($$($1_BASE)_CC)
+      $1_DEP_FLAG := $(C_FLAG_DEPS)
+    else ifneq ($$(filter %.m, $$($1_FILENAME)), )
+      # Compile as an Objective-C file
+      $1_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) \
+          $$($1_BASE_CFLAGS) $$($1_OPT_CFLAGS) $$($1_CFLAGS) $$($1_THIS_FILE) -c
+      $1_COMPILER := $$($$($1_BASE)_CC)
+      $1_DEP_FLAG := $(C_FLAG_DEPS)
+    else ifneq ($$(filter %.s %.S, $$($1_FILENAME)), )
+      # Compile as assembler file
+      $1_FLAGS := $$($$($1_BASE)_ASFLAGS)
+      $1_COMPILER := $(AS)
+      $1_DEP_FLAG :=
+    else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
+      # Compile as a C++ or Objective-C++ file
+      $1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CXXFLAGS) \
+          $$($1_OPT_CXXFLAGS) $$($1_CXXFLAGS) $$($1_THIS_FILE) -c
+      $1_COMPILER := $$($$($1_BASE)_CXX)
+      $1_DEP_FLAG := $(CXX_FLAG_DEPS)
+    else
+      $$(error Internal error in NativeCompilation.gmk: no compiler for file $$($1_FILENAME))
+    endif
+
+    ifeq ($$(filter %.s %.S, $$($1_FILENAME)), )
       # And this is the dependency file for this obj file.
-      $1_$2_DEP := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ))
-      # The dependency target file lists all dependencies as empty targets
-      # to avoid make error "No rule to make target" for removed files
-      $1_$2_DEP_TARGETS := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_$2_OBJ))
+      $1_DEP := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_OBJ))
+      # The dependency target file lists all dependencies as empty targets to
+      # avoid make error "No rule to make target" for removed files
+      $1_DEP_TARGETS := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_OBJ))
 
       # Include previously generated dependency information. (if it exists)
-      -include $$($1_$2_DEP)
-      -include $$($1_$2_DEP_TARGETS)
+      -include $$($1_DEP)
+      -include $$($1_DEP_TARGETS)
 
       ifeq ($(TOOLCHAIN_TYPE), microsoft)
         # To avoid name clashes between pdbs for objects and libs/execs, put
         # object pdbs in a separate subdir.
-        $1_$2_DEBUG_OUT_FLAGS := -Fd$$(strip $$(patsubst $$($1_OBJECT_DIR)/%, \
-            $$($1_OBJECT_DIR)/pdb/%, $$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ))))
+        $1_DEBUG_OUT_FLAGS := -Fd$$(strip $$(patsubst $$($$($1_BASE)_OBJECT_DIR)/%, \
+            $$($$($1_BASE)_OBJECT_DIR)/pdb/%, $$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_OBJ))))
       endif
     endif
 
-    ifneq ($$(strip $$($1_$(notdir $2)_CFLAGS) $$($1_$(notdir $2)_CXXFLAGS) \
-        $$($1_$(notdir $2)_OPTIMIZATION)), )
-      $1_$2_VARDEPS := $$($1_$(notdir $2)_CFLAGS) $$($1_$(notdir $2)_CXXFLAGS) \
-          $$($1_$(notdir $2)_OPT_CFLAGS) $$($1_$(notdir $2)_OPT_CXXFLAGS)
-      $1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, $$($1_$2_OBJ).vardeps)
+    ifneq ($$(strip $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)), )
+      $1_VARDEPS := $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPT_CFLAGS) \
+          $$($1_OPT_CXXFLAGS)
+      $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps)
     endif
 
-    $$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE) $$($1_$2_VARDEPS_FILE) | $$($1_BUILD_INFO)
-	$$(call LogInfo, Compiling $$(notdir $2) (for $$($1_BASENAME)))
+    $$($1_OBJ): $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \
+        $$($1_VARDEPS_FILE) | $$($$($1_BASE)_BUILD_INFO)
+	$$(call LogInfo, Compiling $$($1_FILENAME) (for $$($$($1_BASE)_BASENAME)))
 	$$(call MakeDir, $$(@D) $$(@D)/pdb)
         ifneq ($(TOOLCHAIN_TYPE), microsoft)
-          ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s, $2), solstudio)
-            # The Solaris studio compiler doesn't output the full path to the object file in the
-            # generated deps files. Fixing it with sed. If compiling assembly, don't try this.
+          ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s, $$($1_FILENAME)), solstudio)
+            # The Solaris studio compiler doesn't output the full path to the
+            # object file in the generated deps files. Fixing it with sed. If
+            # compiling assembly, don't try this.
 	    $$(call ExecuteWithLog, $$@, \
-	        $$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP).tmp $(CC_OUT_OPTION)$$($1_$2_OBJ) $2)
-	    $(SED) 's|^$$(@F):|$$@:|' $$($1_$2_DEP).tmp > $$($1_$2_DEP)
+	        $$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP).tmp \
+	            $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE))
+	    $(SED) 's|^$$(@F):|$$@:|' $$($1_DEP).tmp > $$($1_DEP)
           else
 	    $$(call ExecuteWithLog, $$@, \
-	        $$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP) $(CC_OUT_OPTION)$$($1_$2_OBJ) $2)
+	        $$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP) \
+	            $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE))
           endif
           # Create a dependency target file from the dependency file.
           # Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
-          ifneq ($$($1_$2_DEP), )
-	    $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
+          ifneq ($$($1_DEP), )
+	    $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEP) > $$($1_DEP_TARGETS)
           endif
         else
-          # The Visual Studio compiler lacks a feature for generating make dependencies, but by
-          # setting -showIncludes, all included files are printed. These are filtered out and
-          # parsed into make dependences.
-          # Keep as much as possible on one execution line for best performance on Windows.
-          # No need to save exit code from compilation since pipefail is always active on
-          # Windows.
+          # The Visual Studio compiler lacks a feature for generating make
+          # dependencies, but by setting -showIncludes, all included files are
+          # printed. These are filtered out and parsed into make dependences.
+          #
+          # Keep as much as possible on one execution line for best performance
+          # on Windows. No need to save exit code from compilation since
+          # pipefail is always active on Windows.
 	  $$(call ExecuteWithLog, $$@, \
-	      $$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes $$($1_$2_DEBUG_OUT_FLAGS) \
-	          $(CC_OUT_OPTION)$$($1_$2_OBJ) $2) \
-	      | $(GREP) -v -e "^Note: including file:" \
-	          -e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \
-	  $(ECHO) $$@: \\ > $$($1_$2_DEP) ; \
-	  $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_OBJ).log \
-	      | $(SORT) -u >> $$($1_$2_DEP) ; \
-	  $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
+	      $$($1_COMPILER) $$($1_FLAGS) -showIncludes $$($1_DEBUG_OUT_FLAGS) \
+	          $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)) \
+	      | $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
+	          -e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
+	  $(ECHO) $$@: \\ > $$($1_DEP) ; \
+	  $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \
+	      | $(SORT) -u >> $$($1_DEP) ; \
+	  $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEP) > $$($1_DEP_TARGETS)
         endif
   endif
 endef
@@ -379,7 +396,6 @@
 #   ZIP_EXTERNAL_DEBUG_SYMBOLS Set to false to override global setting of debug symbol
 #       zipping
 #   CFLAGS_DEBUG_SYMBOLS Overrides the default cflags for enabling debug symbols
-#   CXXFLAGS_DEBUG_SYMBOLS Overrides the default cxxflags for enabling debug symbols
 #   STRIPFLAGS Optionally change the flags given to the strip command
 #   PRECOMPILED_HEADER Header file to use as precompiled header
 #   PRECOMPILED_HEADER_EXCLUDE List of source files that should not use PCH
@@ -560,9 +576,8 @@
 
   ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
     $$(call SetIfEmpty, $1_CFLAGS_DEBUG_SYMBOLS, $(CFLAGS_DEBUG_SYMBOLS))
-    $$(call SetIfEmpty, $1_CXXFLAGS_DEBUG_SYMBOLS, $(CXXFLAGS_DEBUG_SYMBOLS))
     $1_EXTRA_CFLAGS += $$($1_CFLAGS_DEBUG_SYMBOLS)
-    $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_DEBUG_SYMBOLS)
+    $1_EXTRA_CXXFLAGS += $$($1_CFLAGS_DEBUG_SYMBOLS)
   endif
 
   ifneq ($$($1_REORDER), )
@@ -641,11 +656,12 @@
         $1_GENERATED_PCH_SRC := $$($1_OBJECT_DIR)/$1_pch.cpp
         $1_GENERATED_PCH_OBJ := $$($1_OBJECT_DIR)/$1_pch.obj
 
-        $$(eval $$(call add_native_source,$1,$$($1_GENERATED_PCH_SRC), \
-            $$($1_OBJECT_DIR),,, \
-            $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS) \
-                -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \
-            $$($1_CXX),,no_this_file))
+        $$(eval $$(call SetupCompileNativeFile, $1_$$(notdir $$($1_GENERATED_PCH_SRC)), \
+            FILE := $$($1_GENERATED_PCH_SRC), \
+            BASE := $1, \
+            EXTRA_CXXFLAGS := -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \
+            DISABLE_THIS_FILE_DEFINE := true, \
+        ))
 
         $1_USE_PCH_FLAGS := \
             -Fp$$($1_PCH_FILE) -Yu$$(notdir $$($1_PRECOMPILED_HEADER))
@@ -688,13 +704,13 @@
     endif
   endif
 
-  # 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) $$($1_SYSROOT_CFLAGS), \
-          $$($1_CC), \
-          $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS), \
-          $$($1_CXX), $$($1_ASFLAGS))))
+  # Now call SetupCompileNativeFile for each source file we are going to compile.
+  $$(foreach file, $$($1_SRCS), \
+      $$(eval $$(call SetupCompileNativeFile, $1_$$(notdir $$(file)),\
+          FILE := $$(file), \
+          BASE := $1, \
+      )) \
+  )
 
   # Setup rule for printing progress info when compiling source files.
   # This is a rough heuristic and may not always print accurate information.
--- a/make/common/TestFilesCompilation.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/common/TestFilesCompilation.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -59,13 +59,13 @@
   ifeq ($$($1_TYPE), LIBRARY)
     $1_PREFIX = lib
     $1_OUTPUT_SUBDIR := lib
-    $1_CFLAGS := $(CFLAGS_TESTLIB) $(CFLAGS_WARNINGS_ARE_ERRORS)
+    $1_CFLAGS := $(CFLAGS_TESTLIB)
     $1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
     $1_COMPILATION_TYPE := LIBRARY
   else ifeq ($$($1_TYPE), PROGRAM)
     $1_PREFIX = exe
     $1_OUTPUT_SUBDIR := bin
-    $1_CFLAGS := $(CFLAGS_TESTEXE) $(CFLAGS_WARNINGS_ARE_ERRORS)
+    $1_CFLAGS := $(CFLAGS_TESTEXE)
     $1_LDFLAGS := $(LDFLAGS_TESTEXE)
     $1_COMPILATION_TYPE := EXECUTABLE
   else
--- a/make/conf/jib-profiles.js	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/conf/jib-profiles.js	Thu Mar 08 10:18:28 2018 -0800
@@ -743,11 +743,22 @@
             dependencies: [ "devkit" ],
             environment_path: input.get("devkit", "install_path")
                 + "/Xcode.app/Contents/Developer/usr/bin"
-        }
+        };
         profiles["run-test"] = concatObjects(profiles["run-test"], macosxRunTestExtra);
         profiles["run-test-jprt"] = concatObjects(profiles["run-test-jprt"], macosxRunTestExtra);
         profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], macosxRunTestExtra);
     }
+    // On windows we want the debug symbols available at test time
+    if (input.build_os == "windows") {
+        windowsRunTestPrebuiltExtra = {
+            dependencies: [ testedProfile + ".jdk_symbols" ],
+            environment: {
+                "PRODUCT_SYMBOLS_HOME": input.get(testedProfile + ".jdk_symbols", "home_path"),
+            }
+        };
+        profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
+            windowsRunTestPrebuiltExtra);
+    }
 
     // Generate the missing platform attributes
     profiles = generatePlatformAttributes(profiles);
--- a/make/data/x11wrappergen/functions.txt	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-!XGetWindowProperty|int
-    w                long
-    property         Atom
-    long_offset      long
-    long_length      long
-    delete           Bool
-    req_type         Atom
-    actual_type      Atom out
-    actual_format    int out
-    number_of_items  long out
-    bytes_after      long out
-    data             pointer out free
-!XQueryTree|int
-    w                long
-    root             long out
-    parent           long out
-    children         pointer out free
-    nchildren        int out
-!XTranslateCoordinates|int
-    scr_w            long
-    dest_w           long 
-    src_x            int
-    src_y            int
-    dest_x           int out
-    dest_y           int out
-    child            long out
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/x11wrappergen/sizes-32.txt	Thu Mar 08 10:18:28 2018 -0800
@@ -0,0 +1,1017 @@
+Atom	4
+AwtGraphicsConfigData	128
+AwtGraphicsConfigData.awt_cmap	4
+AwtGraphicsConfigData.AwtColorMatch	56
+AwtGraphicsConfigData.awt_depth	0
+AwtGraphicsConfigData.awtImage	52
+AwtGraphicsConfigData.awt_num_colors	48
+AwtGraphicsConfigData.awt_visInfo	8
+AwtGraphicsConfigData.color_data	84
+AwtGraphicsConfigData.glxInfo	88
+AwtGraphicsConfigData.isTranslucencySupported	92
+AwtGraphicsConfigData.monoImage	60
+AwtGraphicsConfigData.monoPixmap	64
+AwtGraphicsConfigData.monoPixmapGC	76
+AwtGraphicsConfigData.monoPixmapHeight	72
+AwtGraphicsConfigData.monoPixmapWidth	68
+AwtGraphicsConfigData.pixelStride	80
+AwtGraphicsConfigData.renderPictFormat	96
+awtImageData	304
+awtImageData.clrdata	16
+awtImageData.convert	48
+awtImageData.Depth	0
+awtImageData.wsImageFormat	4
+AwtScreenData	24
+AwtScreenData.blackpixel	12
+AwtScreenData.configs	20
+AwtScreenData.defaultConfig	16
+AwtScreenData.numConfigs	0
+AwtScreenData.root	4
+AwtScreenData.whitepixel	8
+Bool	4
+ColorData	48
+ColorData.awt_Colors	0
+ColorData.awt_icmLUT2Colors	12
+ColorData.awt_icmLUT	8
+ColorData.awt_numICMcolors	4
+ColorData.img_clr_tbl	20
+ColorData.img_grays	16
+ColorData.img_oda_blue	32
+ColorData.img_oda_green	28
+ColorData.img_oda_red	24
+ColorData.pGrayInverseLutData	36
+ColorData.representsPrimaries	44
+ColorData.screendata	40
+ColorEntry	4
+ColorEntry.b	2
+ColorEntry.flags	3
+ColorEntry.g	1
+ColorEntry.r	0
+Depth	12
+Depth.depth	0
+Depth.nvisuals	4
+Depth.visuals	8
+int	4
+long	4
+PropMwmHints	20
+PropMwmHints.decorations	8
+PropMwmHints.flags	0
+PropMwmHints.functions	4
+PropMwmHints.inputMode	12
+PropMwmHints.status	16
+ptr	4
+Screen	80
+Screen.backing_store	68
+Screen.black_pixel	56
+Screen.cmap	48
+Screen.default_gc	44
+Screen.depths	32
+Screen.display	4
+Screen.ext_data	0
+ScreenFormat	16
+ScreenFormat.bits_per_pixel	8
+ScreenFormat.depth	4
+ScreenFormat.ext_data	0
+ScreenFormat.scanline_pad	12
+Screen.height	16
+Screen.max_maps	60
+Screen.mheight	24
+Screen.min_maps	64
+Screen.mwidth	20
+Screen.ndepths	28
+Screen.root	8
+Screen.root_depth	36
+Screen.root_input_mask	76
+Screen.root_visual	40
+Screen.save_unders	72
+Screen.white_pixel	52
+Screen.width	12
+short	2
+Visual	32
+Visual.bits_per_rgb	24
+Visual.blue_mask	20
+Visual.class	8
+Visual.ext_data	0
+Visual.green_mask	16
+Visual.map_entries	28
+Visual.red_mask	12
+Visual.visualid	4
+Window	4
+XAnyEvent	20
+XAnyEvent.display	12
+XAnyEvent.send_event	8
+XAnyEvent.serial	4
+XAnyEvent.type	0
+XAnyEvent.window	16
+XArc	12
+XArc.angle1	8
+XArc.angle2	10
+XArc.height	6
+XArc.width	4
+XArc.x	0
+XArc.y	2
+XButtonEvent	60
+XButtonEvent.button	52
+XButtonEvent.display	12
+XButtonEvent.root	20
+XButtonEvent.same_screen	56
+XButtonEvent.send_event	8
+XButtonEvent.serial	4
+XButtonEvent.state	48
+XButtonEvent.subwindow	24
+XButtonEvent.time	28
+XButtonEvent.type	0
+XButtonEvent.window	16
+XButtonEvent.x	32
+XButtonEvent.x_root	40
+XButtonEvent.y	36
+XButtonEvent.y_root	44
+XChar2b	2
+XChar2b.byte1	0
+XChar2b.byte2	1
+XCharStruct	12
+XCharStruct.ascent	6
+XCharStruct.attributes	10
+XCharStruct.descent	8
+XCharStruct.lbearing	0
+XCharStruct.rbearing	2
+XCharStruct.width	4
+XCirculateEvent	28
+XCirculateEvent.display	12
+XCirculateEvent.event	16
+XCirculateEvent.place	24
+XCirculateEvent.send_event	8
+XCirculateEvent.serial	4
+XCirculateEvent.type	0
+XCirculateEvent.window	20
+XCirculateRequestEvent	28
+XCirculateRequestEvent.display	12
+XCirculateRequestEvent.parent	16
+XCirculateRequestEvent.place	24
+XCirculateRequestEvent.send_event	8
+XCirculateRequestEvent.serial	4
+XCirculateRequestEvent.type	0
+XCirculateRequestEvent.window	20
+XClassHint	8
+XClassHint.res_class	4
+XClassHint.res_name	0
+XClientMessageEvent	48
+XClientMessageEvent.data	28
+XClientMessageEvent.display	12
+XClientMessageEvent.format	24
+XClientMessageEvent.message_type	20
+XClientMessageEvent.send_event	8
+XClientMessageEvent.serial	4
+XClientMessageEvent.type	0
+XClientMessageEvent.window	16
+XColor	12
+XColor.blue	8
+XColor.flags	10
+XColor.green	6
+XColormapEvent	32
+XColormapEvent.colormap	20
+XColormapEvent.display	12
+XColormapEvent.new	24
+XColormapEvent.send_event	8
+XColormapEvent.serial	4
+XColormapEvent.state	28
+XColormapEvent.type	0
+XColormapEvent.window	16
+XColor.pad	11
+XColor.pixel	0
+XColor.red	4
+XComposeStatus	8
+XComposeStatus.chars_matched	4
+XComposeStatus.compose_ptr	0
+XConfigureEvent	52
+XConfigureEvent.above	44
+XConfigureEvent.border_width	40
+XConfigureEvent.display	12
+XConfigureEvent.event	16
+XConfigureEvent.height	36
+XConfigureEvent.override_redirect	48
+XConfigureEvent.send_event	8
+XConfigureEvent.serial	4
+XConfigureEvent.type	0
+XConfigureEvent.width	32
+XConfigureEvent.window	20
+XConfigureEvent.x	24
+XConfigureEvent.y	28
+XConfigureRequestEvent	56
+XConfigureRequestEvent.above	44
+XConfigureRequestEvent.border_width	40
+XConfigureRequestEvent.detail	48
+XConfigureRequestEvent.display	12
+XConfigureRequestEvent.height	36
+XConfigureRequestEvent.parent	16
+XConfigureRequestEvent.send_event	8
+XConfigureRequestEvent.serial	4
+XConfigureRequestEvent.type	0
+XConfigureRequestEvent.value_mask	52
+XConfigureRequestEvent.width	32
+XConfigureRequestEvent.window	20
+XConfigureRequestEvent.x	24
+XConfigureRequestEvent.y	28
+XCreateWindowEvent	48
+XCreateWindowEvent.border_width	40
+XCreateWindowEvent.display	12
+XCreateWindowEvent.height	36
+XCreateWindowEvent.override_redirect	44
+XCreateWindowEvent.parent	16
+XCreateWindowEvent.send_event	8
+XCreateWindowEvent.serial	4
+XCreateWindowEvent.type	0
+XCreateWindowEvent.width	32
+XCreateWindowEvent.window	20
+XCreateWindowEvent.x	24
+XCreateWindowEvent.y	28
+XCrossingEvent	68
+XCrossingEvent.detail	52
+XCrossingEvent.display	12
+XCrossingEvent.focus	60
+XCrossingEvent.mode	48
+XCrossingEvent.root	20
+XCrossingEvent.same_screen	56
+XCrossingEvent.send_event	8
+XCrossingEvent.serial	4
+XCrossingEvent.state	64
+XCrossingEvent.subwindow	24
+XCrossingEvent.time	28
+XCrossingEvent.type	0
+XCrossingEvent.window	16
+XCrossingEvent.x	32
+XCrossingEvent.x_root	40
+XCrossingEvent.y	36
+XCrossingEvent.y_root	44
+XdbeSwapInfo	8
+XdbeSwapInfo.swap_action	4
+XdbeSwapInfo.swap_window	0
+XDestroyWindowEvent	24
+XDestroyWindowEvent.display	12
+XDestroyWindowEvent.event	16
+XDestroyWindowEvent.send_event	8
+XDestroyWindowEvent.serial	4
+XDestroyWindowEvent.type	0
+XDestroyWindowEvent.window	20
+XErrorEvent	20
+XErrorEvent.display	4
+XErrorEvent.error_code	16
+XErrorEvent.minor_code	18
+XErrorEvent.request_code	17
+XErrorEvent.resourceid	8
+XErrorEvent.serial	12
+XErrorEvent.type	0
+XEvent	96
+XEvent.pad	0
+XEvent.type	0
+XEvent.xany	0
+XEvent.xbutton	0
+XEvent.xcirculate	0
+XEvent.xcirculaterequest	0
+XEvent.xclient	0
+XEvent.xcolormap	0
+XEvent.xconfigure	0
+XEvent.xconfigurerequest	0
+XEvent.xcreatewindow	0
+XEvent.xcrossing	0
+XEvent.xdestroywindow	0
+XEvent.xerror	0
+XEvent.xexpose	0
+XEvent.xfocus	0
+XEvent.xgraphicsexpose	0
+XEvent.xgravity	0
+XEvent.xkey	0
+XEvent.xkeymap	0
+XEvent.xmap	0
+XEvent.xmapping	0
+XEvent.xmaprequest	0
+XEvent.xmotion	0
+XEvent.xnoexpose	0
+XEvent.xproperty	0
+XEvent.xreparent	0
+XEvent.xresizerequest	0
+XEvent.xselection	0
+XEvent.xselectionclear	0
+XEvent.xselectionrequest	0
+XEvent.xunmap	0
+XEvent.xvisibility	0
+XExposeEvent	40
+XExposeEvent.count	36
+XExposeEvent.display	12
+XExposeEvent.height	32
+XExposeEvent.send_event	8
+XExposeEvent.serial	4
+XExposeEvent.type	0
+XExposeEvent.width	28
+XExposeEvent.window	16
+XExposeEvent.x	20
+XExposeEvent.y	24
+XExtCodes	16
+XExtCodes.extension	0
+XExtCodes.first_error	12
+XExtCodes.first_event	8
+XExtCodes.major_opcode	4
+XExtData	16
+XExtData.free_private	8
+XExtData.next	4
+XExtData.number	0
+XExtData.private_data	12
+XFocusChangeEvent	28
+XFocusChangeEvent.detail	24
+XFocusChangeEvent.display	12
+XFocusChangeEvent.mode	20
+XFocusChangeEvent.send_event	8
+XFocusChangeEvent.serial	4
+XFocusChangeEvent.type	0
+XFocusChangeEvent.window	16
+XFontProp	8
+XFontProp.card32	4
+XFontProp.name	0
+XFontSetExtents	16
+XFontSetExtents.max_ink_extent	0
+XFontSetExtents.max_logical_extent	8
+XFontStruct	80
+XFontStruct.all_chars_exist	28
+XFontStruct.ascent	72
+XFontStruct.descent	76
+XFontStruct.direction	8
+XFontStruct.ext_data	0
+XFontStruct.fid	4
+XFontStruct.max_bounds	56
+XFontStruct.max_byte1	24
+XFontStruct.max_char_or_byte2	16
+XFontStruct.min_bounds	44
+XFontStruct.min_byte1	20
+XFontStruct.min_char_or_byte2	12
+XFontStruct.n_properties	36
+XFontStruct.per_char	68
+XFontStruct.properties	40
+XGCValues	92
+XGCValues.arc_mode	40
+XGCValues.background	12
+XGCValues.cap_style	24
+XGCValues.clip_mask	80
+XGCValues.clip_x_origin	72
+XGCValues.clip_y_origin	76
+XGCValues.dashes	88
+XGCValues.dash_offset	84
+XGCValues.fill_rule	36
+XGCValues.fill_style	32
+XGCValues.font	60
+XGCValues.foreground	8
+XGCValues.function	0
+XGCValues.graphics_exposures	68
+XGCValues.join_style	28
+XGCValues.line_style	20
+XGCValues.line_width	16
+XGCValues.plane_mask	4
+XGCValues.stipple	48
+XGCValues.subwindow_mode	64
+XGCValues.tile	44
+XGCValues.ts_x_origin	52
+XGCValues.ts_y_origin	56
+XGraphicsExposeEvent	48
+XGraphicsExposeEvent.count	36
+XGraphicsExposeEvent.display	12
+XGraphicsExposeEvent.drawable	16
+XGraphicsExposeEvent.height	32
+XGraphicsExposeEvent.major_code	40
+XGraphicsExposeEvent.minor_code	44
+XGraphicsExposeEvent.send_event	8
+XGraphicsExposeEvent.serial	4
+XGraphicsExposeEvent.type	0
+XGraphicsExposeEvent.width	28
+XGraphicsExposeEvent.x	20
+XGraphicsExposeEvent.y	24
+XGravityEvent	32
+XGravityEvent.display	12
+XGravityEvent.event	16
+XGravityEvent.send_event	8
+XGravityEvent.serial	4
+XGravityEvent.type	0
+XGravityEvent.window	20
+XGravityEvent.x	24
+XGravityEvent.y	28
+XHostAddress	12
+XHostAddress.address	8
+XHostAddress.family	0
+XHostAddress.length	4
+XIconSize	24
+XIconSize.height_inc	20
+XIconSize.max_height	12
+XIconSize.max_width	8
+XIconSize.min_height	4
+XIconSize.min_width	0
+XIconSize.width_inc	16
+XImage	88
+XImage.bitmap_bit_order	28
+XImage.bitmap_pad	32
+XImage.bitmap_unit	24
+XImage.bits_per_pixel	44
+XImage.blue_mask	56
+XImage.byte_order	20
+XImage.bytes_per_line	40
+XImage.data	16
+XImage.depth	36
+XImage.f.add_pixel	84
+XImage.f.create_image	64
+XImage.f.destroy_image	68
+XImage.f.get_pixel	72
+XImage.format	12
+XImage.f.put_pixel	76
+XImage.f.sub_image	80
+XImage.green_mask	52
+XImage.height	4
+XImage.obdata	60
+XImage.red_mask	48
+XImage.width	0
+XImage.xoffset	8
+XIMCallback	8
+XIMCallback.callback	4
+XIMCallback.client_data	0
+XIMHotKeyTrigger	12
+XIMHotKeyTrigger.keysym	0
+XIMHotKeyTrigger.modifier	4
+XIMHotKeyTrigger.modifier_mask	8
+XIMHotKeyTriggers	8
+XIMHotKeyTriggers.key	4
+XIMHotKeyTriggers.num_hot_key	0
+XIMPreeditCaretCallbackStruct	12
+XIMPreeditCaretCallbackStruct.direction	4
+XIMPreeditCaretCallbackStruct.position	0
+XIMPreeditCaretCallbackStruct.style	8
+XIMPreeditDrawCallbackStruct	16
+XIMPreeditDrawCallbackStruct.caret	0
+XIMPreeditDrawCallbackStruct.chg_first	4
+XIMPreeditDrawCallbackStruct.chg_length	8
+XIMPreeditDrawCallbackStruct.text	12
+XIMPreeditStateNotifyCallbackStruct	4
+XIMPreeditStateNotifyCallbackStruct.state	0
+XIMStatusDrawCallbackStruct	8
+XIMStatusDrawCallbackStruct.data	4
+XIMStatusDrawCallbackStruct.type	0
+XIMStringConversionCallbackStruct	16
+XIMStringConversionCallbackStruct.direction	4
+XIMStringConversionCallbackStruct.factor	10
+XIMStringConversionCallbackStruct.operation	8
+XIMStringConversionCallbackStruct.position	0
+XIMStringConversionCallbackStruct.text	12
+XIMStringConversionText	16
+XIMStringConversionText.encoding_is_wchar	8
+XIMStringConversionText.feedback	4
+XIMStringConversionText.length	0
+XIMStringConversionText.string	12
+XIMStyles	8
+XIMStyles.count_styles	0
+XIMStyles.supported_styles	4
+XIMText	16
+XIMText.encoding_is_wchar	8
+XIMText.feedback	4
+XIMText.length	0
+XIMText.string	12
+XIMValuesList	8
+XIMValuesList.count_values	0
+XIMValuesList.supported_values	4
+XkbAccessXNotifyEvent	44
+XkbAccessXNotifyEvent.debounce_delay	40
+XkbAccessXNotifyEvent.detail	28
+XkbAccessXNotifyEvent.device	24
+XkbAccessXNotifyEvent.display	12
+XkbAccessXNotifyEvent.keycode	32
+XkbAccessXNotifyEvent.send_event	8
+XkbAccessXNotifyEvent.serial	4
+XkbAccessXNotifyEvent.sk_delay	36
+XkbAccessXNotifyEvent.time	16
+XkbAccessXNotifyEvent.type	0
+XkbAccessXNotifyEvent.xkb_type	20
+XkbActionMessageEvent	56
+XkbActionMessageEvent.device	24
+XkbActionMessageEvent.display	12
+XkbActionMessageEvent.group	40
+XkbActionMessageEvent.keycode	28
+XkbActionMessageEvent.key_event_follows	36
+XkbActionMessageEvent.message	48
+XkbActionMessageEvent.mods	44
+XkbActionMessageEvent.press	32
+XkbActionMessageEvent.send_event	8
+XkbActionMessageEvent.serial	4
+XkbActionMessageEvent.time	16
+XkbActionMessageEvent.type	0
+XkbActionMessageEvent.xkb_type	20
+XkbAnyEvent	28
+XkbAnyEvent.device	24
+XkbAnyEvent.display	12
+XkbAnyEvent.send_event	8
+XkbAnyEvent.serial	4
+XkbAnyEvent.time	16
+XkbAnyEvent.type	0
+XkbAnyEvent.xkb_type	20
+XkbBellNotifyEvent	60
+XkbBellNotifyEvent.bell_class	40
+XkbBellNotifyEvent.bell_id	44
+XkbBellNotifyEvent.device	24
+XkbBellNotifyEvent.display	12
+XkbBellNotifyEvent.duration	36
+XkbBellNotifyEvent.event_only	56
+XkbBellNotifyEvent.name	48
+XkbBellNotifyEvent.percent	28
+XkbBellNotifyEvent.pitch	32
+XkbBellNotifyEvent.send_event	8
+XkbBellNotifyEvent.serial	4
+XkbBellNotifyEvent.time	16
+XkbBellNotifyEvent.type	0
+XkbBellNotifyEvent.window	52
+XkbBellNotifyEvent.xkb_type	20
+XkbCompatMapNotifyEvent	44
+XkbCompatMapNotifyEvent.changed_groups	28
+XkbCompatMapNotifyEvent.device	24
+XkbCompatMapNotifyEvent.display	12
+XkbCompatMapNotifyEvent.first_si	32
+XkbCompatMapNotifyEvent.num_si	36
+XkbCompatMapNotifyEvent.num_total_si	40
+XkbCompatMapNotifyEvent.send_event	8
+XkbCompatMapNotifyEvent.serial	4
+XkbCompatMapNotifyEvent.time	16
+XkbCompatMapNotifyEvent.type	0
+XkbCompatMapNotifyEvent.xkb_type	20
+XkbControlsNotifyEvent	48
+XkbControlsNotifyEvent.changed_ctrls	28
+XkbControlsNotifyEvent.device	24
+XkbControlsNotifyEvent.display	12
+XkbControlsNotifyEvent.enabled_ctrl_changes	36
+XkbControlsNotifyEvent.enabled_ctrls	32
+XkbControlsNotifyEvent.event_type	45
+XkbControlsNotifyEvent.keycode	44
+XkbControlsNotifyEvent.num_groups	40
+XkbControlsNotifyEvent.req_major	46
+XkbControlsNotifyEvent.req_minor	47
+XkbControlsNotifyEvent.send_event	8
+XkbControlsNotifyEvent.serial	4
+XkbControlsNotifyEvent.time	16
+XkbControlsNotifyEvent.type	0
+XkbControlsNotifyEvent.xkb_type	20
+XkbEvent	96
+XkbEvent.accessx	0
+XkbEvent.any	0
+XkbEvent.bell	0
+XkbEvent.compat	0
+XkbEvent.core	0
+XkbEvent.ctrls	0
+XkbEvent.device	0
+XkbEvent.indicators	0
+XkbEvent.map	0
+XkbEvent.message	0
+XkbEvent.names	0
+XkbEvent.new_kbd	0
+XkbEvent.state	0
+XkbEvent.type	0
+XkbExtensionDeviceNotifyEvent	64
+XkbExtensionDeviceNotifyEvent.device	24
+XkbExtensionDeviceNotifyEvent.display	12
+XkbExtensionDeviceNotifyEvent.first_btn	40
+XkbExtensionDeviceNotifyEvent.led_class	56
+XkbExtensionDeviceNotifyEvent.led_id	60
+XkbExtensionDeviceNotifyEvent.leds_defined	48
+XkbExtensionDeviceNotifyEvent.led_state	52
+XkbExtensionDeviceNotifyEvent.num_btns	44
+XkbExtensionDeviceNotifyEvent.reason	28
+XkbExtensionDeviceNotifyEvent.send_event	8
+XkbExtensionDeviceNotifyEvent.serial	4
+XkbExtensionDeviceNotifyEvent.supported	32
+XkbExtensionDeviceNotifyEvent.time	16
+XkbExtensionDeviceNotifyEvent.type	0
+XkbExtensionDeviceNotifyEvent.unsupported	36
+XkbExtensionDeviceNotifyEvent.xkb_type	20
+XkbIndicatorNotifyEvent	36
+XkbIndicatorNotifyEvent.changed	28
+XkbIndicatorNotifyEvent.device	24
+XkbIndicatorNotifyEvent.display	12
+XkbIndicatorNotifyEvent.send_event	8
+XkbIndicatorNotifyEvent.serial	4
+XkbIndicatorNotifyEvent.state	32
+XkbIndicatorNotifyEvent.time	16
+XkbIndicatorNotifyEvent.type	0
+XkbIndicatorNotifyEvent.xkb_type	20
+XkbMapNotifyEvent	80
+XkbMapNotifyEvent.changed	28
+XkbMapNotifyEvent.device	24
+XkbMapNotifyEvent.display	12
+XkbMapNotifyEvent.first_key_act	47
+XkbMapNotifyEvent.first_key_behavior	48
+XkbMapNotifyEvent.first_key_explicit	49
+XkbMapNotifyEvent.first_key_sym	46
+XkbMapNotifyEvent.first_modmap_key	50
+XkbMapNotifyEvent.first_type	36
+XkbMapNotifyEvent.first_vmodmap_key	51
+XkbMapNotifyEvent.flags	32
+XkbMapNotifyEvent.max_key_code	45
+XkbMapNotifyEvent.min_key_code	44
+XkbMapNotifyEvent.num_key_acts	56
+XkbMapNotifyEvent.num_key_behaviors	60
+XkbMapNotifyEvent.num_key_explicit	64
+XkbMapNotifyEvent.num_key_syms	52
+XkbMapNotifyEvent.num_modmap_keys	68
+XkbMapNotifyEvent.num_types	40
+XkbMapNotifyEvent.num_vmodmap_keys	72
+XkbMapNotifyEvent.send_event	8
+XkbMapNotifyEvent.serial	4
+XkbMapNotifyEvent.time	16
+XkbMapNotifyEvent.type	0
+XkbMapNotifyEvent.vmods	76
+XkbMapNotifyEvent.xkb_type	20
+XkbNamesNotifyEvent	76
+XkbNamesNotifyEvent.changed	28
+XkbNamesNotifyEvent.changed_groups	60
+XkbNamesNotifyEvent.changed_indicators	64
+XkbNamesNotifyEvent.changed_vmods	56
+XkbNamesNotifyEvent.device	24
+XkbNamesNotifyEvent.display	12
+XkbNamesNotifyEvent.first_key	68
+XkbNamesNotifyEvent.first_lvl	40
+XkbNamesNotifyEvent.first_type	32
+XkbNamesNotifyEvent.num_aliases	48
+XkbNamesNotifyEvent.num_keys	72
+XkbNamesNotifyEvent.num_lvls	44
+XkbNamesNotifyEvent.num_radio_groups	52
+XkbNamesNotifyEvent.num_types	36
+XkbNamesNotifyEvent.send_event	8
+XkbNamesNotifyEvent.serial	4
+XkbNamesNotifyEvent.time	16
+XkbNamesNotifyEvent.type	0
+XkbNamesNotifyEvent.xkb_type	20
+XkbNewKeyboardNotifyEvent	56
+XkbNewKeyboardNotifyEvent.changed	48
+XkbNewKeyboardNotifyEvent.device	24
+XkbNewKeyboardNotifyEvent.display	12
+XkbNewKeyboardNotifyEvent.max_key_code	36
+XkbNewKeyboardNotifyEvent.min_key_code	32
+XkbNewKeyboardNotifyEvent.old_device	28
+XkbNewKeyboardNotifyEvent.old_max_key_code	44
+XkbNewKeyboardNotifyEvent.old_min_key_code	40
+XkbNewKeyboardNotifyEvent.req_major	52
+XkbNewKeyboardNotifyEvent.req_minor	53
+XkbNewKeyboardNotifyEvent.send_event	8
+XkbNewKeyboardNotifyEvent.serial	4
+XkbNewKeyboardNotifyEvent.time	16
+XkbNewKeyboardNotifyEvent.type	0
+XkbNewKeyboardNotifyEvent.xkb_type	20
+XkbStateNotifyEvent	80
+XkbStateNotifyEvent.base_group	36
+XkbStateNotifyEvent.base_mods	52
+XkbStateNotifyEvent.changed	28
+XkbStateNotifyEvent.compat_grab_mods	69
+XkbStateNotifyEvent.compat_lookup_mods	71
+XkbStateNotifyEvent.compat_state	64
+XkbStateNotifyEvent.device	24
+XkbStateNotifyEvent.display	12
+XkbStateNotifyEvent.event_type	77
+XkbStateNotifyEvent.grab_mods	68
+XkbStateNotifyEvent.group	32
+XkbStateNotifyEvent.keycode	76
+XkbStateNotifyEvent.latched_group	40
+XkbStateNotifyEvent.latched_mods	56
+XkbStateNotifyEvent.locked_group	44
+XkbStateNotifyEvent.locked_mods	60
+XkbStateNotifyEvent.lookup_mods	70
+XkbStateNotifyEvent.mods	48
+XkbStateNotifyEvent.ptr_buttons	72
+XkbStateNotifyEvent.req_major	78
+XkbStateNotifyEvent.req_minor	79
+XkbStateNotifyEvent.send_event	8
+XkbStateNotifyEvent.serial	4
+XkbStateNotifyEvent.time	16
+XkbStateNotifyEvent.type	0
+XkbStateNotifyEvent.xkb_type	20
+XKeyboardControl	32
+XKeyboardControl.auto_repeat_mode	28
+XKeyboardControl.bell_duration	12
+XKeyboardControl.bell_percent	4
+XKeyboardControl.bell_pitch	8
+XKeyboardControl.key	24
+XKeyboardControl.key_click_percent	0
+XKeyboardControl.led	16
+XKeyboardControl.led_mode	20
+XKeyboardState	56
+XKeyboardState.auto_repeats	24
+XKeyboardState.bell_duration	12
+XKeyboardState.bell_percent	4
+XKeyboardState.bell_pitch	8
+XKeyboardState.global_auto_repeat	20
+XKeyboardState.key_click_percent	0
+XKeyboardState.led_mask	16
+XKeyEvent	60
+XKeyEvent.display	12
+XKeyEvent.keycode	52
+XKeyEvent.root	20
+XKeyEvent.same_screen	56
+XKeyEvent.send_event	8
+XKeyEvent.serial	4
+XKeyEvent.state	48
+XKeyEvent.subwindow	24
+XKeyEvent.time	28
+XKeyEvent.type	0
+XKeyEvent.window	16
+XKeyEvent.x	32
+XKeyEvent.x_root	40
+XKeyEvent.y	36
+XKeyEvent.y_root	44
+XKeymapEvent	52
+XKeymapEvent.display	12
+XKeymapEvent.key_vector	20
+XKeymapEvent.send_event	8
+XKeymapEvent.serial	4
+XKeymapEvent.type	0
+XKeymapEvent.window	16
+XMapEvent	28
+XMapEvent.display	12
+XMapEvent.event	16
+XMapEvent.override_redirect	24
+XMapEvent.send_event	8
+XMapEvent.serial	4
+XMapEvent.type	0
+XMapEvent.window	20
+XMappingEvent	32
+XMappingEvent.count	28
+XMappingEvent.display	12
+XMappingEvent.first_keycode	24
+XMappingEvent.request	20
+XMappingEvent.send_event	8
+XMappingEvent.serial	4
+XMappingEvent.type	0
+XMappingEvent.window	16
+XMapRequestEvent	24
+XMapRequestEvent.display	12
+XMapRequestEvent.parent	16
+XMapRequestEvent.send_event	8
+XMapRequestEvent.serial	4
+XMapRequestEvent.type	0
+XMapRequestEvent.window	20
+XmbTextItem	16
+XmbTextItem.chars	0
+XmbTextItem.delta	8
+XmbTextItem.font_set	12
+XmbTextItem.nchars	4
+XModifierKeymap	8
+XModifierKeymap.max_keypermod	0
+XModifierKeymap.modifiermap	4
+XMotionEvent	60
+XMotionEvent.display	12
+XMotionEvent.is_hint	52
+XMotionEvent.root	20
+XMotionEvent.same_screen	56
+XMotionEvent.send_event	8
+XMotionEvent.serial	4
+XMotionEvent.state	48
+XMotionEvent.subwindow	24
+XMotionEvent.time	28
+XMotionEvent.type	0
+XMotionEvent.window	16
+XMotionEvent.x	32
+XMotionEvent.x_root	40
+XMotionEvent.y	36
+XMotionEvent.y_root	44
+XNoExposeEvent	28
+XNoExposeEvent.display	12
+XNoExposeEvent.drawable	16
+XNoExposeEvent.major_code	20
+XNoExposeEvent.minor_code	24
+XNoExposeEvent.send_event	8
+XNoExposeEvent.serial	4
+XNoExposeEvent.type	0
+XOMCharSetList	8
+XOMCharSetList.charset_count	0
+XOMCharSetList.charset_list	4
+XOMFontInfo	12
+XOMFontInfo.font_name_list	8
+XOMFontInfo.font_struct_list	4
+XOMFontInfo.num_font	0
+XOMOrientation	8
+XOMOrientation.num_orientation	0
+XOMOrientation.orientation	4
+XPixmapFormatValues	12
+XPixmapFormatValues.bits_per_pixel	4
+XPixmapFormatValues.depth	0
+XPixmapFormatValues.scanline_pad	8
+XPoint	4
+XPoint.x	0
+XPoint.y	2
+XPropertyEvent	32
+XPropertyEvent.atom	20
+XPropertyEvent.display	12
+XPropertyEvent.send_event	8
+XPropertyEvent.serial	4
+XPropertyEvent.state	28
+XPropertyEvent.time	24
+XPropertyEvent.type	0
+XPropertyEvent.window	16
+XRectangle	8
+XRectangle.height	6
+XRectangle.width	4
+XRectangle.x	0
+XRectangle.y	2
+XRenderDirectFormat	16
+XRenderDirectFormat.alpha	12
+XRenderDirectFormat.alphaMask	14
+XRenderDirectFormat.blue	8
+XRenderDirectFormat.blueMask	10
+XRenderDirectFormat.green	4
+XRenderDirectFormat.greenMask	6
+XRenderDirectFormat.red	0
+XRenderDirectFormat.redMask	2
+XRenderPictFormat	32
+XRenderPictFormat.colormap	28
+XRenderPictFormat.depth	8
+XRenderPictFormat.direct	12
+XRenderPictFormat.id	0
+XRenderPictFormat.type	4
+XReparentEvent	40
+XReparentEvent.display	12
+XReparentEvent.event	16
+XReparentEvent.override_redirect	36
+XReparentEvent.parent	24
+XReparentEvent.send_event	8
+XReparentEvent.serial	4
+XReparentEvent.type	0
+XReparentEvent.window	20
+XReparentEvent.x	28
+XReparentEvent.y	32
+XResizeRequestEvent	28
+XResizeRequestEvent.display	12
+XResizeRequestEvent.height	24
+XResizeRequestEvent.send_event	8
+XResizeRequestEvent.serial	4
+XResizeRequestEvent.type	0
+XResizeRequestEvent.width	20
+XResizeRequestEvent.window	16
+XSegment	8
+XSegment.x1	0
+XSegment.x2	4
+XSegment.y1	2
+XSegment.y2	6
+XSelectionClearEvent	28
+XSelectionClearEvent.display	12
+XSelectionClearEvent.selection	20
+XSelectionClearEvent.send_event	8
+XSelectionClearEvent.serial	4
+XSelectionClearEvent.time	24
+XSelectionClearEvent.type	0
+XSelectionClearEvent.window	16
+XSelectionEvent	36
+XSelectionEvent.display	12
+XSelectionEvent.property	28
+XSelectionEvent.requestor	16
+XSelectionEvent.selection	20
+XSelectionEvent.send_event	8
+XSelectionEvent.serial	4
+XSelectionEvent.target	24
+XSelectionEvent.time	32
+XSelectionEvent.type	0
+XSelectionRequestEvent	40
+XSelectionRequestEvent.display	12
+XSelectionRequestEvent.owner	16
+XSelectionRequestEvent.property	32
+XSelectionRequestEvent.requestor	20
+XSelectionRequestEvent.selection	24
+XSelectionRequestEvent.send_event	8
+XSelectionRequestEvent.serial	4
+XSelectionRequestEvent.target	28
+XSelectionRequestEvent.time	36
+XSelectionRequestEvent.type	0
+XSetWindowAttributes	60
+XSetWindowAttributes.background_pixel	4
+XSetWindowAttributes.background_pixmap	0
+XSetWindowAttributes.backing_pixel	32
+XSetWindowAttributes.backing_planes	28
+XSetWindowAttributes.backing_store	24
+XSetWindowAttributes.bit_gravity	16
+XSetWindowAttributes.border_pixel	12
+XSetWindowAttributes.border_pixmap	8
+XSetWindowAttributes.colormap	52
+XSetWindowAttributes.cursor	56
+XSetWindowAttributes.do_not_propagate_mask	44
+XSetWindowAttributes.event_mask	40
+XSetWindowAttributes.override_redirect	48
+XSetWindowAttributes.save_under	36
+XSetWindowAttributes.win_gravity	20
+XSizeHints	72
+XSizeHints.base_height	64
+XSizeHints.base_width	60
+XSizeHints.flags	0
+XSizeHints.height	16
+XSizeHints.height_inc	40
+XSizeHints.max_aspect.x	52
+XSizeHints.max_aspect.y	56
+XSizeHints.max_height	32
+XSizeHints.max_width	28
+XSizeHints.min_aspect.x	44
+XSizeHints.min_aspect.y	48
+XSizeHints.min_height	24
+XSizeHints.min_width	20
+XSizeHints.width	12
+XSizeHints.width_inc	36
+XSizeHints.win_gravity	68
+XSizeHints.x	4
+XSizeHints.y	8
+XStandardColormap	40
+XStandardColormap.base_pixel	28
+XStandardColormap.blue_max	20
+XStandardColormap.blue_mult	24
+XStandardColormap.colormap	0
+XStandardColormap.green_max	12
+XStandardColormap.green_mult	16
+XStandardColormap.killid	36
+XStandardColormap.red_max	4
+XStandardColormap.red_mult	8
+XStandardColormap.visualid	32
+XTextItem	16
+XTextItem16	16
+XTextItem16.chars	0
+XTextItem16.delta	8
+XTextItem16.font	12
+XTextItem16.nchars	4
+XTextItem.chars	0
+XTextItem.delta	8
+XTextItem.font	12
+XTextItem.nchars	4
+XTextProperty	16
+XTextProperty.encoding	4
+XTextProperty.format	8
+XTextProperty.nitems	12
+XTextProperty.value	0
+XTimeCoord	8
+XTimeCoord.time	0
+XTimeCoord.x	4
+XTimeCoord.y	6
+XUnmapEvent	28
+XUnmapEvent.display	12
+XUnmapEvent.event	16
+XUnmapEvent.from_configure	24
+XUnmapEvent.send_event	8
+XUnmapEvent.serial	4
+XUnmapEvent.type	0
+XUnmapEvent.window	20
+XVisibilityEvent	24
+XVisibilityEvent.display	12
+XVisibilityEvent.send_event	8
+XVisibilityEvent.serial	4
+XVisibilityEvent.state	20
+XVisibilityEvent.type	0
+XVisibilityEvent.window	16
+XVisualInfo	40
+XVisualInfo.bits_per_rgb	36
+XVisualInfo.blue_mask	28
+XVisualInfo.class	16
+XVisualInfo.colormap_size	32
+XVisualInfo.depth	12
+XVisualInfo.green_mask	24
+XVisualInfo.red_mask	20
+XVisualInfo.screen	8
+XVisualInfo.visual	0
+XVisualInfo.visualid	4
+XwcTextItem	16
+XwcTextItem.chars	0
+XwcTextItem.delta	8
+XwcTextItem.font_set	12
+XwcTextItem.nchars	4
+XWindowAttributes	92
+XWindowAttributes.all_event_masks	72
+XWindowAttributes.backing_pixel	52
+XWindowAttributes.backing_planes	48
+XWindowAttributes.backing_store	44
+XWindowAttributes.bit_gravity	36
+XWindowAttributes.border_width	16
+XWindowAttributes.class	32
+XWindowAttributes.colormap	60
+XWindowAttributes.depth	20
+XWindowAttributes.do_not_propagate_mask	80
+XWindowAttributes.height	12
+XWindowAttributes.map_installed	64
+XWindowAttributes.map_state	68
+XWindowAttributes.override_redirect	84
+XWindowAttributes.root	28
+XWindowAttributes.save_under	56
+XWindowAttributes.screen	88
+XWindowAttributes.visual	24
+XWindowAttributes.width	8
+XWindowAttributes.win_gravity	40
+XWindowAttributes.x	0
+XWindowAttributes.y	4
+XWindowAttributes.your_event_mask	76
+XWindowChanges	28
+XWindowChanges.border_width	16
+XWindowChanges.height	12
+XWindowChanges.sibling	20
+XWindowChanges.stack_mode	24
+XWindowChanges.width	8
+XWindowChanges.x	0
+XWindowChanges.y	4
+XWMHints	36
+XWMHints.flags	0
+XWMHints.icon_mask	28
+XWMHints.icon_pixmap	12
+XWMHints.icon_window	16
+XWMHints.icon_x	20
+XWMHints.icon_y	24
+XWMHints.initial_state	8
+XWMHints.input	4
+XWMHints.window_group	32
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/x11wrappergen/sizes-64.txt	Thu Mar 08 10:18:28 2018 -0800
@@ -0,0 +1,1017 @@
+Atom	8
+AwtGraphicsConfigData	208
+AwtGraphicsConfigData.awt_cmap	8
+AwtGraphicsConfigData.AwtColorMatch	96
+AwtGraphicsConfigData.awt_depth	0
+AwtGraphicsConfigData.awtImage	88
+AwtGraphicsConfigData.awt_num_colors	80
+AwtGraphicsConfigData.awt_visInfo	16
+AwtGraphicsConfigData.color_data	144
+AwtGraphicsConfigData.glxInfo	152
+AwtGraphicsConfigData.isTranslucencySupported	160
+AwtGraphicsConfigData.monoImage	104
+AwtGraphicsConfigData.monoPixmap	112
+AwtGraphicsConfigData.monoPixmapGC	128
+AwtGraphicsConfigData.monoPixmapHeight	124
+AwtGraphicsConfigData.monoPixmapWidth	120
+AwtGraphicsConfigData.pixelStride	136
+AwtGraphicsConfigData.renderPictFormat	168
+awtImageData	560
+awtImageData.clrdata	16
+awtImageData.convert	48
+awtImageData.Depth	0
+awtImageData.wsImageFormat	4
+AwtScreenData	48
+AwtScreenData.blackpixel	24
+AwtScreenData.configs	40
+AwtScreenData.defaultConfig	32
+AwtScreenData.numConfigs	0
+AwtScreenData.root	8
+AwtScreenData.whitepixel	16
+Bool	4
+ColorData	88
+ColorData.awt_Colors	0
+ColorData.awt_icmLUT	16
+ColorData.awt_icmLUT2Colors	24
+ColorData.awt_numICMcolors	8
+ColorData.img_clr_tbl	40
+ColorData.img_grays	32
+ColorData.img_oda_blue	64
+ColorData.img_oda_green	56
+ColorData.img_oda_red	48
+ColorData.pGrayInverseLutData	72
+ColorData.representsPrimaries	84
+ColorData.screendata	80
+ColorEntry	4
+ColorEntry.b	2
+ColorEntry.flags	3
+ColorEntry.g	1
+ColorEntry.r	0
+Depth	16
+Depth.depth	0
+Depth.nvisuals	4
+Depth.visuals	8
+int	4
+long	8
+PropMwmHints	40
+PropMwmHints.decorations	16
+PropMwmHints.flags	0
+PropMwmHints.functions	8
+PropMwmHints.inputMode	24
+PropMwmHints.status	32
+ptr	8
+Screen	128
+Screen.backing_store	112
+Screen.black_pixel	96
+Screen.cmap	80
+Screen.default_gc	72
+Screen.depths	48
+Screen.display	8
+Screen.ext_data	0
+ScreenFormat	24
+ScreenFormat.bits_per_pixel	12
+ScreenFormat.depth	8
+ScreenFormat.ext_data	0
+ScreenFormat.scanline_pad	16
+Screen.height	28
+Screen.max_maps	104
+Screen.mheight	36
+Screen.min_maps	108
+Screen.mwidth	32
+Screen.ndepths	40
+Screen.root	16
+Screen.root_depth	56
+Screen.root_input_mask	120
+Screen.root_visual	64
+Screen.save_unders	116
+Screen.white_pixel	88
+Screen.width	24
+short	2
+Visual	56
+Visual.bits_per_rgb	48
+Visual.blue_mask	40
+Visual.class	16
+Visual.ext_data	0
+Visual.green_mask	32
+Visual.map_entries	52
+Visual.red_mask	24
+Visual.visualid	8
+Window	8
+XAnyEvent	40
+XAnyEvent.display	24
+XAnyEvent.send_event	16
+XAnyEvent.serial	8
+XAnyEvent.type	0
+XAnyEvent.window	32
+XArc	12
+XArc.angle1	8
+XArc.angle2	10
+XArc.height	6
+XArc.width	4
+XArc.x	0
+XArc.y	2
+XButtonEvent	96
+XButtonEvent.button	84
+XButtonEvent.display	24
+XButtonEvent.root	40
+XButtonEvent.same_screen	88
+XButtonEvent.send_event	16
+XButtonEvent.serial	8
+XButtonEvent.state	80
+XButtonEvent.subwindow	48
+XButtonEvent.time	56
+XButtonEvent.type	0
+XButtonEvent.window	32
+XButtonEvent.x	64
+XButtonEvent.x_root	72
+XButtonEvent.y	68
+XButtonEvent.y_root	76
+XChar2b	2
+XChar2b.byte1	0
+XChar2b.byte2	1
+XCharStruct	12
+XCharStruct.ascent	6
+XCharStruct.attributes	10
+XCharStruct.descent	8
+XCharStruct.lbearing	0
+XCharStruct.rbearing	2
+XCharStruct.width	4
+XCirculateEvent	56
+XCirculateEvent.display	24
+XCirculateEvent.event	32
+XCirculateEvent.place	48
+XCirculateEvent.send_event	16
+XCirculateEvent.serial	8
+XCirculateEvent.type	0
+XCirculateEvent.window	40
+XCirculateRequestEvent	56
+XCirculateRequestEvent.display	24
+XCirculateRequestEvent.parent	32
+XCirculateRequestEvent.place	48
+XCirculateRequestEvent.send_event	16
+XCirculateRequestEvent.serial	8
+XCirculateRequestEvent.type	0
+XCirculateRequestEvent.window	40
+XClassHint	16
+XClassHint.res_class	8
+XClassHint.res_name	0
+XClientMessageEvent	96
+XClientMessageEvent.data	56
+XClientMessageEvent.display	24
+XClientMessageEvent.format	48
+XClientMessageEvent.message_type	40
+XClientMessageEvent.send_event	16
+XClientMessageEvent.serial	8
+XClientMessageEvent.type	0
+XClientMessageEvent.window	32
+XColor	16
+XColor.blue	12
+XColor.flags	14
+XColor.green	10
+XColormapEvent	56
+XColormapEvent.colormap	40
+XColormapEvent.display	24
+XColormapEvent.new	48
+XColormapEvent.send_event	16
+XColormapEvent.serial	8
+XColormapEvent.state	52
+XColormapEvent.type	0
+XColormapEvent.window	32
+XColor.pad	15
+XColor.pixel	0
+XColor.red	8
+XComposeStatus	16
+XComposeStatus.chars_matched	8
+XComposeStatus.compose_ptr	0
+XConfigureEvent	88
+XConfigureEvent.above	72
+XConfigureEvent.border_width	64
+XConfigureEvent.display	24
+XConfigureEvent.event	32
+XConfigureEvent.height	60
+XConfigureEvent.override_redirect	80
+XConfigureEvent.send_event	16
+XConfigureEvent.serial	8
+XConfigureEvent.type	0
+XConfigureEvent.width	56
+XConfigureEvent.window	40
+XConfigureEvent.x	48
+XConfigureEvent.y	52
+XConfigureRequestEvent	96
+XConfigureRequestEvent.above	72
+XConfigureRequestEvent.border_width	64
+XConfigureRequestEvent.detail	80
+XConfigureRequestEvent.display	24
+XConfigureRequestEvent.height	60
+XConfigureRequestEvent.parent	32
+XConfigureRequestEvent.send_event	16
+XConfigureRequestEvent.serial	8
+XConfigureRequestEvent.type	0
+XConfigureRequestEvent.value_mask	88
+XConfigureRequestEvent.width	56
+XConfigureRequestEvent.window	40
+XConfigureRequestEvent.x	48
+XConfigureRequestEvent.y	52
+XCreateWindowEvent	72
+XCreateWindowEvent.border_width	64
+XCreateWindowEvent.display	24
+XCreateWindowEvent.height	60
+XCreateWindowEvent.override_redirect	68
+XCreateWindowEvent.parent	32
+XCreateWindowEvent.send_event	16
+XCreateWindowEvent.serial	8
+XCreateWindowEvent.type	0
+XCreateWindowEvent.width	56
+XCreateWindowEvent.window	40
+XCreateWindowEvent.x	48
+XCreateWindowEvent.y	52
+XCrossingEvent	104
+XCrossingEvent.detail	84
+XCrossingEvent.display	24
+XCrossingEvent.focus	92
+XCrossingEvent.mode	80
+XCrossingEvent.root	40
+XCrossingEvent.same_screen	88
+XCrossingEvent.send_event	16
+XCrossingEvent.serial	8
+XCrossingEvent.state	96
+XCrossingEvent.subwindow	48
+XCrossingEvent.time	56
+XCrossingEvent.type	0
+XCrossingEvent.window	32
+XCrossingEvent.x	64
+XCrossingEvent.x_root	72
+XCrossingEvent.y	68
+XCrossingEvent.y_root	76
+XdbeSwapInfo	16
+XdbeSwapInfo.swap_action	8
+XdbeSwapInfo.swap_window	0
+XDestroyWindowEvent	48
+XDestroyWindowEvent.display	24
+XDestroyWindowEvent.event	32
+XDestroyWindowEvent.send_event	16
+XDestroyWindowEvent.serial	8
+XDestroyWindowEvent.type	0
+XDestroyWindowEvent.window	40
+XErrorEvent	40
+XErrorEvent.display	8
+XErrorEvent.error_code	32
+XErrorEvent.minor_code	34
+XErrorEvent.request_code	33
+XErrorEvent.resourceid	16
+XErrorEvent.serial	24
+XErrorEvent.type	0
+XEvent	192
+XEvent.pad	0
+XEvent.type	0
+XEvent.xany	0
+XEvent.xbutton	0
+XEvent.xcirculate	0
+XEvent.xcirculaterequest	0
+XEvent.xclient	0
+XEvent.xcolormap	0
+XEvent.xconfigure	0
+XEvent.xconfigurerequest	0
+XEvent.xcreatewindow	0
+XEvent.xcrossing	0
+XEvent.xdestroywindow	0
+XEvent.xerror	0
+XEvent.xexpose	0
+XEvent.xfocus	0
+XEvent.xgraphicsexpose	0
+XEvent.xgravity	0
+XEvent.xkey	0
+XEvent.xkeymap	0
+XEvent.xmap	0
+XEvent.xmapping	0
+XEvent.xmaprequest	0
+XEvent.xmotion	0
+XEvent.xnoexpose	0
+XEvent.xproperty	0
+XEvent.xreparent	0
+XEvent.xresizerequest	0
+XEvent.xselection	0
+XEvent.xselectionclear	0
+XEvent.xselectionrequest	0
+XEvent.xunmap	0
+XEvent.xvisibility	0
+XExposeEvent	64
+XExposeEvent.count	56
+XExposeEvent.display	24
+XExposeEvent.height	52
+XExposeEvent.send_event	16
+XExposeEvent.serial	8
+XExposeEvent.type	0
+XExposeEvent.width	48
+XExposeEvent.window	32
+XExposeEvent.x	40
+XExposeEvent.y	44
+XExtCodes	16
+XExtCodes.extension	0
+XExtCodes.first_error	12
+XExtCodes.first_event	8
+XExtCodes.major_opcode	4
+XExtData	32
+XExtData.free_private	16
+XExtData.next	8
+XExtData.number	0
+XExtData.private_data	24
+XFocusChangeEvent	48
+XFocusChangeEvent.detail	44
+XFocusChangeEvent.display	24
+XFocusChangeEvent.mode	40
+XFocusChangeEvent.send_event	16
+XFocusChangeEvent.serial	8
+XFocusChangeEvent.type	0
+XFocusChangeEvent.window	32
+XFontProp	16
+XFontProp.card32	8
+XFontProp.name	0
+XFontSetExtents	16
+XFontSetExtents.max_ink_extent	0
+XFontSetExtents.max_logical_extent	8
+XFontStruct	96
+XFontStruct.all_chars_exist	36
+XFontStruct.ascent	88
+XFontStruct.descent	92
+XFontStruct.direction	16
+XFontStruct.ext_data	0
+XFontStruct.fid	8
+XFontStruct.max_bounds	68
+XFontStruct.max_byte1	32
+XFontStruct.max_char_or_byte2	24
+XFontStruct.min_bounds	56
+XFontStruct.min_byte1	28
+XFontStruct.min_char_or_byte2	20
+XFontStruct.n_properties	44
+XFontStruct.per_char	80
+XFontStruct.properties	48
+XGCValues	128
+XGCValues.arc_mode	56
+XGCValues.background	24
+XGCValues.cap_style	40
+XGCValues.clip_mask	112
+XGCValues.clip_x_origin	104
+XGCValues.clip_y_origin	108
+XGCValues.dashes	124
+XGCValues.dash_offset	120
+XGCValues.fill_rule	52
+XGCValues.fill_style	48
+XGCValues.font	88
+XGCValues.foreground	16
+XGCValues.function	0
+XGCValues.graphics_exposures	100
+XGCValues.join_style	44
+XGCValues.line_style	36
+XGCValues.line_width	32
+XGCValues.plane_mask	8
+XGCValues.stipple	72
+XGCValues.subwindow_mode	96
+XGCValues.tile	64
+XGCValues.ts_x_origin	80
+XGCValues.ts_y_origin	84
+XGraphicsExposeEvent	72
+XGraphicsExposeEvent.count	56
+XGraphicsExposeEvent.display	24
+XGraphicsExposeEvent.drawable	32
+XGraphicsExposeEvent.height	52
+XGraphicsExposeEvent.major_code	60
+XGraphicsExposeEvent.minor_code	64
+XGraphicsExposeEvent.send_event	16
+XGraphicsExposeEvent.serial	8
+XGraphicsExposeEvent.type	0
+XGraphicsExposeEvent.width	48
+XGraphicsExposeEvent.x	40
+XGraphicsExposeEvent.y	44
+XGravityEvent	56
+XGravityEvent.display	24
+XGravityEvent.event	32
+XGravityEvent.send_event	16
+XGravityEvent.serial	8
+XGravityEvent.type	0
+XGravityEvent.window	40
+XGravityEvent.x	48
+XGravityEvent.y	52
+XHostAddress	16
+XHostAddress.address	8
+XHostAddress.family	0
+XHostAddress.length	4
+XIconSize	24
+XIconSize.height_inc	20
+XIconSize.max_height	12
+XIconSize.max_width	8
+XIconSize.min_height	4
+XIconSize.min_width	0
+XIconSize.width_inc	16
+XImage	136
+XImage.bitmap_bit_order	32
+XImage.bitmap_pad	36
+XImage.bitmap_unit	28
+XImage.bits_per_pixel	48
+XImage.blue_mask	72
+XImage.byte_order	24
+XImage.bytes_per_line	44
+XImage.data	16
+XImage.depth	40
+XImage.f.add_pixel	128
+XImage.f.create_image	88
+XImage.f.destroy_image	96
+XImage.f.get_pixel	104
+XImage.format	12
+XImage.f.put_pixel	112
+XImage.f.sub_image	120
+XImage.green_mask	64
+XImage.height	4
+XImage.obdata	80
+XImage.red_mask	56
+XImage.width	0
+XImage.xoffset	8
+XIMCallback	16
+XIMCallback.callback	8
+XIMCallback.client_data	0
+XIMHotKeyTrigger	16
+XIMHotKeyTrigger.keysym	0
+XIMHotKeyTrigger.modifier	8
+XIMHotKeyTrigger.modifier_mask	12
+XIMHotKeyTriggers	16
+XIMHotKeyTriggers.key	8
+XIMHotKeyTriggers.num_hot_key	0
+XIMPreeditCaretCallbackStruct	12
+XIMPreeditCaretCallbackStruct.direction	4
+XIMPreeditCaretCallbackStruct.position	0
+XIMPreeditCaretCallbackStruct.style	8
+XIMPreeditDrawCallbackStruct	24
+XIMPreeditDrawCallbackStruct.caret	0
+XIMPreeditDrawCallbackStruct.chg_first	4
+XIMPreeditDrawCallbackStruct.chg_length	8
+XIMPreeditDrawCallbackStruct.text	16
+XIMPreeditStateNotifyCallbackStruct	8
+XIMPreeditStateNotifyCallbackStruct.state	0
+XIMStatusDrawCallbackStruct	16
+XIMStatusDrawCallbackStruct.data	8
+XIMStatusDrawCallbackStruct.type	0
+XIMStringConversionCallbackStruct	24
+XIMStringConversionCallbackStruct.direction	4
+XIMStringConversionCallbackStruct.factor	10
+XIMStringConversionCallbackStruct.operation	8
+XIMStringConversionCallbackStruct.position	0
+XIMStringConversionCallbackStruct.text	16
+XIMStringConversionText	32
+XIMStringConversionText.encoding_is_wchar	16
+XIMStringConversionText.feedback	8
+XIMStringConversionText.length	0
+XIMStringConversionText.string	24
+XIMStyles	16
+XIMStyles.count_styles	0
+XIMStyles.supported_styles	8
+XIMText	32
+XIMText.encoding_is_wchar	16
+XIMText.feedback	8
+XIMText.length	0
+XIMText.string	24
+XIMValuesList	16
+XIMValuesList.count_values	0
+XIMValuesList.supported_values	8
+XkbAccessXNotifyEvent	64
+XkbAccessXNotifyEvent.debounce_delay	60
+XkbAccessXNotifyEvent.detail	48
+XkbAccessXNotifyEvent.device	44
+XkbAccessXNotifyEvent.display	24
+XkbAccessXNotifyEvent.keycode	52
+XkbAccessXNotifyEvent.send_event	16
+XkbAccessXNotifyEvent.serial	8
+XkbAccessXNotifyEvent.sk_delay	56
+XkbAccessXNotifyEvent.time	32
+XkbAccessXNotifyEvent.type	0
+XkbAccessXNotifyEvent.xkb_type	40
+XkbActionMessageEvent	80
+XkbActionMessageEvent.device	44
+XkbActionMessageEvent.display	24
+XkbActionMessageEvent.group	60
+XkbActionMessageEvent.keycode	48
+XkbActionMessageEvent.key_event_follows	56
+XkbActionMessageEvent.message	68
+XkbActionMessageEvent.mods	64
+XkbActionMessageEvent.press	52
+XkbActionMessageEvent.send_event	16
+XkbActionMessageEvent.serial	8
+XkbActionMessageEvent.time	32
+XkbActionMessageEvent.type	0
+XkbActionMessageEvent.xkb_type	40
+XkbAnyEvent	48
+XkbAnyEvent.device	44
+XkbAnyEvent.display	24
+XkbAnyEvent.send_event	16
+XkbAnyEvent.serial	8
+XkbAnyEvent.time	32
+XkbAnyEvent.type	0
+XkbAnyEvent.xkb_type	40
+XkbBellNotifyEvent	96
+XkbBellNotifyEvent.bell_class	60
+XkbBellNotifyEvent.bell_id	64
+XkbBellNotifyEvent.device	44
+XkbBellNotifyEvent.display	24
+XkbBellNotifyEvent.duration	56
+XkbBellNotifyEvent.event_only	88
+XkbBellNotifyEvent.name	72
+XkbBellNotifyEvent.percent	48
+XkbBellNotifyEvent.pitch	52
+XkbBellNotifyEvent.send_event	16
+XkbBellNotifyEvent.serial	8
+XkbBellNotifyEvent.time	32
+XkbBellNotifyEvent.type	0
+XkbBellNotifyEvent.window	80
+XkbBellNotifyEvent.xkb_type	40
+XkbCompatMapNotifyEvent	64
+XkbCompatMapNotifyEvent.changed_groups	48
+XkbCompatMapNotifyEvent.device	44
+XkbCompatMapNotifyEvent.display	24
+XkbCompatMapNotifyEvent.first_si	52
+XkbCompatMapNotifyEvent.num_si	56
+XkbCompatMapNotifyEvent.num_total_si	60
+XkbCompatMapNotifyEvent.send_event	16
+XkbCompatMapNotifyEvent.serial	8
+XkbCompatMapNotifyEvent.time	32
+XkbCompatMapNotifyEvent.type	0
+XkbCompatMapNotifyEvent.xkb_type	40
+XkbControlsNotifyEvent	72
+XkbControlsNotifyEvent.changed_ctrls	48
+XkbControlsNotifyEvent.device	44
+XkbControlsNotifyEvent.display	24
+XkbControlsNotifyEvent.enabled_ctrl_changes	56
+XkbControlsNotifyEvent.enabled_ctrls	52
+XkbControlsNotifyEvent.event_type	65
+XkbControlsNotifyEvent.keycode	64
+XkbControlsNotifyEvent.num_groups	60
+XkbControlsNotifyEvent.req_major	66
+XkbControlsNotifyEvent.req_minor	67
+XkbControlsNotifyEvent.send_event	16
+XkbControlsNotifyEvent.serial	8
+XkbControlsNotifyEvent.time	32
+XkbControlsNotifyEvent.type	0
+XkbControlsNotifyEvent.xkb_type	40
+XkbEvent	192
+XkbEvent.accessx	0
+XkbEvent.any	0
+XkbEvent.bell	0
+XkbEvent.compat	0
+XkbEvent.core	0
+XkbEvent.ctrls	0
+XkbEvent.device	0
+XkbEvent.indicators	0
+XkbEvent.map	0
+XkbEvent.message	0
+XkbEvent.names	0
+XkbEvent.new_kbd	0
+XkbEvent.state	0
+XkbEvent.type	0
+XkbExtensionDeviceNotifyEvent	88
+XkbExtensionDeviceNotifyEvent.device	44
+XkbExtensionDeviceNotifyEvent.display	24
+XkbExtensionDeviceNotifyEvent.first_btn	60
+XkbExtensionDeviceNotifyEvent.led_class	76
+XkbExtensionDeviceNotifyEvent.led_id	80
+XkbExtensionDeviceNotifyEvent.leds_defined	68
+XkbExtensionDeviceNotifyEvent.led_state	72
+XkbExtensionDeviceNotifyEvent.num_btns	64
+XkbExtensionDeviceNotifyEvent.reason	48
+XkbExtensionDeviceNotifyEvent.send_event	16
+XkbExtensionDeviceNotifyEvent.serial	8
+XkbExtensionDeviceNotifyEvent.supported	52
+XkbExtensionDeviceNotifyEvent.time	32
+XkbExtensionDeviceNotifyEvent.type	0
+XkbExtensionDeviceNotifyEvent.unsupported	56
+XkbExtensionDeviceNotifyEvent.xkb_type	40
+XkbIndicatorNotifyEvent	56
+XkbIndicatorNotifyEvent.changed	48
+XkbIndicatorNotifyEvent.device	44
+XkbIndicatorNotifyEvent.display	24
+XkbIndicatorNotifyEvent.send_event	16
+XkbIndicatorNotifyEvent.serial	8
+XkbIndicatorNotifyEvent.state	52
+XkbIndicatorNotifyEvent.time	32
+XkbIndicatorNotifyEvent.type	0
+XkbIndicatorNotifyEvent.xkb_type	40
+XkbMapNotifyEvent	104
+XkbMapNotifyEvent.changed	48
+XkbMapNotifyEvent.device	44
+XkbMapNotifyEvent.display	24
+XkbMapNotifyEvent.first_key_act	67
+XkbMapNotifyEvent.first_key_behavior	68
+XkbMapNotifyEvent.first_key_explicit	69
+XkbMapNotifyEvent.first_key_sym	66
+XkbMapNotifyEvent.first_modmap_key	70
+XkbMapNotifyEvent.first_type	56
+XkbMapNotifyEvent.first_vmodmap_key	71
+XkbMapNotifyEvent.flags	52
+XkbMapNotifyEvent.max_key_code	65
+XkbMapNotifyEvent.min_key_code	64
+XkbMapNotifyEvent.num_key_acts	76
+XkbMapNotifyEvent.num_key_behaviors	80
+XkbMapNotifyEvent.num_key_explicit	84
+XkbMapNotifyEvent.num_key_syms	72
+XkbMapNotifyEvent.num_modmap_keys	88
+XkbMapNotifyEvent.num_types	60
+XkbMapNotifyEvent.num_vmodmap_keys	92
+XkbMapNotifyEvent.send_event	16
+XkbMapNotifyEvent.serial	8
+XkbMapNotifyEvent.time	32
+XkbMapNotifyEvent.type	0
+XkbMapNotifyEvent.vmods	96
+XkbMapNotifyEvent.xkb_type	40
+XkbNamesNotifyEvent	96
+XkbNamesNotifyEvent.changed	48
+XkbNamesNotifyEvent.changed_groups	80
+XkbNamesNotifyEvent.changed_indicators	84
+XkbNamesNotifyEvent.changed_vmods	76
+XkbNamesNotifyEvent.device	44
+XkbNamesNotifyEvent.display	24
+XkbNamesNotifyEvent.first_key	88
+XkbNamesNotifyEvent.first_lvl	60
+XkbNamesNotifyEvent.first_type	52
+XkbNamesNotifyEvent.num_aliases	68
+XkbNamesNotifyEvent.num_keys	92
+XkbNamesNotifyEvent.num_lvls	64
+XkbNamesNotifyEvent.num_radio_groups	72
+XkbNamesNotifyEvent.num_types	56
+XkbNamesNotifyEvent.send_event	16
+XkbNamesNotifyEvent.serial	8
+XkbNamesNotifyEvent.time	32
+XkbNamesNotifyEvent.type	0
+XkbNamesNotifyEvent.xkb_type	40
+XkbNewKeyboardNotifyEvent	80
+XkbNewKeyboardNotifyEvent.changed	68
+XkbNewKeyboardNotifyEvent.device	44
+XkbNewKeyboardNotifyEvent.display	24
+XkbNewKeyboardNotifyEvent.max_key_code	56
+XkbNewKeyboardNotifyEvent.min_key_code	52
+XkbNewKeyboardNotifyEvent.old_device	48
+XkbNewKeyboardNotifyEvent.old_max_key_code	64
+XkbNewKeyboardNotifyEvent.old_min_key_code	60
+XkbNewKeyboardNotifyEvent.req_major	72
+XkbNewKeyboardNotifyEvent.req_minor	73
+XkbNewKeyboardNotifyEvent.send_event	16
+XkbNewKeyboardNotifyEvent.serial	8
+XkbNewKeyboardNotifyEvent.time	32
+XkbNewKeyboardNotifyEvent.type	0
+XkbNewKeyboardNotifyEvent.xkb_type	40
+XkbStateNotifyEvent	104
+XkbStateNotifyEvent.base_group	56
+XkbStateNotifyEvent.base_mods	72
+XkbStateNotifyEvent.changed	48
+XkbStateNotifyEvent.compat_grab_mods	89
+XkbStateNotifyEvent.compat_lookup_mods	91
+XkbStateNotifyEvent.compat_state	84
+XkbStateNotifyEvent.device	44
+XkbStateNotifyEvent.display	24
+XkbStateNotifyEvent.event_type	97
+XkbStateNotifyEvent.grab_mods	88
+XkbStateNotifyEvent.group	52
+XkbStateNotifyEvent.keycode	96
+XkbStateNotifyEvent.latched_group	60
+XkbStateNotifyEvent.latched_mods	76
+XkbStateNotifyEvent.locked_group	64
+XkbStateNotifyEvent.locked_mods	80
+XkbStateNotifyEvent.lookup_mods	90
+XkbStateNotifyEvent.mods	68
+XkbStateNotifyEvent.ptr_buttons	92
+XkbStateNotifyEvent.req_major	98
+XkbStateNotifyEvent.req_minor	99
+XkbStateNotifyEvent.send_event	16
+XkbStateNotifyEvent.serial	8
+XkbStateNotifyEvent.time	32
+XkbStateNotifyEvent.type	0
+XkbStateNotifyEvent.xkb_type	40
+XKeyboardControl	32
+XKeyboardControl.auto_repeat_mode	28
+XKeyboardControl.bell_duration	12
+XKeyboardControl.bell_percent	4
+XKeyboardControl.bell_pitch	8
+XKeyboardControl.key	24
+XKeyboardControl.key_click_percent	0
+XKeyboardControl.led	16
+XKeyboardControl.led_mode	20
+XKeyboardState	64
+XKeyboardState.auto_repeats	28
+XKeyboardState.bell_duration	12
+XKeyboardState.bell_percent	4
+XKeyboardState.bell_pitch	8
+XKeyboardState.global_auto_repeat	24
+XKeyboardState.key_click_percent	0
+XKeyboardState.led_mask	16
+XKeyEvent	96
+XKeyEvent.display	24
+XKeyEvent.keycode	84
+XKeyEvent.root	40
+XKeyEvent.same_screen	88
+XKeyEvent.send_event	16
+XKeyEvent.serial	8
+XKeyEvent.state	80
+XKeyEvent.subwindow	48
+XKeyEvent.time	56
+XKeyEvent.type	0
+XKeyEvent.window	32
+XKeyEvent.x	64
+XKeyEvent.x_root	72
+XKeyEvent.y	68
+XKeyEvent.y_root	76
+XKeymapEvent	72
+XKeymapEvent.display	24
+XKeymapEvent.key_vector	40
+XKeymapEvent.send_event	16
+XKeymapEvent.serial	8
+XKeymapEvent.type	0
+XKeymapEvent.window	32
+XMapEvent	56
+XMapEvent.display	24
+XMapEvent.event	32
+XMapEvent.override_redirect	48
+XMapEvent.send_event	16
+XMapEvent.serial	8
+XMapEvent.type	0
+XMapEvent.window	40
+XMappingEvent	56
+XMappingEvent.count	48
+XMappingEvent.display	24
+XMappingEvent.first_keycode	44
+XMappingEvent.request	40
+XMappingEvent.send_event	16
+XMappingEvent.serial	8
+XMappingEvent.type	0
+XMappingEvent.window	32
+XMapRequestEvent	48
+XMapRequestEvent.display	24
+XMapRequestEvent.parent	32
+XMapRequestEvent.send_event	16
+XMapRequestEvent.serial	8
+XMapRequestEvent.type	0
+XMapRequestEvent.window	40
+XmbTextItem	24
+XmbTextItem.chars	0
+XmbTextItem.delta	12
+XmbTextItem.font_set	16
+XmbTextItem.nchars	8
+XModifierKeymap	16
+XModifierKeymap.max_keypermod	0
+XModifierKeymap.modifiermap	8
+XMotionEvent	96
+XMotionEvent.display	24
+XMotionEvent.is_hint	84
+XMotionEvent.root	40
+XMotionEvent.same_screen	88
+XMotionEvent.send_event	16
+XMotionEvent.serial	8
+XMotionEvent.state	80
+XMotionEvent.subwindow	48
+XMotionEvent.time	56
+XMotionEvent.type	0
+XMotionEvent.window	32
+XMotionEvent.x	64
+XMotionEvent.x_root	72
+XMotionEvent.y	68
+XMotionEvent.y_root	76
+XNoExposeEvent	48
+XNoExposeEvent.display	24
+XNoExposeEvent.drawable	32
+XNoExposeEvent.major_code	40
+XNoExposeEvent.minor_code	44
+XNoExposeEvent.send_event	16
+XNoExposeEvent.serial	8
+XNoExposeEvent.type	0
+XOMCharSetList	16
+XOMCharSetList.charset_count	0
+XOMCharSetList.charset_list	8
+XOMFontInfo	24
+XOMFontInfo.font_name_list	16
+XOMFontInfo.font_struct_list	8
+XOMFontInfo.num_font	0
+XOMOrientation	16
+XOMOrientation.num_orientation	0
+XOMOrientation.orientation	8
+XPixmapFormatValues	12
+XPixmapFormatValues.bits_per_pixel	4
+XPixmapFormatValues.depth	0
+XPixmapFormatValues.scanline_pad	8
+XPoint	4
+XPoint.x	0
+XPoint.y	2
+XPropertyEvent	64
+XPropertyEvent.atom	40
+XPropertyEvent.display	24
+XPropertyEvent.send_event	16
+XPropertyEvent.serial	8
+XPropertyEvent.state	56
+XPropertyEvent.time	48
+XPropertyEvent.type	0
+XPropertyEvent.window	32
+XRectangle	8
+XRectangle.height	6
+XRectangle.width	4
+XRectangle.x	0
+XRectangle.y	2
+XRenderDirectFormat	16
+XRenderDirectFormat.alpha	12
+XRenderDirectFormat.alphaMask	14
+XRenderDirectFormat.blue	8
+XRenderDirectFormat.blueMask	10
+XRenderDirectFormat.green	4
+XRenderDirectFormat.greenMask	6
+XRenderDirectFormat.red	0
+XRenderDirectFormat.redMask	2
+XRenderPictFormat	40
+XRenderPictFormat.colormap	32
+XRenderPictFormat.depth	12
+XRenderPictFormat.direct	16
+XRenderPictFormat.id	0
+XRenderPictFormat.type	8
+XReparentEvent	72
+XReparentEvent.display	24
+XReparentEvent.event	32
+XReparentEvent.override_redirect	64
+XReparentEvent.parent	48
+XReparentEvent.send_event	16
+XReparentEvent.serial	8
+XReparentEvent.type	0
+XReparentEvent.window	40
+XReparentEvent.x	56
+XReparentEvent.y	60
+XResizeRequestEvent	48
+XResizeRequestEvent.display	24
+XResizeRequestEvent.height	44
+XResizeRequestEvent.send_event	16
+XResizeRequestEvent.serial	8
+XResizeRequestEvent.type	0
+XResizeRequestEvent.width	40
+XResizeRequestEvent.window	32
+XSegment	8
+XSegment.x1	0
+XSegment.x2	4
+XSegment.y1	2
+XSegment.y2	6
+XSelectionClearEvent	56
+XSelectionClearEvent.display	24
+XSelectionClearEvent.selection	40
+XSelectionClearEvent.send_event	16
+XSelectionClearEvent.serial	8
+XSelectionClearEvent.time	48
+XSelectionClearEvent.type	0
+XSelectionClearEvent.window	32
+XSelectionEvent	72
+XSelectionEvent.display	24
+XSelectionEvent.property	56
+XSelectionEvent.requestor	32
+XSelectionEvent.selection	40
+XSelectionEvent.send_event	16
+XSelectionEvent.serial	8
+XSelectionEvent.target	48
+XSelectionEvent.time	64
+XSelectionEvent.type	0
+XSelectionRequestEvent	80
+XSelectionRequestEvent.display	24
+XSelectionRequestEvent.owner	32
+XSelectionRequestEvent.property	64
+XSelectionRequestEvent.requestor	40
+XSelectionRequestEvent.selection	48
+XSelectionRequestEvent.send_event	16
+XSelectionRequestEvent.serial	8
+XSelectionRequestEvent.target	56
+XSelectionRequestEvent.time	72
+XSelectionRequestEvent.type	0
+XSetWindowAttributes	112
+XSetWindowAttributes.background_pixel	8
+XSetWindowAttributes.background_pixmap	0
+XSetWindowAttributes.backing_pixel	56
+XSetWindowAttributes.backing_planes	48
+XSetWindowAttributes.backing_store	40
+XSetWindowAttributes.bit_gravity	32
+XSetWindowAttributes.border_pixel	24
+XSetWindowAttributes.border_pixmap	16
+XSetWindowAttributes.colormap	96
+XSetWindowAttributes.cursor	104
+XSetWindowAttributes.do_not_propagate_mask	80
+XSetWindowAttributes.event_mask	72
+XSetWindowAttributes.override_redirect	88
+XSetWindowAttributes.save_under	64
+XSetWindowAttributes.win_gravity	36
+XSizeHints	80
+XSizeHints.base_height	68
+XSizeHints.base_width	64
+XSizeHints.flags	0
+XSizeHints.height	20
+XSizeHints.height_inc	44
+XSizeHints.max_aspect.x	56
+XSizeHints.max_aspect.y	60
+XSizeHints.max_height	36
+XSizeHints.max_width	32
+XSizeHints.min_aspect.x	48
+XSizeHints.min_aspect.y	52
+XSizeHints.min_height	28
+XSizeHints.min_width	24
+XSizeHints.width	16
+XSizeHints.width_inc	40
+XSizeHints.win_gravity	72
+XSizeHints.x	8
+XSizeHints.y	12
+XStandardColormap	80
+XStandardColormap.base_pixel	56
+XStandardColormap.blue_max	40
+XStandardColormap.blue_mult	48
+XStandardColormap.colormap	0
+XStandardColormap.green_max	24
+XStandardColormap.green_mult	32
+XStandardColormap.killid	72
+XStandardColormap.red_max	8
+XStandardColormap.red_mult	16
+XStandardColormap.visualid	64
+XTextItem16	24
+XTextItem16.chars	0
+XTextItem16.delta	12
+XTextItem16.font	16
+XTextItem16.nchars	8
+XTextItem	24
+XTextItem.chars	0
+XTextItem.delta	12
+XTextItem.font	16
+XTextItem.nchars	8
+XTextProperty	32
+XTextProperty.encoding	8
+XTextProperty.format	16
+XTextProperty.nitems	24
+XTextProperty.value	0
+XTimeCoord	16
+XTimeCoord.time	0
+XTimeCoord.x	8
+XTimeCoord.y	10
+XUnmapEvent	56
+XUnmapEvent.display	24
+XUnmapEvent.event	32
+XUnmapEvent.from_configure	48
+XUnmapEvent.send_event	16
+XUnmapEvent.serial	8
+XUnmapEvent.type	0
+XUnmapEvent.window	40
+XVisibilityEvent	48
+XVisibilityEvent.display	24
+XVisibilityEvent.send_event	16
+XVisibilityEvent.serial	8
+XVisibilityEvent.state	40
+XVisibilityEvent.type	0
+XVisibilityEvent.window	32
+XVisualInfo	64
+XVisualInfo.bits_per_rgb	60
+XVisualInfo.blue_mask	48
+XVisualInfo.class	24
+XVisualInfo.colormap_size	56
+XVisualInfo.depth	20
+XVisualInfo.green_mask	40
+XVisualInfo.red_mask	32
+XVisualInfo.screen	16
+XVisualInfo.visual	0
+XVisualInfo.visualid	8
+XwcTextItem	24
+XwcTextItem.chars	0
+XwcTextItem.delta	12
+XwcTextItem.font_set	16
+XwcTextItem.nchars	8
+XWindowAttributes	136
+XWindowAttributes.all_event_masks	96
+XWindowAttributes.backing_pixel	64
+XWindowAttributes.backing_planes	56
+XWindowAttributes.backing_store	52
+XWindowAttributes.bit_gravity	44
+XWindowAttributes.border_width	16
+XWindowAttributes.class	40
+XWindowAttributes.colormap	80
+XWindowAttributes.depth	20
+XWindowAttributes.do_not_propagate_mask	112
+XWindowAttributes.height	12
+XWindowAttributes.map_installed	88
+XWindowAttributes.map_state	92
+XWindowAttributes.override_redirect	120
+XWindowAttributes.root	32
+XWindowAttributes.save_under	72
+XWindowAttributes.screen	128
+XWindowAttributes.visual	24
+XWindowAttributes.width	8
+XWindowAttributes.win_gravity	48
+XWindowAttributes.x	0
+XWindowAttributes.y	4
+XWindowAttributes.your_event_mask	104
+XWindowChanges	40
+XWindowChanges.border_width	16
+XWindowChanges.height	12
+XWindowChanges.sibling	24
+XWindowChanges.stack_mode	32
+XWindowChanges.width	8
+XWindowChanges.x	0
+XWindowChanges.y	4
+XWMHints	56
+XWMHints.flags	0
+XWMHints.icon_mask	40
+XWMHints.icon_pixmap	16
+XWMHints.icon_window	24
+XWMHints.icon_x	32
+XWMHints.icon_y	36
+XWMHints.initial_state	12
+XWMHints.input	8
+XWMHints.window_group	48
--- a/make/data/x11wrappergen/sizes.32	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1017 +0,0 @@
-long	4
-int	4
-short	2
-ptr	4
-Bool	4
-Atom	4
-Window	4
-XExtData.number	0
-XExtData.next	4
-XExtData.free_private	8
-XExtData.private_data	12
-XExtData	16
-XIMStringConversionCallbackStruct.position	0
-XIMStringConversionCallbackStruct.direction	4
-XIMStringConversionCallbackStruct.operation	8
-XIMStringConversionCallbackStruct.factor	10
-XIMStringConversionCallbackStruct.text	12
-XIMStringConversionCallbackStruct	16
-XkbNewKeyboardNotifyEvent.type	0
-XkbNewKeyboardNotifyEvent.serial	4
-XkbNewKeyboardNotifyEvent.send_event	8
-XkbNewKeyboardNotifyEvent.display	12
-XkbNewKeyboardNotifyEvent.time	16
-XkbNewKeyboardNotifyEvent.xkb_type	20
-XkbNewKeyboardNotifyEvent.device	24
-XkbNewKeyboardNotifyEvent.old_device	28
-XkbNewKeyboardNotifyEvent.min_key_code	32
-XkbNewKeyboardNotifyEvent.max_key_code	36
-XkbNewKeyboardNotifyEvent.old_min_key_code	40
-XkbNewKeyboardNotifyEvent.old_max_key_code	44
-XkbNewKeyboardNotifyEvent.changed	48
-XkbNewKeyboardNotifyEvent.req_major	52
-XkbNewKeyboardNotifyEvent.req_minor	53
-XkbNewKeyboardNotifyEvent	56
-XTimeCoord.time	0
-XTimeCoord.x	4
-XTimeCoord.y	6
-XTimeCoord	8
-XkbCompatMapNotifyEvent.type	0
-XkbCompatMapNotifyEvent.serial	4
-XkbCompatMapNotifyEvent.send_event	8
-XkbCompatMapNotifyEvent.display	12
-XkbCompatMapNotifyEvent.time	16
-XkbCompatMapNotifyEvent.xkb_type	20
-XkbCompatMapNotifyEvent.device	24
-XkbCompatMapNotifyEvent.changed_groups	28
-XkbCompatMapNotifyEvent.first_si	32
-XkbCompatMapNotifyEvent.num_si	36
-XkbCompatMapNotifyEvent.num_total_si	40
-XkbCompatMapNotifyEvent	44
-XIMStatusDrawCallbackStruct.type	0
-XIMStatusDrawCallbackStruct.data	4
-XIMStatusDrawCallbackStruct	8
-XKeyboardControl.key_click_percent	0
-XKeyboardControl.bell_percent	4
-XKeyboardControl.bell_pitch	8
-XKeyboardControl.bell_duration	12
-XKeyboardControl.led	16
-XKeyboardControl.led_mode	20
-XKeyboardControl.key	24
-XKeyboardControl.auto_repeat_mode	28
-XKeyboardControl	32
-XSelectionClearEvent.type	0
-XSelectionClearEvent.serial	4
-XSelectionClearEvent.send_event	8
-XSelectionClearEvent.display	12
-XSelectionClearEvent.window	16
-XSelectionClearEvent.selection	20
-XSelectionClearEvent.time	24
-XSelectionClearEvent	28
-XWindowChanges.x	0
-XWindowChanges.y	4
-XWindowChanges.width	8
-XWindowChanges.height	12
-XWindowChanges.border_width	16
-XWindowChanges.sibling	20
-XWindowChanges.stack_mode	24
-XWindowChanges	28
-XIMPreeditCaretCallbackStruct.position	0
-XIMPreeditCaretCallbackStruct.direction	4
-XIMPreeditCaretCallbackStruct.style	8
-XIMPreeditCaretCallbackStruct	12
-XOMCharSetList.charset_count	0
-XOMCharSetList.charset_list	4
-XOMCharSetList	8
-XOMFontInfo.num_font	0
-XOMFontInfo.font_struct_list	4
-XOMFontInfo.font_name_list	8
-XOMFontInfo	12
-AwtScreenData.numConfigs	0
-AwtScreenData.root	4
-AwtScreenData.whitepixel	8
-AwtScreenData.blackpixel	12
-AwtScreenData.defaultConfig	16
-AwtScreenData.configs	20
-AwtScreenData	24
-XIMHotKeyTrigger.keysym	0
-XIMHotKeyTrigger.modifier	4
-XIMHotKeyTrigger.modifier_mask	8
-XIMHotKeyTrigger	12
-XCirculateEvent.type	0
-XCirculateEvent.serial	4
-XCirculateEvent.send_event	8
-XCirculateEvent.display	12
-XCirculateEvent.event	16
-XCirculateEvent.window	20
-XCirculateEvent.place	24
-XCirculateEvent	28
-Screen.ext_data	0
-Screen.display	4
-Screen.root	8
-Screen.width	12
-Screen.height	16
-Screen.mwidth	20
-Screen.mheight	24
-Screen.ndepths	28
-Screen.depths	32
-Screen.root_depth	36
-Screen.root_visual	40
-Screen.default_gc	44
-Screen.cmap	48
-Screen.white_pixel	52
-Screen.black_pixel	56
-Screen.max_maps	60
-Screen.min_maps	64
-Screen.backing_store	68
-Screen.save_unders	72
-Screen.root_input_mask	76
-Screen	80
-XMapRequestEvent.type	0
-XMapRequestEvent.serial	4
-XMapRequestEvent.send_event	8
-XMapRequestEvent.display	12
-XMapRequestEvent.parent	16
-XMapRequestEvent.window	20
-XMapRequestEvent	24
-XIMText.length	0
-XIMText.feedback	4
-XIMText.encoding_is_wchar	8
-XIMText.string	12
-XIMText	16
-XGraphicsExposeEvent.type	0
-XGraphicsExposeEvent.serial	4
-XGraphicsExposeEvent.send_event	8
-XGraphicsExposeEvent.display	12
-XGraphicsExposeEvent.drawable	16
-XGraphicsExposeEvent.x	20
-XGraphicsExposeEvent.y	24
-XGraphicsExposeEvent.width	28
-XGraphicsExposeEvent.height	32
-XGraphicsExposeEvent.count	36
-XGraphicsExposeEvent.major_code	40
-XGraphicsExposeEvent.minor_code	44
-XGraphicsExposeEvent	48
-XEvent.type	0
-XEvent.xany	0
-XEvent.xkey	0
-XEvent.xbutton	0
-XEvent.xmotion	0
-XEvent.xcrossing	0
-XEvent.xfocus	0
-XEvent.xexpose	0
-XEvent.xgraphicsexpose	0
-XEvent.xnoexpose	0
-XEvent.xvisibility	0
-XEvent.xcreatewindow	0
-XEvent.xdestroywindow	0
-XEvent.xunmap	0
-XEvent.xmap	0
-XEvent.xmaprequest	0
-XEvent.xreparent	0
-XEvent.xconfigure	0
-XEvent.xgravity	0
-XEvent.xresizerequest	0
-XEvent.xconfigurerequest	0
-XEvent.xcirculate	0
-XEvent.xcirculaterequest	0
-XEvent.xproperty	0
-XEvent.xselectionclear	0
-XEvent.xselectionrequest	0
-XEvent.xselection	0
-XEvent.xcolormap	0
-XEvent.xclient	0
-XEvent.xmapping	0
-XEvent.xerror	0
-XEvent.xkeymap	0
-XEvent.pad	0
-XEvent	96
-XRenderDirectFormat.red	0
-XRenderDirectFormat.redMask	2
-XRenderDirectFormat.green	4
-XRenderDirectFormat.greenMask	6
-XRenderDirectFormat.blue	8
-XRenderDirectFormat.blueMask	10
-XRenderDirectFormat.alpha	12
-XRenderDirectFormat.alphaMask	14
-XRenderDirectFormat	16
-ColorData.awt_Colors	0
-ColorData.awt_numICMcolors	4
-ColorData.awt_icmLUT	8
-ColorData.awt_icmLUT2Colors	12
-ColorData.img_grays	16
-ColorData.img_clr_tbl	20
-ColorData.img_oda_red	24
-ColorData.img_oda_green	28
-ColorData.img_oda_blue	32
-ColorData.pGrayInverseLutData	36
-ColorData.screendata	40
-ColorData.representsPrimaries	44
-ColorData	48
-XFontStruct.ext_data	0
-XFontStruct.fid	4
-XFontStruct.direction	8
-XFontStruct.min_char_or_byte2	12
-XFontStruct.max_char_or_byte2	16
-XFontStruct.min_byte1	20
-XFontStruct.max_byte1	24
-XFontStruct.all_chars_exist	28
-XFontStruct.n_properties	36
-XFontStruct.properties	40
-XFontStruct.min_bounds	44
-XFontStruct.max_bounds	56
-XFontStruct.per_char	68
-XFontStruct.ascent	72
-XFontStruct.descent	76
-XFontStruct	80
-XExtCodes.extension	0
-XExtCodes.major_opcode	4
-XExtCodes.first_event	8
-XExtCodes.first_error	12
-XExtCodes	16
-XFontSetExtents.max_ink_extent	0
-XFontSetExtents.max_logical_extent	8
-XFontSetExtents	16
-XSelectionEvent.type	0
-XSelectionEvent.serial	4
-XSelectionEvent.send_event	8
-XSelectionEvent.display	12
-XSelectionEvent.requestor	16
-XSelectionEvent.selection	20
-XSelectionEvent.target	24
-XSelectionEvent.property	28
-XSelectionEvent.time	32
-XSelectionEvent	36
-XArc.x	0
-XArc.y	2
-XArc.width	4
-XArc.height	6
-XArc.angle1	8
-XArc.angle2	10
-XArc	12
-XErrorEvent.type	0
-XErrorEvent.display	4
-XErrorEvent.resourceid	8
-XErrorEvent.serial	12
-XErrorEvent.error_code	16
-XErrorEvent.request_code	17
-XErrorEvent.minor_code	18
-XErrorEvent	20
-XConfigureRequestEvent.type	0
-XConfigureRequestEvent.serial	4
-XConfigureRequestEvent.send_event	8
-XConfigureRequestEvent.display	12
-XConfigureRequestEvent.parent	16
-XConfigureRequestEvent.window	20
-XConfigureRequestEvent.x	24
-XConfigureRequestEvent.y	28
-XConfigureRequestEvent.width	32
-XConfigureRequestEvent.height	36
-XConfigureRequestEvent.border_width	40
-XConfigureRequestEvent.above	44
-XConfigureRequestEvent.detail	48
-XConfigureRequestEvent.value_mask	52
-XConfigureRequestEvent	56
-ScreenFormat.ext_data	0
-ScreenFormat.depth	4
-ScreenFormat.bits_per_pixel	8
-ScreenFormat.scanline_pad	12
-ScreenFormat	16
-XButtonEvent.type	0
-XButtonEvent.serial	4
-XButtonEvent.send_event	8
-XButtonEvent.display	12
-XButtonEvent.window	16
-XButtonEvent.root	20
-XButtonEvent.subwindow	24
-XButtonEvent.time	28
-XButtonEvent.x	32
-XButtonEvent.y	36
-XButtonEvent.x_root	40
-XButtonEvent.y_root	44
-XButtonEvent.state	48
-XButtonEvent.button	52
-XButtonEvent.same_screen	56
-XButtonEvent	60
-XFontProp.name	0
-XFontProp.card32	4
-XFontProp	8
-XIMValuesList.count_values	0
-XIMValuesList.supported_values	4
-XIMValuesList	8
-XKeymapEvent.type	0
-XKeymapEvent.serial	4
-XKeymapEvent.send_event	8
-XKeymapEvent.display	12
-XKeymapEvent.window	16
-XKeymapEvent.key_vector	20
-XKeymapEvent	52
-XTextItem16.chars	0
-XTextItem16.nchars	4
-XTextItem16.delta	8
-XTextItem16.font	12
-XTextItem16	16
-XIMPreeditDrawCallbackStruct.caret	0
-XIMPreeditDrawCallbackStruct.chg_first	4
-XIMPreeditDrawCallbackStruct.chg_length	8
-XIMPreeditDrawCallbackStruct.text	12
-XIMPreeditDrawCallbackStruct	16
-XVisualInfo.visual	0
-XVisualInfo.visualid	4
-XVisualInfo.screen	8
-XVisualInfo.depth	12
-XVisualInfo.class	16
-XVisualInfo.red_mask	20
-XVisualInfo.green_mask	24
-XVisualInfo.blue_mask	28
-XVisualInfo.colormap_size	32
-XVisualInfo.bits_per_rgb	36
-XVisualInfo	40
-XkbControlsNotifyEvent.type	0
-XkbControlsNotifyEvent.serial	4
-XkbControlsNotifyEvent.send_event	8
-XkbControlsNotifyEvent.display	12
-XkbControlsNotifyEvent.time	16
-XkbControlsNotifyEvent.xkb_type	20
-XkbControlsNotifyEvent.device	24
-XkbControlsNotifyEvent.changed_ctrls	28
-XkbControlsNotifyEvent.enabled_ctrls	32
-XkbControlsNotifyEvent.enabled_ctrl_changes	36
-XkbControlsNotifyEvent.num_groups	40
-XkbControlsNotifyEvent.keycode	44
-XkbControlsNotifyEvent.event_type	45
-XkbControlsNotifyEvent.req_major	46
-XkbControlsNotifyEvent.req_minor	47
-XkbControlsNotifyEvent	48
-PropMwmHints.flags	0
-PropMwmHints.functions	4
-PropMwmHints.decorations	8
-PropMwmHints.inputMode	12
-PropMwmHints.status	16
-PropMwmHints	20
-XClientMessageEvent.type	0
-XClientMessageEvent.serial	4
-XClientMessageEvent.send_event	8
-XClientMessageEvent.display	12
-XClientMessageEvent.window	16
-XClientMessageEvent.message_type	20
-XClientMessageEvent.format	24
-XClientMessageEvent.data	28
-XClientMessageEvent	48
-XAnyEvent.type	0
-XAnyEvent.serial	4
-XAnyEvent.send_event	8
-XAnyEvent.display	12
-XAnyEvent.window	16
-XAnyEvent	20
-XkbIndicatorNotifyEvent.type	0
-XkbIndicatorNotifyEvent.serial	4
-XkbIndicatorNotifyEvent.send_event	8
-XkbIndicatorNotifyEvent.display	12
-XkbIndicatorNotifyEvent.time	16
-XkbIndicatorNotifyEvent.xkb_type	20
-XkbIndicatorNotifyEvent.device	24
-XkbIndicatorNotifyEvent.changed	28
-XkbIndicatorNotifyEvent.state	32
-XkbIndicatorNotifyEvent	36
-XIMPreeditStateNotifyCallbackStruct.state	0
-XIMPreeditStateNotifyCallbackStruct	4
-XkbAnyEvent.type	0
-XkbAnyEvent.serial	4
-XkbAnyEvent.send_event	8
-XkbAnyEvent.display	12
-XkbAnyEvent.time	16
-XkbAnyEvent.xkb_type	20
-XkbAnyEvent.device	24
-XkbAnyEvent	28
-XMotionEvent.type	0
-XMotionEvent.serial	4
-XMotionEvent.send_event	8
-XMotionEvent.display	12
-XMotionEvent.window	16
-XMotionEvent.root	20
-XMotionEvent.subwindow	24
-XMotionEvent.time	28
-XMotionEvent.x	32
-XMotionEvent.y	36
-XMotionEvent.x_root	40
-XMotionEvent.y_root	44
-XMotionEvent.state	48
-XMotionEvent.is_hint	52
-XMotionEvent.same_screen	56
-XMotionEvent	60
-XIMHotKeyTriggers.num_hot_key	0
-XIMHotKeyTriggers.key	4
-XIMHotKeyTriggers	8
-XIMStyles.count_styles	0
-XIMStyles.supported_styles	4
-XIMStyles	8
-XkbExtensionDeviceNotifyEvent.type	0
-XkbExtensionDeviceNotifyEvent.serial	4
-XkbExtensionDeviceNotifyEvent.send_event	8
-XkbExtensionDeviceNotifyEvent.display	12
-XkbExtensionDeviceNotifyEvent.time	16
-XkbExtensionDeviceNotifyEvent.xkb_type	20
-XkbExtensionDeviceNotifyEvent.device	24
-XkbExtensionDeviceNotifyEvent.reason	28
-XkbExtensionDeviceNotifyEvent.supported	32
-XkbExtensionDeviceNotifyEvent.unsupported	36
-XkbExtensionDeviceNotifyEvent.first_btn	40
-XkbExtensionDeviceNotifyEvent.num_btns	44
-XkbExtensionDeviceNotifyEvent.leds_defined	48
-XkbExtensionDeviceNotifyEvent.led_state	52
-XkbExtensionDeviceNotifyEvent.led_class	56
-XkbExtensionDeviceNotifyEvent.led_id	60
-XkbExtensionDeviceNotifyEvent	64
-XwcTextItem.chars	0
-XwcTextItem.nchars	4
-XwcTextItem.delta	8
-XwcTextItem.font_set	12
-XwcTextItem	16
-XClassHint.res_name	0
-XClassHint.res_class	4
-XClassHint	8
-XChar2b.byte1	0
-XChar2b.byte2	1
-XChar2b	2
-XSetWindowAttributes.background_pixmap	0
-XSetWindowAttributes.background_pixel	4
-XSetWindowAttributes.border_pixmap	8
-XSetWindowAttributes.border_pixel	12
-XSetWindowAttributes.bit_gravity	16
-XSetWindowAttributes.win_gravity	20
-XSetWindowAttributes.backing_store	24
-XSetWindowAttributes.backing_planes	28
-XSetWindowAttributes.backing_pixel	32
-XSetWindowAttributes.save_under	36
-XSetWindowAttributes.event_mask	40
-XSetWindowAttributes.do_not_propagate_mask	44
-XSetWindowAttributes.override_redirect	48
-XSetWindowAttributes.colormap	52
-XSetWindowAttributes.cursor	56
-XSetWindowAttributes	60
-XRenderPictFormat.id	0
-XRenderPictFormat.type	4
-XRenderPictFormat.depth	8
-XRenderPictFormat.direct	12
-XRenderPictFormat.colormap	28
-XRenderPictFormat	32
-XReparentEvent.type	0
-XReparentEvent.serial	4
-XReparentEvent.send_event	8
-XReparentEvent.display	12
-XReparentEvent.event	16
-XReparentEvent.window	20
-XReparentEvent.parent	24
-XReparentEvent.x	28
-XReparentEvent.y	32
-XReparentEvent.override_redirect	36
-XReparentEvent	40
-XCirculateRequestEvent.type	0
-XCirculateRequestEvent.serial	4
-XCirculateRequestEvent.send_event	8
-XCirculateRequestEvent.display	12
-XCirculateRequestEvent.parent	16
-XCirculateRequestEvent.window	20
-XCirculateRequestEvent.place	24
-XCirculateRequestEvent	28
-XImage.width	0
-XImage.height	4
-XImage.xoffset	8
-XImage.format	12
-XImage.data	16
-XImage.byte_order	20
-XImage.bitmap_unit	24
-XImage.bitmap_bit_order	28
-XImage.bitmap_pad	32
-XImage.depth	36
-XImage.bytes_per_line	40
-XImage.bits_per_pixel	44
-XImage.red_mask	48
-XImage.green_mask	52
-XImage.blue_mask	56
-XImage.obdata	60
-XImage.f.create_image	64
-XImage.f.destroy_image	68
-XImage.f.get_pixel	72
-XImage.f.put_pixel	76
-XImage.f.sub_image	80
-XImage.f.add_pixel	84
-XImage	88
-XKeyEvent.type	0
-XKeyEvent.serial	4
-XKeyEvent.send_event	8
-XKeyEvent.display	12
-XKeyEvent.window	16
-XKeyEvent.root	20
-XKeyEvent.subwindow	24
-XKeyEvent.time	28
-XKeyEvent.x	32
-XKeyEvent.y	36
-XKeyEvent.x_root	40
-XKeyEvent.y_root	44
-XKeyEvent.state	48
-XKeyEvent.keycode	52
-XKeyEvent.same_screen	56
-XKeyEvent	60
-XkbActionMessageEvent.type	0
-XkbActionMessageEvent.serial	4
-XkbActionMessageEvent.send_event	8
-XkbActionMessageEvent.display	12
-XkbActionMessageEvent.time	16
-XkbActionMessageEvent.xkb_type	20
-XkbActionMessageEvent.device	24
-XkbActionMessageEvent.keycode	28
-XkbActionMessageEvent.press	32
-XkbActionMessageEvent.key_event_follows	36
-XkbActionMessageEvent.group	40
-XkbActionMessageEvent.mods	44
-XkbActionMessageEvent.message	48
-XkbActionMessageEvent	56
-XdbeSwapInfo.swap_window	0
-XdbeSwapInfo.swap_action	4
-XdbeSwapInfo	8
-XTextItem.chars	0
-XTextItem.nchars	4
-XTextItem.delta	8
-XTextItem.font	12
-XTextItem	16
-XModifierKeymap.max_keypermod	0
-XModifierKeymap.modifiermap	4
-XModifierKeymap	8
-XCharStruct.lbearing	0
-XCharStruct.rbearing	2
-XCharStruct.width	4
-XCharStruct.ascent	6
-XCharStruct.descent	8
-XCharStruct.attributes	10
-XCharStruct	12
-XGravityEvent.type	0
-XGravityEvent.serial	4
-XGravityEvent.send_event	8
-XGravityEvent.display	12
-XGravityEvent.event	16
-XGravityEvent.window	20
-XGravityEvent.x	24
-XGravityEvent.y	28
-XGravityEvent	32
-Visual.ext_data	0
-Visual.visualid	4
-Visual.class	8
-Visual.red_mask	12
-Visual.green_mask	16
-Visual.blue_mask	20
-Visual.bits_per_rgb	24
-Visual.map_entries	28
-Visual	32
-XOMOrientation.num_orientation	0
-XOMOrientation.orientation	4
-XOMOrientation	8
-XkbAccessXNotifyEvent.type	0
-XkbAccessXNotifyEvent.serial	4
-XkbAccessXNotifyEvent.send_event	8
-XkbAccessXNotifyEvent.display	12
-XkbAccessXNotifyEvent.time	16
-XkbAccessXNotifyEvent.xkb_type	20
-XkbAccessXNotifyEvent.device	24
-XkbAccessXNotifyEvent.detail	28
-XkbAccessXNotifyEvent.keycode	32
-XkbAccessXNotifyEvent.sk_delay	36
-XkbAccessXNotifyEvent.debounce_delay	40
-XkbAccessXNotifyEvent	44
-XWindowAttributes.x	0
-XWindowAttributes.y	4
-XWindowAttributes.width	8
-XWindowAttributes.height	12
-XWindowAttributes.border_width	16
-XWindowAttributes.depth	20
-XWindowAttributes.visual	24
-XWindowAttributes.root	28
-XWindowAttributes.class	32
-XWindowAttributes.bit_gravity	36
-XWindowAttributes.win_gravity	40
-XWindowAttributes.backing_store	44
-XWindowAttributes.backing_planes	48
-XWindowAttributes.backing_pixel	52
-XWindowAttributes.save_under	56
-XWindowAttributes.colormap	60
-XWindowAttributes.map_installed	64
-XWindowAttributes.map_state	68
-XWindowAttributes.all_event_masks	72
-XWindowAttributes.your_event_mask	76
-XWindowAttributes.do_not_propagate_mask	80
-XWindowAttributes.override_redirect	84
-XWindowAttributes.screen	88
-XWindowAttributes	92
-XmbTextItem.chars	0
-XmbTextItem.nchars	4
-XmbTextItem.delta	8
-XmbTextItem.font_set	12
-XmbTextItem	16
-XMappingEvent.type	0
-XMappingEvent.serial	4
-XMappingEvent.send_event	8
-XMappingEvent.display	12
-XMappingEvent.window	16
-XMappingEvent.request	20
-XMappingEvent.first_keycode	24
-XMappingEvent.count	28
-XMappingEvent	32
-XSizeHints.flags	0
-XSizeHints.x	4
-XSizeHints.y	8
-XSizeHints.width	12
-XSizeHints.height	16
-XSizeHints.min_width	20
-XSizeHints.min_height	24
-XSizeHints.max_width	28
-XSizeHints.max_height	32
-XSizeHints.width_inc	36
-XSizeHints.height_inc	40
-XSizeHints.min_aspect.x	44
-XSizeHints.min_aspect.y	48
-XSizeHints.max_aspect.x	52
-XSizeHints.max_aspect.y	56
-XSizeHints.base_width	60
-XSizeHints.base_height	64
-XSizeHints.win_gravity	68
-XSizeHints	72
-XUnmapEvent.type	0
-XUnmapEvent.serial	4
-XUnmapEvent.send_event	8
-XUnmapEvent.display	12
-XUnmapEvent.event	16
-XUnmapEvent.window	20
-XUnmapEvent.from_configure	24
-XUnmapEvent	28
-awtImageData.Depth	0
-awtImageData.wsImageFormat	4
-awtImageData.clrdata	16
-awtImageData.convert	48
-awtImageData	304
-XkbStateNotifyEvent.type	0
-XkbStateNotifyEvent.serial	4
-XkbStateNotifyEvent.send_event	8
-XkbStateNotifyEvent.display	12
-XkbStateNotifyEvent.time	16
-XkbStateNotifyEvent.xkb_type	20
-XkbStateNotifyEvent.device	24
-XkbStateNotifyEvent.changed	28
-XkbStateNotifyEvent.group	32
-XkbStateNotifyEvent.base_group	36
-XkbStateNotifyEvent.latched_group	40
-XkbStateNotifyEvent.locked_group	44
-XkbStateNotifyEvent.mods	48
-XkbStateNotifyEvent.base_mods	52
-XkbStateNotifyEvent.latched_mods	56
-XkbStateNotifyEvent.locked_mods	60
-XkbStateNotifyEvent.compat_state	64
-XkbStateNotifyEvent.grab_mods	68
-XkbStateNotifyEvent.compat_grab_mods	69
-XkbStateNotifyEvent.lookup_mods	70
-XkbStateNotifyEvent.compat_lookup_mods	71
-XkbStateNotifyEvent.ptr_buttons	72
-XkbStateNotifyEvent.keycode	76
-XkbStateNotifyEvent.event_type	77
-XkbStateNotifyEvent.req_major	78
-XkbStateNotifyEvent.req_minor	79
-XkbStateNotifyEvent	80
-XExposeEvent.type	0
-XExposeEvent.serial	4
-XExposeEvent.send_event	8
-XExposeEvent.display	12
-XExposeEvent.window	16
-XExposeEvent.x	20
-XExposeEvent.y	24
-XExposeEvent.width	28
-XExposeEvent.height	32
-XExposeEvent.count	36
-XExposeEvent	40
-XkbMapNotifyEvent.type	0
-XkbMapNotifyEvent.serial	4
-XkbMapNotifyEvent.send_event	8
-XkbMapNotifyEvent.display	12
-XkbMapNotifyEvent.time	16
-XkbMapNotifyEvent.xkb_type	20
-XkbMapNotifyEvent.device	24
-XkbMapNotifyEvent.changed	28
-XkbMapNotifyEvent.flags	32
-XkbMapNotifyEvent.first_type	36
-XkbMapNotifyEvent.num_types	40
-XkbMapNotifyEvent.min_key_code	44
-XkbMapNotifyEvent.max_key_code	45
-XkbMapNotifyEvent.first_key_sym	46
-XkbMapNotifyEvent.first_key_act	47
-XkbMapNotifyEvent.first_key_behavior	48
-XkbMapNotifyEvent.first_key_explicit	49
-XkbMapNotifyEvent.first_modmap_key	50
-XkbMapNotifyEvent.first_vmodmap_key	51
-XkbMapNotifyEvent.num_key_syms	52
-XkbMapNotifyEvent.num_key_acts	56
-XkbMapNotifyEvent.num_key_behaviors	60
-XkbMapNotifyEvent.num_key_explicit	64
-XkbMapNotifyEvent.num_modmap_keys	68
-XkbMapNotifyEvent.num_vmodmap_keys	72
-XkbMapNotifyEvent.vmods	76
-XkbMapNotifyEvent	80
-XGCValues.function	0
-XGCValues.plane_mask	4
-XGCValues.foreground	8
-XGCValues.background	12
-XGCValues.line_width	16
-XGCValues.line_style	20
-XGCValues.cap_style	24
-XGCValues.join_style	28
-XGCValues.fill_style	32
-XGCValues.fill_rule	36
-XGCValues.arc_mode	40
-XGCValues.tile	44
-XGCValues.stipple	48
-XGCValues.ts_x_origin	52
-XGCValues.ts_y_origin	56
-XGCValues.font	60
-XGCValues.subwindow_mode	64
-XGCValues.graphics_exposures	68
-XGCValues.clip_x_origin	72
-XGCValues.clip_y_origin	76
-XGCValues.clip_mask	80
-XGCValues.dash_offset	84
-XGCValues.dashes	88
-XGCValues	92
-XFocusChangeEvent.type	0
-XFocusChangeEvent.serial	4
-XFocusChangeEvent.send_event	8
-XFocusChangeEvent.display	12
-XFocusChangeEvent.window	16
-XFocusChangeEvent.mode	20
-XFocusChangeEvent.detail	24
-XFocusChangeEvent	28
-XPixmapFormatValues.depth	0
-XPixmapFormatValues.bits_per_pixel	4
-XPixmapFormatValues.scanline_pad	8
-XPixmapFormatValues	12
-XMapEvent.type	0
-XMapEvent.serial	4
-XMapEvent.send_event	8
-XMapEvent.display	12
-XMapEvent.event	16
-XMapEvent.window	20
-XMapEvent.override_redirect	24
-XMapEvent	28
-XkbBellNotifyEvent.type	0
-XkbBellNotifyEvent.serial	4
-XkbBellNotifyEvent.send_event	8
-XkbBellNotifyEvent.display	12
-XkbBellNotifyEvent.time	16
-XkbBellNotifyEvent.xkb_type	20
-XkbBellNotifyEvent.device	24
-XkbBellNotifyEvent.percent	28
-XkbBellNotifyEvent.pitch	32
-XkbBellNotifyEvent.duration	36
-XkbBellNotifyEvent.bell_class	40
-XkbBellNotifyEvent.bell_id	44
-XkbBellNotifyEvent.name	48
-XkbBellNotifyEvent.window	52
-XkbBellNotifyEvent.event_only	56
-XkbBellNotifyEvent	60
-XIMStringConversionText.length	0
-XIMStringConversionText.feedback	4
-XIMStringConversionText.encoding_is_wchar	8
-XIMStringConversionText.string	12
-XIMStringConversionText	16
-XKeyboardState.key_click_percent	0
-XKeyboardState.bell_percent	4
-XKeyboardState.bell_pitch	8
-XKeyboardState.bell_duration	12
-XKeyboardState.led_mask	16
-XKeyboardState.global_auto_repeat	20
-XKeyboardState.auto_repeats	24
-XKeyboardState	56
-XkbEvent.type	0
-XkbEvent.any	0
-XkbEvent.new_kbd	0
-XkbEvent.map	0
-XkbEvent.state	0
-XkbEvent.ctrls	0
-XkbEvent.indicators	0
-XkbEvent.names	0
-XkbEvent.compat	0
-XkbEvent.bell	0
-XkbEvent.message	0
-XkbEvent.accessx	0
-XkbEvent.device	0
-XkbEvent.core	0
-XkbEvent	96
-XPoint.x	0
-XPoint.y	2
-XPoint	4
-XSegment.x1	0
-XSegment.y1	2
-XSegment.x2	4
-XSegment.y2	6
-XSegment	8
-XIconSize.min_width	0
-XIconSize.min_height	4
-XIconSize.max_width	8
-XIconSize.max_height	12
-XIconSize.width_inc	16
-XIconSize.height_inc	20
-XIconSize	24
-XIMCallback.client_data	0
-XIMCallback.callback	4
-XIMCallback	8
-XConfigureEvent.type	0
-XConfigureEvent.serial	4
-XConfigureEvent.send_event	8
-XConfigureEvent.display	12
-XConfigureEvent.event	16
-XConfigureEvent.window	20
-XConfigureEvent.x	24
-XConfigureEvent.y	28
-XConfigureEvent.width	32
-XConfigureEvent.height	36
-XConfigureEvent.border_width	40
-XConfigureEvent.above	44
-XConfigureEvent.override_redirect	48
-XConfigureEvent	52
-XRectangle.x	0
-XRectangle.y	2
-XRectangle.width	4
-XRectangle.height	6
-XRectangle	8
-XkbNamesNotifyEvent.type	0
-XkbNamesNotifyEvent.serial	4
-XkbNamesNotifyEvent.send_event	8
-XkbNamesNotifyEvent.display	12
-XkbNamesNotifyEvent.time	16
-XkbNamesNotifyEvent.xkb_type	20
-XkbNamesNotifyEvent.device	24
-XkbNamesNotifyEvent.changed	28
-XkbNamesNotifyEvent.first_type	32
-XkbNamesNotifyEvent.num_types	36
-XkbNamesNotifyEvent.first_lvl	40
-XkbNamesNotifyEvent.num_lvls	44
-XkbNamesNotifyEvent.num_aliases	48
-XkbNamesNotifyEvent.num_radio_groups	52
-XkbNamesNotifyEvent.changed_vmods	56
-XkbNamesNotifyEvent.changed_groups	60
-XkbNamesNotifyEvent.changed_indicators	64
-XkbNamesNotifyEvent.first_key	68
-XkbNamesNotifyEvent.num_keys	72
-XkbNamesNotifyEvent	76
-XCreateWindowEvent.type	0
-XCreateWindowEvent.serial	4
-XCreateWindowEvent.send_event	8
-XCreateWindowEvent.display	12
-XCreateWindowEvent.parent	16
-XCreateWindowEvent.window	20
-XCreateWindowEvent.x	24
-XCreateWindowEvent.y	28
-XCreateWindowEvent.width	32
-XCreateWindowEvent.height	36
-XCreateWindowEvent.border_width	40
-XCreateWindowEvent.override_redirect	44
-XCreateWindowEvent	48
-XVisibilityEvent.type	0
-XVisibilityEvent.serial	4
-XVisibilityEvent.send_event	8
-XVisibilityEvent.display	12
-XVisibilityEvent.window	16
-XVisibilityEvent.state	20
-XVisibilityEvent	24
-XWMHints.flags	0
-XWMHints.initial_state	8
-XWMHints.icon_pixmap	12
-XWMHints.icon_window	16
-XWMHints.icon_x	20
-XWMHints.icon_y	24
-XWMHints.icon_mask	28
-XWMHints.input	4
-XWMHints.window_group	32
-XWMHints	36
-XCrossingEvent.type	0
-XCrossingEvent.serial	4
-XCrossingEvent.send_event	8
-XCrossingEvent.display	12
-XCrossingEvent.window	16
-XCrossingEvent.root	20
-XCrossingEvent.subwindow	24
-XCrossingEvent.time	28
-XCrossingEvent.x	32
-XCrossingEvent.y	36
-XCrossingEvent.x_root	40
-XCrossingEvent.y_root	44
-XCrossingEvent.mode	48
-XCrossingEvent.detail	52
-XCrossingEvent.same_screen	56
-XCrossingEvent.focus	60
-XCrossingEvent.state	64
-XCrossingEvent	68
-XSelectionRequestEvent.type	0
-XSelectionRequestEvent.serial	4
-XSelectionRequestEvent.send_event	8
-XSelectionRequestEvent.display	12
-XSelectionRequestEvent.owner	16
-XSelectionRequestEvent.requestor	20
-XSelectionRequestEvent.selection	24
-XSelectionRequestEvent.target	28
-XSelectionRequestEvent.property	32
-XSelectionRequestEvent.time	36
-XSelectionRequestEvent	40
-XNoExposeEvent.type	0
-XNoExposeEvent.serial	4
-XNoExposeEvent.send_event	8
-XNoExposeEvent.display	12
-XNoExposeEvent.drawable	16
-XNoExposeEvent.major_code	20
-XNoExposeEvent.minor_code	24
-XNoExposeEvent	28
-XHostAddress.family	0
-XHostAddress.length	4
-XHostAddress.address	8
-XHostAddress	12
-XColormapEvent.type	0
-XColormapEvent.serial	4
-XColormapEvent.send_event	8
-XColormapEvent.display	12
-XColormapEvent.window	16
-XColormapEvent.colormap	20
-XColormapEvent.new	24
-XColormapEvent.state	28
-XColormapEvent	32
-ColorEntry.r	0
-ColorEntry.g	1
-ColorEntry.b	2
-ColorEntry.flags	3
-ColorEntry	4
-XResizeRequestEvent.type	0
-XResizeRequestEvent.serial	4
-XResizeRequestEvent.send_event	8
-XResizeRequestEvent.display	12
-XResizeRequestEvent.window	16
-XResizeRequestEvent.width	20
-XResizeRequestEvent.height	24
-XResizeRequestEvent	28
-Depth.depth	0
-Depth.nvisuals	4
-Depth.visuals	8
-Depth	12
-XPropertyEvent.type	0
-XPropertyEvent.serial	4
-XPropertyEvent.send_event	8
-XPropertyEvent.display	12
-XPropertyEvent.window	16
-XPropertyEvent.atom	20
-XPropertyEvent.time	24
-XPropertyEvent.state	28
-XPropertyEvent	32
-XDestroyWindowEvent.type	0
-XDestroyWindowEvent.serial	4
-XDestroyWindowEvent.send_event	8
-XDestroyWindowEvent.display	12
-XDestroyWindowEvent.event	16
-XDestroyWindowEvent.window	20
-XDestroyWindowEvent	24
-XStandardColormap.colormap	0
-XStandardColormap.red_max	4
-XStandardColormap.red_mult	8
-XStandardColormap.green_max	12
-XStandardColormap.green_mult	16
-XStandardColormap.blue_max	20
-XStandardColormap.blue_mult	24
-XStandardColormap.base_pixel	28
-XStandardColormap.visualid	32
-XStandardColormap.killid	36
-XStandardColormap	40
-XComposeStatus.compose_ptr	0
-XComposeStatus.chars_matched	4
-XComposeStatus	8
-AwtGraphicsConfigData.awt_depth	0
-AwtGraphicsConfigData.awt_cmap	4
-AwtGraphicsConfigData.awt_visInfo	8
-AwtGraphicsConfigData.awt_num_colors	48
-AwtGraphicsConfigData.awtImage	52
-AwtGraphicsConfigData.AwtColorMatch	56
-AwtGraphicsConfigData.monoImage	60
-AwtGraphicsConfigData.monoPixmap	64
-AwtGraphicsConfigData.monoPixmapWidth	68
-AwtGraphicsConfigData.monoPixmapHeight	72
-AwtGraphicsConfigData.monoPixmapGC	76
-AwtGraphicsConfigData.pixelStride	80
-AwtGraphicsConfigData.color_data	84
-AwtGraphicsConfigData.glxInfo	88
-AwtGraphicsConfigData.isTranslucencySupported	92
-AwtGraphicsConfigData.renderPictFormat	96
-AwtGraphicsConfigData	128
-XColor.pixel	0
-XColor.red	4
-XColor.green	6
-XColor.blue	8
-XColor.flags	10
-XColor.pad	11
-XColor	12
-XTextProperty.value	0
-XTextProperty.encoding	4
-XTextProperty.format	8
-XTextProperty.nitems	12
-XTextProperty	16
--- a/make/data/x11wrappergen/sizes.64	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1017 +0,0 @@
-long	8
-int	4
-short	2
-ptr	8
-Bool	4
-Atom	8
-Window	8
-XExtData.number	0
-XExtData.next	8
-XExtData.free_private	16
-XExtData.private_data	24
-XExtData	32
-XIMStringConversionCallbackStruct.position	0
-XIMStringConversionCallbackStruct.direction	4
-XIMStringConversionCallbackStruct.operation	8
-XIMStringConversionCallbackStruct.factor	10
-XIMStringConversionCallbackStruct.text	16
-XIMStringConversionCallbackStruct	24
-XkbNewKeyboardNotifyEvent.type	0
-XkbNewKeyboardNotifyEvent.serial	8
-XkbNewKeyboardNotifyEvent.send_event	16
-XkbNewKeyboardNotifyEvent.display	24
-XkbNewKeyboardNotifyEvent.time	32
-XkbNewKeyboardNotifyEvent.xkb_type	40
-XkbNewKeyboardNotifyEvent.device	44
-XkbNewKeyboardNotifyEvent.old_device	48
-XkbNewKeyboardNotifyEvent.min_key_code	52
-XkbNewKeyboardNotifyEvent.max_key_code	56
-XkbNewKeyboardNotifyEvent.old_min_key_code	60
-XkbNewKeyboardNotifyEvent.old_max_key_code	64
-XkbNewKeyboardNotifyEvent.changed	68
-XkbNewKeyboardNotifyEvent.req_major	72
-XkbNewKeyboardNotifyEvent.req_minor	73
-XkbNewKeyboardNotifyEvent	80
-XTimeCoord.time	0
-XTimeCoord.x	8
-XTimeCoord.y	10
-XTimeCoord	16
-XkbCompatMapNotifyEvent.type	0
-XkbCompatMapNotifyEvent.serial	8
-XkbCompatMapNotifyEvent.send_event	16
-XkbCompatMapNotifyEvent.display	24
-XkbCompatMapNotifyEvent.time	32
-XkbCompatMapNotifyEvent.xkb_type	40
-XkbCompatMapNotifyEvent.device	44
-XkbCompatMapNotifyEvent.changed_groups	48
-XkbCompatMapNotifyEvent.first_si	52
-XkbCompatMapNotifyEvent.num_si	56
-XkbCompatMapNotifyEvent.num_total_si	60
-XkbCompatMapNotifyEvent	64
-XIMStatusDrawCallbackStruct.type	0
-XIMStatusDrawCallbackStruct.data	8
-XIMStatusDrawCallbackStruct	16
-XKeyboardControl.key_click_percent	0
-XKeyboardControl.bell_percent	4
-XKeyboardControl.bell_pitch	8
-XKeyboardControl.bell_duration	12
-XKeyboardControl.led	16
-XKeyboardControl.led_mode	20
-XKeyboardControl.key	24
-XKeyboardControl.auto_repeat_mode	28
-XKeyboardControl	32
-XSelectionClearEvent.type	0
-XSelectionClearEvent.serial	8
-XSelectionClearEvent.send_event	16
-XSelectionClearEvent.display	24
-XSelectionClearEvent.window	32
-XSelectionClearEvent.selection	40
-XSelectionClearEvent.time	48
-XSelectionClearEvent	56
-XWindowChanges.x	0
-XWindowChanges.y	4
-XWindowChanges.width	8
-XWindowChanges.height	12
-XWindowChanges.border_width	16
-XWindowChanges.sibling	24
-XWindowChanges.stack_mode	32
-XWindowChanges	40
-XIMPreeditCaretCallbackStruct.position	0
-XIMPreeditCaretCallbackStruct.direction	4
-XIMPreeditCaretCallbackStruct.style	8
-XIMPreeditCaretCallbackStruct	12
-XOMCharSetList.charset_count	0
-XOMCharSetList.charset_list	8
-XOMCharSetList	16
-XOMFontInfo.num_font	0
-XOMFontInfo.font_struct_list	8
-XOMFontInfo.font_name_list	16
-XOMFontInfo	24
-AwtScreenData.numConfigs	0
-AwtScreenData.root	8
-AwtScreenData.whitepixel	16
-AwtScreenData.blackpixel	24
-AwtScreenData.defaultConfig	32
-AwtScreenData.configs	40
-AwtScreenData	48
-XIMHotKeyTrigger.keysym	0
-XIMHotKeyTrigger.modifier	8
-XIMHotKeyTrigger.modifier_mask	12
-XIMHotKeyTrigger	16
-XCirculateEvent.type	0
-XCirculateEvent.serial	8
-XCirculateEvent.send_event	16
-XCirculateEvent.display	24
-XCirculateEvent.event	32
-XCirculateEvent.window	40
-XCirculateEvent.place	48
-XCirculateEvent	56
-Screen.ext_data	0
-Screen.display	8
-Screen.root	16
-Screen.width	24
-Screen.height	28
-Screen.mwidth	32
-Screen.mheight	36
-Screen.ndepths	40
-Screen.depths	48
-Screen.root_depth	56
-Screen.root_visual	64
-Screen.default_gc	72
-Screen.cmap	80
-Screen.white_pixel	88
-Screen.black_pixel	96
-Screen.max_maps	104
-Screen.min_maps	108
-Screen.backing_store	112
-Screen.save_unders	116
-Screen.root_input_mask	120
-Screen	128
-XMapRequestEvent.type	0
-XMapRequestEvent.serial	8
-XMapRequestEvent.send_event	16
-XMapRequestEvent.display	24
-XMapRequestEvent.parent	32
-XMapRequestEvent.window	40
-XMapRequestEvent	48
-XIMText.length	0
-XIMText.feedback	8
-XIMText.encoding_is_wchar	16
-XIMText.string	24
-XIMText	32
-XGraphicsExposeEvent.type	0
-XGraphicsExposeEvent.serial	8
-XGraphicsExposeEvent.send_event	16
-XGraphicsExposeEvent.display	24
-XGraphicsExposeEvent.drawable	32
-XGraphicsExposeEvent.x	40
-XGraphicsExposeEvent.y	44
-XGraphicsExposeEvent.width	48
-XGraphicsExposeEvent.height	52
-XGraphicsExposeEvent.count	56
-XGraphicsExposeEvent.major_code	60
-XGraphicsExposeEvent.minor_code	64
-XGraphicsExposeEvent	72
-XEvent.type	0
-XEvent.xany	0
-XEvent.xkey	0
-XEvent.xbutton	0
-XEvent.xmotion	0
-XEvent.xcrossing	0
-XEvent.xfocus	0
-XEvent.xexpose	0
-XEvent.xgraphicsexpose	0
-XEvent.xnoexpose	0
-XEvent.xvisibility	0
-XEvent.xcreatewindow	0
-XEvent.xdestroywindow	0
-XEvent.xunmap	0
-XEvent.xmap	0
-XEvent.xmaprequest	0
-XEvent.xreparent	0
-XEvent.xconfigure	0
-XEvent.xgravity	0
-XEvent.xresizerequest	0
-XEvent.xconfigurerequest	0
-XEvent.xcirculate	0
-XEvent.xcirculaterequest	0
-XEvent.xproperty	0
-XEvent.xselectionclear	0
-XEvent.xselectionrequest	0
-XEvent.xselection	0
-XEvent.xcolormap	0
-XEvent.xclient	0
-XEvent.xmapping	0
-XEvent.xerror	0
-XEvent.xkeymap	0
-XEvent.pad	0
-XEvent	192
-XRenderDirectFormat.red	0
-XRenderDirectFormat.redMask	2
-XRenderDirectFormat.green	4
-XRenderDirectFormat.greenMask	6
-XRenderDirectFormat.blue	8
-XRenderDirectFormat.blueMask	10
-XRenderDirectFormat.alpha	12
-XRenderDirectFormat.alphaMask	14
-XRenderDirectFormat	16
-ColorData.awt_Colors	0
-ColorData.awt_numICMcolors	8
-ColorData.awt_icmLUT	16
-ColorData.awt_icmLUT2Colors	24
-ColorData.img_grays	32
-ColorData.img_clr_tbl	40
-ColorData.img_oda_red	48
-ColorData.img_oda_green	56
-ColorData.img_oda_blue	64
-ColorData.pGrayInverseLutData	72
-ColorData.screendata	80
-ColorData.representsPrimaries	84
-ColorData	88
-XFontStruct.ext_data	0
-XFontStruct.fid	8
-XFontStruct.direction	16
-XFontStruct.min_char_or_byte2	20
-XFontStruct.max_char_or_byte2	24
-XFontStruct.min_byte1	28
-XFontStruct.max_byte1	32
-XFontStruct.all_chars_exist	36
-XFontStruct.n_properties	44
-XFontStruct.properties	48
-XFontStruct.min_bounds	56
-XFontStruct.max_bounds	68
-XFontStruct.per_char	80
-XFontStruct.ascent	88
-XFontStruct.descent	92
-XFontStruct	96
-XExtCodes.extension	0
-XExtCodes.major_opcode	4
-XExtCodes.first_event	8
-XExtCodes.first_error	12
-XExtCodes	16
-XFontSetExtents.max_ink_extent	0
-XFontSetExtents.max_logical_extent	8
-XFontSetExtents	16
-XSelectionEvent.type	0
-XSelectionEvent.serial	8
-XSelectionEvent.send_event	16
-XSelectionEvent.display	24
-XSelectionEvent.requestor	32
-XSelectionEvent.selection	40
-XSelectionEvent.target	48
-XSelectionEvent.property	56
-XSelectionEvent.time	64
-XSelectionEvent	72
-XArc.x	0
-XArc.y	2
-XArc.width	4
-XArc.height	6
-XArc.angle1	8
-XArc.angle2	10
-XArc	12
-XErrorEvent.type	0
-XErrorEvent.display	8
-XErrorEvent.resourceid	16
-XErrorEvent.serial	24
-XErrorEvent.error_code	32
-XErrorEvent.request_code	33
-XErrorEvent.minor_code	34
-XErrorEvent	40
-XConfigureRequestEvent.type	0
-XConfigureRequestEvent.serial	8
-XConfigureRequestEvent.send_event	16
-XConfigureRequestEvent.display	24
-XConfigureRequestEvent.parent	32
-XConfigureRequestEvent.window	40
-XConfigureRequestEvent.x	48
-XConfigureRequestEvent.y	52
-XConfigureRequestEvent.width	56
-XConfigureRequestEvent.height	60
-XConfigureRequestEvent.border_width	64
-XConfigureRequestEvent.above	72
-XConfigureRequestEvent.detail	80
-XConfigureRequestEvent.value_mask	88
-XConfigureRequestEvent	96
-ScreenFormat.ext_data	0
-ScreenFormat.depth	8
-ScreenFormat.bits_per_pixel	12
-ScreenFormat.scanline_pad	16
-ScreenFormat	24
-XButtonEvent.type	0
-XButtonEvent.serial	8
-XButtonEvent.send_event	16
-XButtonEvent.display	24
-XButtonEvent.window	32
-XButtonEvent.root	40
-XButtonEvent.subwindow	48
-XButtonEvent.time	56
-XButtonEvent.x	64
-XButtonEvent.y	68
-XButtonEvent.x_root	72
-XButtonEvent.y_root	76
-XButtonEvent.state	80
-XButtonEvent.button	84
-XButtonEvent.same_screen	88
-XButtonEvent	96
-XFontProp.name	0
-XFontProp.card32	8
-XFontProp	16
-XIMValuesList.count_values	0
-XIMValuesList.supported_values	8
-XIMValuesList	16
-XKeymapEvent.type	0
-XKeymapEvent.serial	8
-XKeymapEvent.send_event	16
-XKeymapEvent.display	24
-XKeymapEvent.window	32
-XKeymapEvent.key_vector	40
-XKeymapEvent	72
-XTextItem16.chars	0
-XTextItem16.nchars	8
-XTextItem16.delta	12
-XTextItem16.font	16
-XTextItem16	24
-XIMPreeditDrawCallbackStruct.caret	0
-XIMPreeditDrawCallbackStruct.chg_first	4
-XIMPreeditDrawCallbackStruct.chg_length	8
-XIMPreeditDrawCallbackStruct.text	16
-XIMPreeditDrawCallbackStruct	24
-XVisualInfo.visual	0
-XVisualInfo.visualid	8
-XVisualInfo.screen	16
-XVisualInfo.depth	20
-XVisualInfo.class	24
-XVisualInfo.red_mask	32
-XVisualInfo.green_mask	40
-XVisualInfo.blue_mask	48
-XVisualInfo.colormap_size	56
-XVisualInfo.bits_per_rgb	60
-XVisualInfo	64
-XkbControlsNotifyEvent.type	0
-XkbControlsNotifyEvent.serial	8
-XkbControlsNotifyEvent.send_event	16
-XkbControlsNotifyEvent.display	24
-XkbControlsNotifyEvent.time	32
-XkbControlsNotifyEvent.xkb_type	40
-XkbControlsNotifyEvent.device	44
-XkbControlsNotifyEvent.changed_ctrls	48
-XkbControlsNotifyEvent.enabled_ctrls	52
-XkbControlsNotifyEvent.enabled_ctrl_changes	56
-XkbControlsNotifyEvent.num_groups	60
-XkbControlsNotifyEvent.keycode	64
-XkbControlsNotifyEvent.event_type	65
-XkbControlsNotifyEvent.req_major	66
-XkbControlsNotifyEvent.req_minor	67
-XkbControlsNotifyEvent	72
-PropMwmHints.flags	0
-PropMwmHints.functions	8
-PropMwmHints.decorations	16
-PropMwmHints.inputMode	24
-PropMwmHints.status	32
-PropMwmHints	40
-XClientMessageEvent.type	0
-XClientMessageEvent.serial	8
-XClientMessageEvent.send_event	16
-XClientMessageEvent.display	24
-XClientMessageEvent.window	32
-XClientMessageEvent.message_type	40
-XClientMessageEvent.format	48
-XClientMessageEvent.data	56
-XClientMessageEvent	96
-XAnyEvent.type	0
-XAnyEvent.serial	8
-XAnyEvent.send_event	16
-XAnyEvent.display	24
-XAnyEvent.window	32
-XAnyEvent	40
-XkbIndicatorNotifyEvent.type	0
-XkbIndicatorNotifyEvent.serial	8
-XkbIndicatorNotifyEvent.send_event	16
-XkbIndicatorNotifyEvent.display	24
-XkbIndicatorNotifyEvent.time	32
-XkbIndicatorNotifyEvent.xkb_type	40
-XkbIndicatorNotifyEvent.device	44
-XkbIndicatorNotifyEvent.changed	48
-XkbIndicatorNotifyEvent.state	52
-XkbIndicatorNotifyEvent	56
-XIMPreeditStateNotifyCallbackStruct.state	0
-XIMPreeditStateNotifyCallbackStruct	8
-XkbAnyEvent.type	0
-XkbAnyEvent.serial	8
-XkbAnyEvent.send_event	16
-XkbAnyEvent.display	24
-XkbAnyEvent.time	32
-XkbAnyEvent.xkb_type	40
-XkbAnyEvent.device	44
-XkbAnyEvent	48
-XMotionEvent.type	0
-XMotionEvent.serial	8
-XMotionEvent.send_event	16
-XMotionEvent.display	24
-XMotionEvent.window	32
-XMotionEvent.root	40
-XMotionEvent.subwindow	48
-XMotionEvent.time	56
-XMotionEvent.x	64
-XMotionEvent.y	68
-XMotionEvent.x_root	72
-XMotionEvent.y_root	76
-XMotionEvent.state	80
-XMotionEvent.is_hint	84
-XMotionEvent.same_screen	88
-XMotionEvent	96
-XIMHotKeyTriggers.num_hot_key	0
-XIMHotKeyTriggers.key	8
-XIMHotKeyTriggers	16
-XIMStyles.count_styles	0
-XIMStyles.supported_styles	8
-XIMStyles	16
-XkbExtensionDeviceNotifyEvent.type	0
-XkbExtensionDeviceNotifyEvent.serial	8
-XkbExtensionDeviceNotifyEvent.send_event	16
-XkbExtensionDeviceNotifyEvent.display	24
-XkbExtensionDeviceNotifyEvent.time	32
-XkbExtensionDeviceNotifyEvent.xkb_type	40
-XkbExtensionDeviceNotifyEvent.device	44
-XkbExtensionDeviceNotifyEvent.reason	48
-XkbExtensionDeviceNotifyEvent.supported	52
-XkbExtensionDeviceNotifyEvent.unsupported	56
-XkbExtensionDeviceNotifyEvent.first_btn	60
-XkbExtensionDeviceNotifyEvent.num_btns	64
-XkbExtensionDeviceNotifyEvent.leds_defined	68
-XkbExtensionDeviceNotifyEvent.led_state	72
-XkbExtensionDeviceNotifyEvent.led_class	76
-XkbExtensionDeviceNotifyEvent.led_id	80
-XkbExtensionDeviceNotifyEvent	88
-XwcTextItem.chars	0
-XwcTextItem.nchars	8
-XwcTextItem.delta	12
-XwcTextItem.font_set	16
-XwcTextItem	24
-XClassHint.res_name	0
-XClassHint.res_class	8
-XClassHint	16
-XChar2b.byte1	0
-XChar2b.byte2	1
-XChar2b	2
-XSetWindowAttributes.background_pixmap	0
-XSetWindowAttributes.background_pixel	8
-XSetWindowAttributes.border_pixmap	16
-XSetWindowAttributes.border_pixel	24
-XSetWindowAttributes.bit_gravity	32
-XSetWindowAttributes.win_gravity	36
-XSetWindowAttributes.backing_store	40
-XSetWindowAttributes.backing_planes	48
-XSetWindowAttributes.backing_pixel	56
-XSetWindowAttributes.save_under	64
-XSetWindowAttributes.event_mask	72
-XSetWindowAttributes.do_not_propagate_mask	80
-XSetWindowAttributes.override_redirect	88
-XSetWindowAttributes.colormap	96
-XSetWindowAttributes.cursor	104
-XSetWindowAttributes	112
-XRenderPictFormat.id	0
-XRenderPictFormat.type	8
-XRenderPictFormat.depth	12
-XRenderPictFormat.direct	16
-XRenderPictFormat.colormap	32
-XRenderPictFormat	40
-XReparentEvent.type	0
-XReparentEvent.serial	8
-XReparentEvent.send_event	16
-XReparentEvent.display	24
-XReparentEvent.event	32
-XReparentEvent.window	40
-XReparentEvent.parent	48
-XReparentEvent.x	56
-XReparentEvent.y	60
-XReparentEvent.override_redirect	64
-XReparentEvent	72
-XCirculateRequestEvent.type	0
-XCirculateRequestEvent.serial	8
-XCirculateRequestEvent.send_event	16
-XCirculateRequestEvent.display	24
-XCirculateRequestEvent.parent	32
-XCirculateRequestEvent.window	40
-XCirculateRequestEvent.place	48
-XCirculateRequestEvent	56
-XImage.width	0
-XImage.height	4
-XImage.xoffset	8
-XImage.format	12
-XImage.data	16
-XImage.byte_order	24
-XImage.bitmap_unit	28
-XImage.bitmap_bit_order	32
-XImage.bitmap_pad	36
-XImage.depth	40
-XImage.bytes_per_line	44
-XImage.bits_per_pixel	48
-XImage.red_mask	56
-XImage.green_mask	64
-XImage.blue_mask	72
-XImage.obdata	80
-XImage.f.create_image	88
-XImage.f.destroy_image	96
-XImage.f.get_pixel	104
-XImage.f.put_pixel	112
-XImage.f.sub_image	120
-XImage.f.add_pixel	128
-XImage	136
-XKeyEvent.type	0
-XKeyEvent.serial	8
-XKeyEvent.send_event	16
-XKeyEvent.display	24
-XKeyEvent.window	32
-XKeyEvent.root	40
-XKeyEvent.subwindow	48
-XKeyEvent.time	56
-XKeyEvent.x	64
-XKeyEvent.y	68
-XKeyEvent.x_root	72
-XKeyEvent.y_root	76
-XKeyEvent.state	80
-XKeyEvent.keycode	84
-XKeyEvent.same_screen	88
-XKeyEvent	96
-XkbActionMessageEvent.type	0
-XkbActionMessageEvent.serial	8
-XkbActionMessageEvent.send_event	16
-XkbActionMessageEvent.display	24
-XkbActionMessageEvent.time	32
-XkbActionMessageEvent.xkb_type	40
-XkbActionMessageEvent.device	44
-XkbActionMessageEvent.keycode	48
-XkbActionMessageEvent.press	52
-XkbActionMessageEvent.key_event_follows	56
-XkbActionMessageEvent.group	60
-XkbActionMessageEvent.mods	64
-XkbActionMessageEvent.message	68
-XkbActionMessageEvent	80
-XdbeSwapInfo.swap_window	0
-XdbeSwapInfo.swap_action	8
-XdbeSwapInfo	16
-XTextItem.chars	0
-XTextItem.nchars	8
-XTextItem.delta	12
-XTextItem.font	16
-XTextItem	24
-XModifierKeymap.max_keypermod	0
-XModifierKeymap.modifiermap	8
-XModifierKeymap	16
-XCharStruct.lbearing	0
-XCharStruct.rbearing	2
-XCharStruct.width	4
-XCharStruct.ascent	6
-XCharStruct.descent	8
-XCharStruct.attributes	10
-XCharStruct	12
-XGravityEvent.type	0
-XGravityEvent.serial	8
-XGravityEvent.send_event	16
-XGravityEvent.display	24
-XGravityEvent.event	32
-XGravityEvent.window	40
-XGravityEvent.x	48
-XGravityEvent.y	52
-XGravityEvent	56
-Visual.ext_data	0
-Visual.visualid	8
-Visual.class	16
-Visual.red_mask	24
-Visual.green_mask	32
-Visual.blue_mask	40
-Visual.bits_per_rgb	48
-Visual.map_entries	52
-Visual	56
-XOMOrientation.num_orientation	0
-XOMOrientation.orientation	8
-XOMOrientation	16
-XkbAccessXNotifyEvent.type	0
-XkbAccessXNotifyEvent.serial	8
-XkbAccessXNotifyEvent.send_event	16
-XkbAccessXNotifyEvent.display	24
-XkbAccessXNotifyEvent.time	32
-XkbAccessXNotifyEvent.xkb_type	40
-XkbAccessXNotifyEvent.device	44
-XkbAccessXNotifyEvent.detail	48
-XkbAccessXNotifyEvent.keycode	52
-XkbAccessXNotifyEvent.sk_delay	56
-XkbAccessXNotifyEvent.debounce_delay	60
-XkbAccessXNotifyEvent	64
-XWindowAttributes.x	0
-XWindowAttributes.y	4
-XWindowAttributes.width	8
-XWindowAttributes.height	12
-XWindowAttributes.border_width	16
-XWindowAttributes.depth	20
-XWindowAttributes.visual	24
-XWindowAttributes.root	32
-XWindowAttributes.class	40
-XWindowAttributes.bit_gravity	44
-XWindowAttributes.win_gravity	48
-XWindowAttributes.backing_store	52
-XWindowAttributes.backing_planes	56
-XWindowAttributes.backing_pixel	64
-XWindowAttributes.save_under	72
-XWindowAttributes.colormap	80
-XWindowAttributes.map_installed	88
-XWindowAttributes.map_state	92
-XWindowAttributes.all_event_masks	96
-XWindowAttributes.your_event_mask	104
-XWindowAttributes.do_not_propagate_mask	112
-XWindowAttributes.override_redirect	120
-XWindowAttributes.screen	128
-XWindowAttributes	136
-XmbTextItem.chars	0
-XmbTextItem.nchars	8
-XmbTextItem.delta	12
-XmbTextItem.font_set	16
-XmbTextItem	24
-XMappingEvent.type	0
-XMappingEvent.serial	8
-XMappingEvent.send_event	16
-XMappingEvent.display	24
-XMappingEvent.window	32
-XMappingEvent.request	40
-XMappingEvent.first_keycode	44
-XMappingEvent.count	48
-XMappingEvent	56
-XSizeHints.flags	0
-XSizeHints.x	8
-XSizeHints.y	12
-XSizeHints.width	16
-XSizeHints.height	20
-XSizeHints.min_width	24
-XSizeHints.min_height	28
-XSizeHints.max_width	32
-XSizeHints.max_height	36
-XSizeHints.width_inc	40
-XSizeHints.height_inc	44
-XSizeHints.min_aspect.x	48
-XSizeHints.min_aspect.y	52
-XSizeHints.max_aspect.x	56
-XSizeHints.max_aspect.y	60
-XSizeHints.base_width	64
-XSizeHints.base_height	68
-XSizeHints.win_gravity	72
-XSizeHints	80
-XUnmapEvent.type	0
-XUnmapEvent.serial	8
-XUnmapEvent.send_event	16
-XUnmapEvent.display	24
-XUnmapEvent.event	32
-XUnmapEvent.window	40
-XUnmapEvent.from_configure	48
-XUnmapEvent	56
-awtImageData.Depth	0
-awtImageData.wsImageFormat	4
-awtImageData.clrdata	16
-awtImageData.convert	48
-awtImageData	560
-XkbStateNotifyEvent.type	0
-XkbStateNotifyEvent.serial	8
-XkbStateNotifyEvent.send_event	16
-XkbStateNotifyEvent.display	24
-XkbStateNotifyEvent.time	32
-XkbStateNotifyEvent.xkb_type	40
-XkbStateNotifyEvent.device	44
-XkbStateNotifyEvent.changed	48
-XkbStateNotifyEvent.group	52
-XkbStateNotifyEvent.base_group	56
-XkbStateNotifyEvent.latched_group	60
-XkbStateNotifyEvent.locked_group	64
-XkbStateNotifyEvent.mods	68
-XkbStateNotifyEvent.base_mods	72
-XkbStateNotifyEvent.latched_mods	76
-XkbStateNotifyEvent.locked_mods	80
-XkbStateNotifyEvent.compat_state	84
-XkbStateNotifyEvent.grab_mods	88
-XkbStateNotifyEvent.compat_grab_mods	89
-XkbStateNotifyEvent.lookup_mods	90
-XkbStateNotifyEvent.compat_lookup_mods	91
-XkbStateNotifyEvent.ptr_buttons	92
-XkbStateNotifyEvent.keycode	96
-XkbStateNotifyEvent.event_type	97
-XkbStateNotifyEvent.req_major	98
-XkbStateNotifyEvent.req_minor	99
-XkbStateNotifyEvent	104
-XExposeEvent.type	0
-XExposeEvent.serial	8
-XExposeEvent.send_event	16
-XExposeEvent.display	24
-XExposeEvent.window	32
-XExposeEvent.x	40
-XExposeEvent.y	44
-XExposeEvent.width	48
-XExposeEvent.height	52
-XExposeEvent.count	56
-XExposeEvent	64
-XkbMapNotifyEvent.type	0
-XkbMapNotifyEvent.serial	8
-XkbMapNotifyEvent.send_event	16
-XkbMapNotifyEvent.display	24
-XkbMapNotifyEvent.time	32
-XkbMapNotifyEvent.xkb_type	40
-XkbMapNotifyEvent.device	44
-XkbMapNotifyEvent.changed	48
-XkbMapNotifyEvent.flags	52
-XkbMapNotifyEvent.first_type	56
-XkbMapNotifyEvent.num_types	60
-XkbMapNotifyEvent.min_key_code	64
-XkbMapNotifyEvent.max_key_code	65
-XkbMapNotifyEvent.first_key_sym	66
-XkbMapNotifyEvent.first_key_act	67
-XkbMapNotifyEvent.first_key_behavior	68
-XkbMapNotifyEvent.first_key_explicit	69
-XkbMapNotifyEvent.first_modmap_key	70
-XkbMapNotifyEvent.first_vmodmap_key	71
-XkbMapNotifyEvent.num_key_syms	72
-XkbMapNotifyEvent.num_key_acts	76
-XkbMapNotifyEvent.num_key_behaviors	80
-XkbMapNotifyEvent.num_key_explicit	84
-XkbMapNotifyEvent.num_modmap_keys	88
-XkbMapNotifyEvent.num_vmodmap_keys	92
-XkbMapNotifyEvent.vmods	96
-XkbMapNotifyEvent	104
-XGCValues.function	0
-XGCValues.plane_mask	8
-XGCValues.foreground	16
-XGCValues.background	24
-XGCValues.line_width	32
-XGCValues.line_style	36
-XGCValues.cap_style	40
-XGCValues.join_style	44
-XGCValues.fill_style	48
-XGCValues.fill_rule	52
-XGCValues.arc_mode	56
-XGCValues.tile	64
-XGCValues.stipple	72
-XGCValues.ts_x_origin	80
-XGCValues.ts_y_origin	84
-XGCValues.font	88
-XGCValues.subwindow_mode	96
-XGCValues.graphics_exposures	100
-XGCValues.clip_x_origin	104
-XGCValues.clip_y_origin	108
-XGCValues.clip_mask	112
-XGCValues.dash_offset	120
-XGCValues.dashes	124
-XGCValues	128
-XFocusChangeEvent.type	0
-XFocusChangeEvent.serial	8
-XFocusChangeEvent.send_event	16
-XFocusChangeEvent.display	24
-XFocusChangeEvent.window	32
-XFocusChangeEvent.mode	40
-XFocusChangeEvent.detail	44
-XFocusChangeEvent	48
-XPixmapFormatValues.depth	0
-XPixmapFormatValues.bits_per_pixel	4
-XPixmapFormatValues.scanline_pad	8
-XPixmapFormatValues	12
-XMapEvent.type	0
-XMapEvent.serial	8
-XMapEvent.send_event	16
-XMapEvent.display	24
-XMapEvent.event	32
-XMapEvent.window	40
-XMapEvent.override_redirect	48
-XMapEvent	56
-XkbBellNotifyEvent.type	0
-XkbBellNotifyEvent.serial	8
-XkbBellNotifyEvent.send_event	16
-XkbBellNotifyEvent.display	24
-XkbBellNotifyEvent.time	32
-XkbBellNotifyEvent.xkb_type	40
-XkbBellNotifyEvent.device	44
-XkbBellNotifyEvent.percent	48
-XkbBellNotifyEvent.pitch	52
-XkbBellNotifyEvent.duration	56
-XkbBellNotifyEvent.bell_class	60
-XkbBellNotifyEvent.bell_id	64
-XkbBellNotifyEvent.name	72
-XkbBellNotifyEvent.window	80
-XkbBellNotifyEvent.event_only	88
-XkbBellNotifyEvent	96
-XIMStringConversionText.length	0
-XIMStringConversionText.feedback	8
-XIMStringConversionText.encoding_is_wchar	16
-XIMStringConversionText.string	24
-XIMStringConversionText	32
-XKeyboardState.key_click_percent	0
-XKeyboardState.bell_percent	4
-XKeyboardState.bell_pitch	8
-XKeyboardState.bell_duration	12
-XKeyboardState.led_mask	16
-XKeyboardState.global_auto_repeat	24
-XKeyboardState.auto_repeats	28
-XKeyboardState	64
-XkbEvent.type	0
-XkbEvent.any	0
-XkbEvent.new_kbd	0
-XkbEvent.map	0
-XkbEvent.state	0
-XkbEvent.ctrls	0
-XkbEvent.indicators	0
-XkbEvent.names	0
-XkbEvent.compat	0
-XkbEvent.bell	0
-XkbEvent.message	0
-XkbEvent.accessx	0
-XkbEvent.device	0
-XkbEvent.core	0
-XkbEvent	192
-XPoint.x	0
-XPoint.y	2
-XPoint	4
-XSegment.x1	0
-XSegment.y1	2
-XSegment.x2	4
-XSegment.y2	6
-XSegment	8
-XIconSize.min_width	0
-XIconSize.min_height	4
-XIconSize.max_width	8
-XIconSize.max_height	12
-XIconSize.width_inc	16
-XIconSize.height_inc	20
-XIconSize	24
-XIMCallback.client_data	0
-XIMCallback.callback	8
-XIMCallback	16
-XConfigureEvent.type	0
-XConfigureEvent.serial	8
-XConfigureEvent.send_event	16
-XConfigureEvent.display	24
-XConfigureEvent.event	32
-XConfigureEvent.window	40
-XConfigureEvent.x	48
-XConfigureEvent.y	52
-XConfigureEvent.width	56
-XConfigureEvent.height	60
-XConfigureEvent.border_width	64
-XConfigureEvent.above	72
-XConfigureEvent.override_redirect	80
-XConfigureEvent	88
-XRectangle.x	0
-XRectangle.y	2
-XRectangle.width	4
-XRectangle.height	6
-XRectangle	8
-XkbNamesNotifyEvent.type	0
-XkbNamesNotifyEvent.serial	8
-XkbNamesNotifyEvent.send_event	16
-XkbNamesNotifyEvent.display	24
-XkbNamesNotifyEvent.time	32
-XkbNamesNotifyEvent.xkb_type	40
-XkbNamesNotifyEvent.device	44
-XkbNamesNotifyEvent.changed	48
-XkbNamesNotifyEvent.first_type	52
-XkbNamesNotifyEvent.num_types	56
-XkbNamesNotifyEvent.first_lvl	60
-XkbNamesNotifyEvent.num_lvls	64
-XkbNamesNotifyEvent.num_aliases	68
-XkbNamesNotifyEvent.num_radio_groups	72
-XkbNamesNotifyEvent.changed_vmods	76
-XkbNamesNotifyEvent.changed_groups	80
-XkbNamesNotifyEvent.changed_indicators	84
-XkbNamesNotifyEvent.first_key	88
-XkbNamesNotifyEvent.num_keys	92
-XkbNamesNotifyEvent	96
-XCreateWindowEvent.type	0
-XCreateWindowEvent.serial	8
-XCreateWindowEvent.send_event	16
-XCreateWindowEvent.display	24
-XCreateWindowEvent.parent	32
-XCreateWindowEvent.window	40
-XCreateWindowEvent.x	48
-XCreateWindowEvent.y	52
-XCreateWindowEvent.width	56
-XCreateWindowEvent.height	60
-XCreateWindowEvent.border_width	64
-XCreateWindowEvent.override_redirect	68
-XCreateWindowEvent	72
-XVisibilityEvent.type	0
-XVisibilityEvent.serial	8
-XVisibilityEvent.send_event	16
-XVisibilityEvent.display	24
-XVisibilityEvent.window	32
-XVisibilityEvent.state	40
-XVisibilityEvent	48
-XWMHints.flags	0
-XWMHints.initial_state	12
-XWMHints.icon_pixmap	16
-XWMHints.icon_window	24
-XWMHints.icon_x	32
-XWMHints.icon_y	36
-XWMHints.icon_mask	40
-XWMHints.input	8
-XWMHints.window_group	48
-XWMHints	56
-XCrossingEvent.type	0
-XCrossingEvent.serial	8
-XCrossingEvent.send_event	16
-XCrossingEvent.display	24
-XCrossingEvent.window	32
-XCrossingEvent.root	40
-XCrossingEvent.subwindow	48
-XCrossingEvent.time	56
-XCrossingEvent.x	64
-XCrossingEvent.y	68
-XCrossingEvent.x_root	72
-XCrossingEvent.y_root	76
-XCrossingEvent.mode	80
-XCrossingEvent.detail	84
-XCrossingEvent.same_screen	88
-XCrossingEvent.focus	92
-XCrossingEvent.state	96
-XCrossingEvent	104
-XSelectionRequestEvent.type	0
-XSelectionRequestEvent.serial	8
-XSelectionRequestEvent.send_event	16
-XSelectionRequestEvent.display	24
-XSelectionRequestEvent.owner	32
-XSelectionRequestEvent.requestor	40
-XSelectionRequestEvent.selection	48
-XSelectionRequestEvent.target	56
-XSelectionRequestEvent.property	64
-XSelectionRequestEvent.time	72
-XSelectionRequestEvent	80
-XNoExposeEvent.type	0
-XNoExposeEvent.serial	8
-XNoExposeEvent.send_event	16
-XNoExposeEvent.display	24
-XNoExposeEvent.drawable	32
-XNoExposeEvent.major_code	40
-XNoExposeEvent.minor_code	44
-XNoExposeEvent	48
-XHostAddress.family	0
-XHostAddress.length	4
-XHostAddress.address	8
-XHostAddress	16
-XColormapEvent.type	0
-XColormapEvent.serial	8
-XColormapEvent.send_event	16
-XColormapEvent.display	24
-XColormapEvent.window	32
-XColormapEvent.colormap	40
-XColormapEvent.new	48
-XColormapEvent.state	52
-XColormapEvent	56
-ColorEntry.r	0
-ColorEntry.g	1
-ColorEntry.b	2
-ColorEntry.flags	3
-ColorEntry	4
-XResizeRequestEvent.type	0
-XResizeRequestEvent.serial	8
-XResizeRequestEvent.send_event	16
-XResizeRequestEvent.display	24
-XResizeRequestEvent.window	32
-XResizeRequestEvent.width	40
-XResizeRequestEvent.height	44
-XResizeRequestEvent	48
-Depth.depth	0
-Depth.nvisuals	4
-Depth.visuals	8
-Depth	16
-XPropertyEvent.type	0
-XPropertyEvent.serial	8
-XPropertyEvent.send_event	16
-XPropertyEvent.display	24
-XPropertyEvent.window	32
-XPropertyEvent.atom	40
-XPropertyEvent.time	48
-XPropertyEvent.state	56
-XPropertyEvent	64
-XDestroyWindowEvent.type	0
-XDestroyWindowEvent.serial	8
-XDestroyWindowEvent.send_event	16
-XDestroyWindowEvent.display	24
-XDestroyWindowEvent.event	32
-XDestroyWindowEvent.window	40
-XDestroyWindowEvent	48
-XStandardColormap.colormap	0
-XStandardColormap.red_max	8
-XStandardColormap.red_mult	16
-XStandardColormap.green_max	24
-XStandardColormap.green_mult	32
-XStandardColormap.blue_max	40
-XStandardColormap.blue_mult	48
-XStandardColormap.base_pixel	56
-XStandardColormap.visualid	64
-XStandardColormap.killid	72
-XStandardColormap	80
-XComposeStatus.compose_ptr	0
-XComposeStatus.chars_matched	8
-XComposeStatus	16
-AwtGraphicsConfigData.awt_depth	0
-AwtGraphicsConfigData.awt_cmap	8
-AwtGraphicsConfigData.awt_visInfo	16
-AwtGraphicsConfigData.awt_num_colors	80
-AwtGraphicsConfigData.awtImage	88
-AwtGraphicsConfigData.AwtColorMatch	96
-AwtGraphicsConfigData.monoImage	104
-AwtGraphicsConfigData.monoPixmap	112
-AwtGraphicsConfigData.monoPixmapWidth	120
-AwtGraphicsConfigData.monoPixmapHeight	124
-AwtGraphicsConfigData.monoPixmapGC	128
-AwtGraphicsConfigData.pixelStride	136
-AwtGraphicsConfigData.color_data	144
-AwtGraphicsConfigData.glxInfo	152
-AwtGraphicsConfigData.isTranslucencySupported	160
-AwtGraphicsConfigData.renderPictFormat	168
-AwtGraphicsConfigData	208
-XColor.pixel	0
-XColor.red	8
-XColor.green	10
-XColor.blue	12
-XColor.flags	14
-XColor.pad	15
-XColor	16
-XTextProperty.value	0
-XTextProperty.encoding	8
-XTextProperty.format	16
-XTextProperty.nitems	24
-XTextProperty	32
--- a/make/data/x11wrappergen/sizes.64-solaris-i386	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1017 +0,0 @@
-long	8
-int	4
-short	2
-ptr	8
-Bool	4
-Atom	8
-Window	8
-XExtData.number	0
-XExtData.next	8
-XExtData.free_private	16
-XExtData.private_data	24
-XExtData	32
-XIMStringConversionCallbackStruct.position	0
-XIMStringConversionCallbackStruct.direction	4
-XIMStringConversionCallbackStruct.operation	8
-XIMStringConversionCallbackStruct.factor	10
-XIMStringConversionCallbackStruct.text	16
-XIMStringConversionCallbackStruct	24
-XkbNewKeyboardNotifyEvent.type	0
-XkbNewKeyboardNotifyEvent.serial	8
-XkbNewKeyboardNotifyEvent.send_event	16
-XkbNewKeyboardNotifyEvent.display	24
-XkbNewKeyboardNotifyEvent.time	32
-XkbNewKeyboardNotifyEvent.xkb_type	40
-XkbNewKeyboardNotifyEvent.device	44
-XkbNewKeyboardNotifyEvent.old_device	48
-XkbNewKeyboardNotifyEvent.min_key_code	52
-XkbNewKeyboardNotifyEvent.max_key_code	56
-XkbNewKeyboardNotifyEvent.old_min_key_code	60
-XkbNewKeyboardNotifyEvent.old_max_key_code	64
-XkbNewKeyboardNotifyEvent.changed	68
-XkbNewKeyboardNotifyEvent.req_major	72
-XkbNewKeyboardNotifyEvent.req_minor	73
-XkbNewKeyboardNotifyEvent	80
-XTimeCoord.time	0
-XTimeCoord.x	8
-XTimeCoord.y	10
-XTimeCoord	16
-XkbCompatMapNotifyEvent.type	0
-XkbCompatMapNotifyEvent.serial	8
-XkbCompatMapNotifyEvent.send_event	16
-XkbCompatMapNotifyEvent.display	24
-XkbCompatMapNotifyEvent.time	32
-XkbCompatMapNotifyEvent.xkb_type	40
-XkbCompatMapNotifyEvent.device	44
-XkbCompatMapNotifyEvent.changed_groups	48
-XkbCompatMapNotifyEvent.first_si	52
-XkbCompatMapNotifyEvent.num_si	56
-XkbCompatMapNotifyEvent.num_total_si	60
-XkbCompatMapNotifyEvent	64
-XIMStatusDrawCallbackStruct.type	0
-XIMStatusDrawCallbackStruct.data	8
-XIMStatusDrawCallbackStruct	16
-XKeyboardControl.key_click_percent	0
-XKeyboardControl.bell_percent	4
-XKeyboardControl.bell_pitch	8
-XKeyboardControl.bell_duration	12
-XKeyboardControl.led	16
-XKeyboardControl.led_mode	20
-XKeyboardControl.key	24
-XKeyboardControl.auto_repeat_mode	28
-XKeyboardControl	32
-XSelectionClearEvent.type	0
-XSelectionClearEvent.serial	8
-XSelectionClearEvent.send_event	16
-XSelectionClearEvent.display	24
-XSelectionClearEvent.window	32
-XSelectionClearEvent.selection	40
-XSelectionClearEvent.time	48
-XSelectionClearEvent	56
-XWindowChanges.x	0
-XWindowChanges.y	4
-XWindowChanges.width	8
-XWindowChanges.height	12
-XWindowChanges.border_width	16
-XWindowChanges.sibling	24
-XWindowChanges.stack_mode	32
-XWindowChanges	40
-XIMPreeditCaretCallbackStruct.position	0
-XIMPreeditCaretCallbackStruct.direction	4
-XIMPreeditCaretCallbackStruct.style	8
-XIMPreeditCaretCallbackStruct	12
-XOMCharSetList.charset_count	0
-XOMCharSetList.charset_list	8
-XOMCharSetList	16
-XOMFontInfo.num_font	0
-XOMFontInfo.font_struct_list	8
-XOMFontInfo.font_name_list	16
-XOMFontInfo	24
-AwtScreenData.numConfigs	0
-AwtScreenData.root	8
-AwtScreenData.whitepixel	16
-AwtScreenData.blackpixel	24
-AwtScreenData.defaultConfig	32
-AwtScreenData.configs	40
-AwtScreenData	48
-XIMHotKeyTrigger.keysym	0
-XIMHotKeyTrigger.modifier	8
-XIMHotKeyTrigger.modifier_mask	12
-XIMHotKeyTrigger	16
-XCirculateEvent.type	0
-XCirculateEvent.serial	8
-XCirculateEvent.send_event	16
-XCirculateEvent.display	24
-XCirculateEvent.event	32
-XCirculateEvent.window	40
-XCirculateEvent.place	48
-XCirculateEvent	56
-Screen.ext_data	0
-Screen.display	8
-Screen.root	16
-Screen.width	24
-Screen.height	28
-Screen.mwidth	32
-Screen.mheight	36
-Screen.ndepths	40
-Screen.depths	48
-Screen.root_depth	56
-Screen.root_visual	64
-Screen.default_gc	72
-Screen.cmap	80
-Screen.white_pixel	88
-Screen.black_pixel	96
-Screen.max_maps	104
-Screen.min_maps	108
-Screen.backing_store	112
-Screen.save_unders	116
-Screen.root_input_mask	120
-Screen	128
-XMapRequestEvent.type	0
-XMapRequestEvent.serial	8
-XMapRequestEvent.send_event	16
-XMapRequestEvent.display	24
-XMapRequestEvent.parent	32
-XMapRequestEvent.window	40
-XMapRequestEvent	48
-XIMText.length	0
-XIMText.feedback	8
-XIMText.encoding_is_wchar	16
-XIMText.string	24
-XIMText	32
-XGraphicsExposeEvent.type	0
-XGraphicsExposeEvent.serial	8
-XGraphicsExposeEvent.send_event	16
-XGraphicsExposeEvent.display	24
-XGraphicsExposeEvent.drawable	32
-XGraphicsExposeEvent.x	40
-XGraphicsExposeEvent.y	44
-XGraphicsExposeEvent.width	48
-XGraphicsExposeEvent.height	52
-XGraphicsExposeEvent.count	56
-XGraphicsExposeEvent.major_code	60
-XGraphicsExposeEvent.minor_code	64
-XGraphicsExposeEvent	72
-XEvent.type	0
-XEvent.xany	0
-XEvent.xkey	0
-XEvent.xbutton	0
-XEvent.xmotion	0
-XEvent.xcrossing	0
-XEvent.xfocus	0
-XEvent.xexpose	0
-XEvent.xgraphicsexpose	0
-XEvent.xnoexpose	0
-XEvent.xvisibility	0
-XEvent.xcreatewindow	0
-XEvent.xdestroywindow	0
-XEvent.xunmap	0
-XEvent.xmap	0
-XEvent.xmaprequest	0
-XEvent.xreparent	0
-XEvent.xconfigure	0
-XEvent.xgravity	0
-XEvent.xresizerequest	0
-XEvent.xconfigurerequest	0
-XEvent.xcirculate	0
-XEvent.xcirculaterequest	0
-XEvent.xproperty	0
-XEvent.xselectionclear	0
-XEvent.xselectionrequest	0
-XEvent.xselection	0
-XEvent.xcolormap	0
-XEvent.xclient	0
-XEvent.xmapping	0
-XEvent.xerror	0
-XEvent.xkeymap	0
-XEvent.pad	0
-XEvent	192
-XRenderDirectFormat.red	0
-XRenderDirectFormat.redMask	2
-XRenderDirectFormat.green	4
-XRenderDirectFormat.greenMask	6
-XRenderDirectFormat.blue	8
-XRenderDirectFormat.blueMask	10
-XRenderDirectFormat.alpha	12
-XRenderDirectFormat.alphaMask	14
-XRenderDirectFormat	16
-ColorData.awt_Colors	0
-ColorData.awt_numICMcolors	8
-ColorData.awt_icmLUT	16
-ColorData.awt_icmLUT2Colors	24
-ColorData.img_grays	32
-ColorData.img_clr_tbl	40
-ColorData.img_oda_red	48
-ColorData.img_oda_green	56
-ColorData.img_oda_blue	64
-ColorData.pGrayInverseLutData	72
-ColorData.screendata	80
-ColorData.representsPrimaries	84
-ColorData	88
-XFontStruct.ext_data	0
-XFontStruct.fid	8
-XFontStruct.direction	16
-XFontStruct.min_char_or_byte2	20
-XFontStruct.max_char_or_byte2	24
-XFontStruct.min_byte1	28
-XFontStruct.max_byte1	32
-XFontStruct.all_chars_exist	36
-XFontStruct.n_properties	44
-XFontStruct.properties	48
-XFontStruct.min_bounds	56
-XFontStruct.max_bounds	68
-XFontStruct.per_char	80
-XFontStruct.ascent	88
-XFontStruct.descent	92
-XFontStruct	96
-XExtCodes.extension	0
-XExtCodes.major_opcode	4
-XExtCodes.first_event	8
-XExtCodes.first_error	12
-XExtCodes	16
-XFontSetExtents.max_ink_extent	0
-XFontSetExtents.max_logical_extent	8
-XFontSetExtents	16
-XSelectionEvent.type	0
-XSelectionEvent.serial	8
-XSelectionEvent.send_event	16
-XSelectionEvent.display	24
-XSelectionEvent.requestor	32
-XSelectionEvent.selection	40
-XSelectionEvent.target	48
-XSelectionEvent.property	56
-XSelectionEvent.time	64
-XSelectionEvent	72
-XArc.x	0
-XArc.y	2
-XArc.width	4
-XArc.height	6
-XArc.angle1	8
-XArc.angle2	10
-XArc	12
-XErrorEvent.type	0
-XErrorEvent.display	8
-XErrorEvent.resourceid	16
-XErrorEvent.serial	24
-XErrorEvent.error_code	32
-XErrorEvent.request_code	33
-XErrorEvent.minor_code	34
-XErrorEvent	40
-XConfigureRequestEvent.type	0
-XConfigureRequestEvent.serial	8
-XConfigureRequestEvent.send_event	16
-XConfigureRequestEvent.display	24
-XConfigureRequestEvent.parent	32
-XConfigureRequestEvent.window	40
-XConfigureRequestEvent.x	48
-XConfigureRequestEvent.y	52
-XConfigureRequestEvent.width	56
-XConfigureRequestEvent.height	60
-XConfigureRequestEvent.border_width	64
-XConfigureRequestEvent.above	72
-XConfigureRequestEvent.detail	80
-XConfigureRequestEvent.value_mask	88
-XConfigureRequestEvent	96
-ScreenFormat.ext_data	0
-ScreenFormat.depth	8
-ScreenFormat.bits_per_pixel	12
-ScreenFormat.scanline_pad	16
-ScreenFormat	24
-XButtonEvent.type	0
-XButtonEvent.serial	8
-XButtonEvent.send_event	16
-XButtonEvent.display	24
-XButtonEvent.window	32
-XButtonEvent.root	40
-XButtonEvent.subwindow	48
-XButtonEvent.time	56
-XButtonEvent.x	64
-XButtonEvent.y	68
-XButtonEvent.x_root	72
-XButtonEvent.y_root	76
-XButtonEvent.state	80
-XButtonEvent.button	84
-XButtonEvent.same_screen	88
-XButtonEvent	96
-XFontProp.name	0
-XFontProp.card32	8
-XFontProp	16
-XIMValuesList.count_values	0
-XIMValuesList.supported_values	8
-XIMValuesList	16
-XKeymapEvent.type	0
-XKeymapEvent.serial	8
-XKeymapEvent.send_event	16
-XKeymapEvent.display	24
-XKeymapEvent.window	32
-XKeymapEvent.key_vector	40
-XKeymapEvent	72
-XTextItem16.chars	0
-XTextItem16.nchars	8
-XTextItem16.delta	12
-XTextItem16.font	16
-XTextItem16	24
-XIMPreeditDrawCallbackStruct.caret	0
-XIMPreeditDrawCallbackStruct.chg_first	4
-XIMPreeditDrawCallbackStruct.chg_length	8
-XIMPreeditDrawCallbackStruct.text	16
-XIMPreeditDrawCallbackStruct	24
-XVisualInfo.visual	0
-XVisualInfo.visualid	8
-XVisualInfo.screen	16
-XVisualInfo.depth	20
-XVisualInfo.class	24
-XVisualInfo.red_mask	32
-XVisualInfo.green_mask	40
-XVisualInfo.blue_mask	48
-XVisualInfo.colormap_size	56
-XVisualInfo.bits_per_rgb	60
-XVisualInfo	64
-XkbControlsNotifyEvent.type	0
-XkbControlsNotifyEvent.serial	8
-XkbControlsNotifyEvent.send_event	16
-XkbControlsNotifyEvent.display	24
-XkbControlsNotifyEvent.time	32
-XkbControlsNotifyEvent.xkb_type	40
-XkbControlsNotifyEvent.device	44
-XkbControlsNotifyEvent.changed_ctrls	48
-XkbControlsNotifyEvent.enabled_ctrls	52
-XkbControlsNotifyEvent.enabled_ctrl_changes	56
-XkbControlsNotifyEvent.num_groups	60
-XkbControlsNotifyEvent.keycode	64
-XkbControlsNotifyEvent.event_type	65
-XkbControlsNotifyEvent.req_major	66
-XkbControlsNotifyEvent.req_minor	67
-XkbControlsNotifyEvent	72
-PropMwmHints.flags	0
-PropMwmHints.functions	8
-PropMwmHints.decorations	16
-PropMwmHints.inputMode	24
-PropMwmHints.status	32
-PropMwmHints	40
-XClientMessageEvent.type	0
-XClientMessageEvent.serial	8
-XClientMessageEvent.send_event	16
-XClientMessageEvent.display	24
-XClientMessageEvent.window	32
-XClientMessageEvent.message_type	40
-XClientMessageEvent.format	48
-XClientMessageEvent.data	56
-XClientMessageEvent	96
-XAnyEvent.type	0
-XAnyEvent.serial	8
-XAnyEvent.send_event	16
-XAnyEvent.display	24
-XAnyEvent.window	32
-XAnyEvent	40
-XkbIndicatorNotifyEvent.type	0
-XkbIndicatorNotifyEvent.serial	8
-XkbIndicatorNotifyEvent.send_event	16
-XkbIndicatorNotifyEvent.display	24
-XkbIndicatorNotifyEvent.time	32
-XkbIndicatorNotifyEvent.xkb_type	40
-XkbIndicatorNotifyEvent.device	44
-XkbIndicatorNotifyEvent.changed	48
-XkbIndicatorNotifyEvent.state	52
-XkbIndicatorNotifyEvent	56
-XIMPreeditStateNotifyCallbackStruct.state	0
-XIMPreeditStateNotifyCallbackStruct	8
-XkbAnyEvent.type	0
-XkbAnyEvent.serial	8
-XkbAnyEvent.send_event	16
-XkbAnyEvent.display	24
-XkbAnyEvent.time	32
-XkbAnyEvent.xkb_type	40
-XkbAnyEvent.device	44
-XkbAnyEvent	48
-XMotionEvent.type	0
-XMotionEvent.serial	8
-XMotionEvent.send_event	16
-XMotionEvent.display	24
-XMotionEvent.window	32
-XMotionEvent.root	40
-XMotionEvent.subwindow	48
-XMotionEvent.time	56
-XMotionEvent.x	64
-XMotionEvent.y	68
-XMotionEvent.x_root	72
-XMotionEvent.y_root	76
-XMotionEvent.state	80
-XMotionEvent.is_hint	84
-XMotionEvent.same_screen	88
-XMotionEvent	96
-XIMHotKeyTriggers.num_hot_key	0
-XIMHotKeyTriggers.key	8
-XIMHotKeyTriggers	16
-XIMStyles.count_styles	0
-XIMStyles.supported_styles	8
-XIMStyles	16
-XkbExtensionDeviceNotifyEvent.type	0
-XkbExtensionDeviceNotifyEvent.serial	8
-XkbExtensionDeviceNotifyEvent.send_event	16
-XkbExtensionDeviceNotifyEvent.display	24
-XkbExtensionDeviceNotifyEvent.time	32
-XkbExtensionDeviceNotifyEvent.xkb_type	40
-XkbExtensionDeviceNotifyEvent.device	44
-XkbExtensionDeviceNotifyEvent.reason	48
-XkbExtensionDeviceNotifyEvent.supported	52
-XkbExtensionDeviceNotifyEvent.unsupported	56
-XkbExtensionDeviceNotifyEvent.first_btn	60
-XkbExtensionDeviceNotifyEvent.num_btns	64
-XkbExtensionDeviceNotifyEvent.leds_defined	68
-XkbExtensionDeviceNotifyEvent.led_state	72
-XkbExtensionDeviceNotifyEvent.led_class	76
-XkbExtensionDeviceNotifyEvent.led_id	80
-XkbExtensionDeviceNotifyEvent	88
-XwcTextItem.chars	0
-XwcTextItem.nchars	8
-XwcTextItem.delta	12
-XwcTextItem.font_set	16
-XwcTextItem	24
-XClassHint.res_name	0
-XClassHint.res_class	8
-XClassHint	16
-XChar2b.byte1	0
-XChar2b.byte2	1
-XChar2b	2
-XSetWindowAttributes.background_pixmap	0
-XSetWindowAttributes.background_pixel	8
-XSetWindowAttributes.border_pixmap	16
-XSetWindowAttributes.border_pixel	24
-XSetWindowAttributes.bit_gravity	32
-XSetWindowAttributes.win_gravity	36
-XSetWindowAttributes.backing_store	40
-XSetWindowAttributes.backing_planes	48
-XSetWindowAttributes.backing_pixel	56
-XSetWindowAttributes.save_under	64
-XSetWindowAttributes.event_mask	72
-XSetWindowAttributes.do_not_propagate_mask	80
-XSetWindowAttributes.override_redirect	88
-XSetWindowAttributes.colormap	96
-XSetWindowAttributes.cursor	104
-XSetWindowAttributes	112
-XRenderPictFormat.id	0
-XRenderPictFormat.type	8
-XRenderPictFormat.depth	12
-XRenderPictFormat.direct	16
-XRenderPictFormat.colormap	32
-XRenderPictFormat	40
-XReparentEvent.type	0
-XReparentEvent.serial	8
-XReparentEvent.send_event	16
-XReparentEvent.display	24
-XReparentEvent.event	32
-XReparentEvent.window	40
-XReparentEvent.parent	48
-XReparentEvent.x	56
-XReparentEvent.y	60
-XReparentEvent.override_redirect	64
-XReparentEvent	72
-XCirculateRequestEvent.type	0
-XCirculateRequestEvent.serial	8
-XCirculateRequestEvent.send_event	16
-XCirculateRequestEvent.display	24
-XCirculateRequestEvent.parent	32
-XCirculateRequestEvent.window	40
-XCirculateRequestEvent.place	48
-XCirculateRequestEvent	56
-XImage.width	0
-XImage.height	4
-XImage.xoffset	8
-XImage.format	12
-XImage.data	16
-XImage.byte_order	24
-XImage.bitmap_unit	28
-XImage.bitmap_bit_order	32
-XImage.bitmap_pad	36
-XImage.depth	40
-XImage.bytes_per_line	44
-XImage.bits_per_pixel	48
-XImage.red_mask	56
-XImage.green_mask	64
-XImage.blue_mask	72
-XImage.obdata	80
-XImage.f.create_image	88
-XImage.f.destroy_image	96
-XImage.f.get_pixel	104
-XImage.f.put_pixel	112
-XImage.f.sub_image	120
-XImage.f.add_pixel	128
-XImage	136
-XKeyEvent.type	0
-XKeyEvent.serial	8
-XKeyEvent.send_event	16
-XKeyEvent.display	24
-XKeyEvent.window	32
-XKeyEvent.root	40
-XKeyEvent.subwindow	48
-XKeyEvent.time	56
-XKeyEvent.x	64
-XKeyEvent.y	68
-XKeyEvent.x_root	72
-XKeyEvent.y_root	76
-XKeyEvent.state	80
-XKeyEvent.keycode	84
-XKeyEvent.same_screen	88
-XKeyEvent	96
-XkbActionMessageEvent.type	0
-XkbActionMessageEvent.serial	8
-XkbActionMessageEvent.send_event	16
-XkbActionMessageEvent.display	24
-XkbActionMessageEvent.time	32
-XkbActionMessageEvent.xkb_type	40
-XkbActionMessageEvent.device	44
-XkbActionMessageEvent.keycode	48
-XkbActionMessageEvent.press	52
-XkbActionMessageEvent.key_event_follows	56
-XkbActionMessageEvent.group	60
-XkbActionMessageEvent.mods	64
-XkbActionMessageEvent.message	68
-XkbActionMessageEvent	80
-XdbeSwapInfo.swap_window	0
-XdbeSwapInfo.swap_action	8
-XdbeSwapInfo	16
-XTextItem.chars	0
-XTextItem.nchars	8
-XTextItem.delta	12
-XTextItem.font	16
-XTextItem	24
-XModifierKeymap.max_keypermod	0
-XModifierKeymap.modifiermap	8
-XModifierKeymap	16
-XCharStruct.lbearing	0
-XCharStruct.rbearing	2
-XCharStruct.width	4
-XCharStruct.ascent	6
-XCharStruct.descent	8
-XCharStruct.attributes	10
-XCharStruct	12
-XGravityEvent.type	0
-XGravityEvent.serial	8
-XGravityEvent.send_event	16
-XGravityEvent.display	24
-XGravityEvent.event	32
-XGravityEvent.window	40
-XGravityEvent.x	48
-XGravityEvent.y	52
-XGravityEvent	56
-Visual.ext_data	0
-Visual.visualid	8
-Visual.class	16
-Visual.red_mask	24
-Visual.green_mask	32
-Visual.blue_mask	40
-Visual.bits_per_rgb	48
-Visual.map_entries	52
-Visual	56
-XOMOrientation.num_orientation	0
-XOMOrientation.orientation	8
-XOMOrientation	16
-XkbAccessXNotifyEvent.type	0
-XkbAccessXNotifyEvent.serial	8
-XkbAccessXNotifyEvent.send_event	16
-XkbAccessXNotifyEvent.display	24
-XkbAccessXNotifyEvent.time	32
-XkbAccessXNotifyEvent.xkb_type	40
-XkbAccessXNotifyEvent.device	44
-XkbAccessXNotifyEvent.detail	48
-XkbAccessXNotifyEvent.keycode	52
-XkbAccessXNotifyEvent.sk_delay	56
-XkbAccessXNotifyEvent.debounce_delay	60
-XkbAccessXNotifyEvent	64
-XWindowAttributes.x	0
-XWindowAttributes.y	4
-XWindowAttributes.width	8
-XWindowAttributes.height	12
-XWindowAttributes.border_width	16
-XWindowAttributes.depth	20
-XWindowAttributes.visual	24
-XWindowAttributes.root	32
-XWindowAttributes.class	40
-XWindowAttributes.bit_gravity	44
-XWindowAttributes.win_gravity	48
-XWindowAttributes.backing_store	52
-XWindowAttributes.backing_planes	56
-XWindowAttributes.backing_pixel	64
-XWindowAttributes.save_under	72
-XWindowAttributes.colormap	80
-XWindowAttributes.map_installed	88
-XWindowAttributes.map_state	92
-XWindowAttributes.all_event_masks	96
-XWindowAttributes.your_event_mask	104
-XWindowAttributes.do_not_propagate_mask	112
-XWindowAttributes.override_redirect	120
-XWindowAttributes.screen	128
-XWindowAttributes	136
-XmbTextItem.chars	0
-XmbTextItem.nchars	8
-XmbTextItem.delta	12
-XmbTextItem.font_set	16
-XmbTextItem	24
-XMappingEvent.type	0
-XMappingEvent.serial	8
-XMappingEvent.send_event	16
-XMappingEvent.display	24
-XMappingEvent.window	32
-XMappingEvent.request	40
-XMappingEvent.first_keycode	44
-XMappingEvent.count	48
-XMappingEvent	56
-XSizeHints.flags	0
-XSizeHints.x	8
-XSizeHints.y	12
-XSizeHints.width	16
-XSizeHints.height	20
-XSizeHints.min_width	24
-XSizeHints.min_height	28
-XSizeHints.max_width	32
-XSizeHints.max_height	36
-XSizeHints.width_inc	40
-XSizeHints.height_inc	44
-XSizeHints.min_aspect.x	48
-XSizeHints.min_aspect.y	52
-XSizeHints.max_aspect.x	56
-XSizeHints.max_aspect.y	60
-XSizeHints.base_width	64
-XSizeHints.base_height	68
-XSizeHints.win_gravity	72
-XSizeHints	80
-XUnmapEvent.type	0
-XUnmapEvent.serial	8
-XUnmapEvent.send_event	16
-XUnmapEvent.display	24
-XUnmapEvent.event	32
-XUnmapEvent.window	40
-XUnmapEvent.from_configure	48
-XUnmapEvent	56
-awtImageData.Depth	0
-awtImageData.wsImageFormat	4
-awtImageData.clrdata	16
-awtImageData.convert	48
-awtImageData	560
-XkbStateNotifyEvent.type	0
-XkbStateNotifyEvent.serial	8
-XkbStateNotifyEvent.send_event	16
-XkbStateNotifyEvent.display	24
-XkbStateNotifyEvent.time	32
-XkbStateNotifyEvent.xkb_type	40
-XkbStateNotifyEvent.device	44
-XkbStateNotifyEvent.changed	48
-XkbStateNotifyEvent.group	52
-XkbStateNotifyEvent.base_group	56
-XkbStateNotifyEvent.latched_group	60
-XkbStateNotifyEvent.locked_group	64
-XkbStateNotifyEvent.mods	68
-XkbStateNotifyEvent.base_mods	72
-XkbStateNotifyEvent.latched_mods	76
-XkbStateNotifyEvent.locked_mods	80
-XkbStateNotifyEvent.compat_state	84
-XkbStateNotifyEvent.grab_mods	88
-XkbStateNotifyEvent.compat_grab_mods	89
-XkbStateNotifyEvent.lookup_mods	90
-XkbStateNotifyEvent.compat_lookup_mods	91
-XkbStateNotifyEvent.ptr_buttons	92
-XkbStateNotifyEvent.keycode	96
-XkbStateNotifyEvent.event_type	97
-XkbStateNotifyEvent.req_major	98
-XkbStateNotifyEvent.req_minor	99
-XkbStateNotifyEvent	104
-XExposeEvent.type	0
-XExposeEvent.serial	8
-XExposeEvent.send_event	16
-XExposeEvent.display	24
-XExposeEvent.window	32
-XExposeEvent.x	40
-XExposeEvent.y	44
-XExposeEvent.width	48
-XExposeEvent.height	52
-XExposeEvent.count	56
-XExposeEvent	64
-XkbMapNotifyEvent.type	0
-XkbMapNotifyEvent.serial	8
-XkbMapNotifyEvent.send_event	16
-XkbMapNotifyEvent.display	24
-XkbMapNotifyEvent.time	32
-XkbMapNotifyEvent.xkb_type	40
-XkbMapNotifyEvent.device	44
-XkbMapNotifyEvent.changed	48
-XkbMapNotifyEvent.flags	52
-XkbMapNotifyEvent.first_type	56
-XkbMapNotifyEvent.num_types	60
-XkbMapNotifyEvent.min_key_code	64
-XkbMapNotifyEvent.max_key_code	65
-XkbMapNotifyEvent.first_key_sym	66
-XkbMapNotifyEvent.first_key_act	67
-XkbMapNotifyEvent.first_key_behavior	68
-XkbMapNotifyEvent.first_key_explicit	69
-XkbMapNotifyEvent.first_modmap_key	70
-XkbMapNotifyEvent.first_vmodmap_key	71
-XkbMapNotifyEvent.num_key_syms	72
-XkbMapNotifyEvent.num_key_acts	76
-XkbMapNotifyEvent.num_key_behaviors	80
-XkbMapNotifyEvent.num_key_explicit	84
-XkbMapNotifyEvent.num_modmap_keys	88
-XkbMapNotifyEvent.num_vmodmap_keys	92
-XkbMapNotifyEvent.vmods	96
-XkbMapNotifyEvent	104
-XGCValues.function	0
-XGCValues.plane_mask	8
-XGCValues.foreground	16
-XGCValues.background	24
-XGCValues.line_width	32
-XGCValues.line_style	36
-XGCValues.cap_style	40
-XGCValues.join_style	44
-XGCValues.fill_style	48
-XGCValues.fill_rule	52
-XGCValues.arc_mode	56
-XGCValues.tile	64
-XGCValues.stipple	72
-XGCValues.ts_x_origin	80
-XGCValues.ts_y_origin	84
-XGCValues.font	88
-XGCValues.subwindow_mode	96
-XGCValues.graphics_exposures	100
-XGCValues.clip_x_origin	104
-XGCValues.clip_y_origin	108
-XGCValues.clip_mask	112
-XGCValues.dash_offset	120
-XGCValues.dashes	124
-XGCValues	128
-XFocusChangeEvent.type	0
-XFocusChangeEvent.serial	8
-XFocusChangeEvent.send_event	16
-XFocusChangeEvent.display	24
-XFocusChangeEvent.window	32
-XFocusChangeEvent.mode	40
-XFocusChangeEvent.detail	44
-XFocusChangeEvent	48
-XPixmapFormatValues.depth	0
-XPixmapFormatValues.bits_per_pixel	4
-XPixmapFormatValues.scanline_pad	8
-XPixmapFormatValues	12
-XMapEvent.type	0
-XMapEvent.serial	8
-XMapEvent.send_event	16
-XMapEvent.display	24
-XMapEvent.event	32
-XMapEvent.window	40
-XMapEvent.override_redirect	48
-XMapEvent	56
-XkbBellNotifyEvent.type	0
-XkbBellNotifyEvent.serial	8
-XkbBellNotifyEvent.send_event	16
-XkbBellNotifyEvent.display	24
-XkbBellNotifyEvent.time	32
-XkbBellNotifyEvent.xkb_type	40
-XkbBellNotifyEvent.device	44
-XkbBellNotifyEvent.percent	48
-XkbBellNotifyEvent.pitch	52
-XkbBellNotifyEvent.duration	56
-XkbBellNotifyEvent.bell_class	60
-XkbBellNotifyEvent.bell_id	64
-XkbBellNotifyEvent.name	72
-XkbBellNotifyEvent.window	80
-XkbBellNotifyEvent.event_only	88
-XkbBellNotifyEvent	96
-XIMStringConversionText.length	0
-XIMStringConversionText.feedback	8
-XIMStringConversionText.encoding_is_wchar	16
-XIMStringConversionText.string	24
-XIMStringConversionText	32
-XKeyboardState.key_click_percent	0
-XKeyboardState.bell_percent	4
-XKeyboardState.bell_pitch	8
-XKeyboardState.bell_duration	12
-XKeyboardState.led_mask	16
-XKeyboardState.global_auto_repeat	24
-XKeyboardState.auto_repeats	28
-XKeyboardState	64
-XkbEvent.type	0
-XkbEvent.any	0
-XkbEvent.new_kbd	0
-XkbEvent.map	0
-XkbEvent.state	0
-XkbEvent.ctrls	0
-XkbEvent.indicators	0
-XkbEvent.names	0
-XkbEvent.compat	0
-XkbEvent.bell	0
-XkbEvent.message	0
-XkbEvent.accessx	0
-XkbEvent.device	0
-XkbEvent.core	0
-XkbEvent	192
-XPoint.x	0
-XPoint.y	2
-XPoint	4
-XSegment.x1	0
-XSegment.y1	2
-XSegment.x2	4
-XSegment.y2	6
-XSegment	8
-XIconSize.min_width	0
-XIconSize.min_height	4
-XIconSize.max_width	8
-XIconSize.max_height	12
-XIconSize.width_inc	16
-XIconSize.height_inc	20
-XIconSize	24
-XIMCallback.client_data	0
-XIMCallback.callback	8
-XIMCallback	16
-XConfigureEvent.type	0
-XConfigureEvent.serial	8
-XConfigureEvent.send_event	16
-XConfigureEvent.display	24
-XConfigureEvent.event	32
-XConfigureEvent.window	40
-XConfigureEvent.x	48
-XConfigureEvent.y	52
-XConfigureEvent.width	56
-XConfigureEvent.height	60
-XConfigureEvent.border_width	64
-XConfigureEvent.above	72
-XConfigureEvent.override_redirect	80
-XConfigureEvent	88
-XRectangle.x	0
-XRectangle.y	2
-XRectangle.width	4
-XRectangle.height	6
-XRectangle	8
-XkbNamesNotifyEvent.type	0
-XkbNamesNotifyEvent.serial	8
-XkbNamesNotifyEvent.send_event	16
-XkbNamesNotifyEvent.display	24
-XkbNamesNotifyEvent.time	32
-XkbNamesNotifyEvent.xkb_type	40
-XkbNamesNotifyEvent.device	44
-XkbNamesNotifyEvent.changed	48
-XkbNamesNotifyEvent.first_type	52
-XkbNamesNotifyEvent.num_types	56
-XkbNamesNotifyEvent.first_lvl	60
-XkbNamesNotifyEvent.num_lvls	64
-XkbNamesNotifyEvent.num_aliases	68
-XkbNamesNotifyEvent.num_radio_groups	72
-XkbNamesNotifyEvent.changed_vmods	76
-XkbNamesNotifyEvent.changed_groups	80
-XkbNamesNotifyEvent.changed_indicators	84
-XkbNamesNotifyEvent.first_key	88
-XkbNamesNotifyEvent.num_keys	92
-XkbNamesNotifyEvent	96
-XCreateWindowEvent.type	0
-XCreateWindowEvent.serial	8
-XCreateWindowEvent.send_event	16
-XCreateWindowEvent.display	24
-XCreateWindowEvent.parent	32
-XCreateWindowEvent.window	40
-XCreateWindowEvent.x	48
-XCreateWindowEvent.y	52
-XCreateWindowEvent.width	56
-XCreateWindowEvent.height	60
-XCreateWindowEvent.border_width	64
-XCreateWindowEvent.override_redirect	68
-XCreateWindowEvent	72
-XVisibilityEvent.type	0
-XVisibilityEvent.serial	8
-XVisibilityEvent.send_event	16
-XVisibilityEvent.display	24
-XVisibilityEvent.window	32
-XVisibilityEvent.state	40
-XVisibilityEvent	48
-XWMHints.flags	0
-XWMHints.initial_state	12
-XWMHints.icon_pixmap	16
-XWMHints.icon_window	24
-XWMHints.icon_x	32
-XWMHints.icon_y	36
-XWMHints.icon_mask	40
-XWMHints.input	8
-XWMHints.window_group	48
-XWMHints	56
-XCrossingEvent.type	0
-XCrossingEvent.serial	8
-XCrossingEvent.send_event	16
-XCrossingEvent.display	24
-XCrossingEvent.window	32
-XCrossingEvent.root	40
-XCrossingEvent.subwindow	48
-XCrossingEvent.time	56
-XCrossingEvent.x	64
-XCrossingEvent.y	68
-XCrossingEvent.x_root	72
-XCrossingEvent.y_root	76
-XCrossingEvent.mode	80
-XCrossingEvent.detail	84
-XCrossingEvent.same_screen	88
-XCrossingEvent.focus	92
-XCrossingEvent.state	96
-XCrossingEvent	104
-XSelectionRequestEvent.type	0
-XSelectionRequestEvent.serial	8
-XSelectionRequestEvent.send_event	16
-XSelectionRequestEvent.display	24
-XSelectionRequestEvent.owner	32
-XSelectionRequestEvent.requestor	40
-XSelectionRequestEvent.selection	48
-XSelectionRequestEvent.target	56
-XSelectionRequestEvent.property	64
-XSelectionRequestEvent.time	72
-XSelectionRequestEvent	80
-XNoExposeEvent.type	0
-XNoExposeEvent.serial	8
-XNoExposeEvent.send_event	16
-XNoExposeEvent.display	24
-XNoExposeEvent.drawable	32
-XNoExposeEvent.major_code	40
-XNoExposeEvent.minor_code	44
-XNoExposeEvent	48
-XHostAddress.family	0
-XHostAddress.length	4
-XHostAddress.address	8
-XHostAddress	16
-XColormapEvent.type	0
-XColormapEvent.serial	8
-XColormapEvent.send_event	16
-XColormapEvent.display	24
-XColormapEvent.window	32
-XColormapEvent.colormap	40
-XColormapEvent.new	48
-XColormapEvent.state	52
-XColormapEvent	56
-ColorEntry.r	0
-ColorEntry.g	1
-ColorEntry.b	2
-ColorEntry.flags	3
-ColorEntry	4
-XResizeRequestEvent.type	0
-XResizeRequestEvent.serial	8
-XResizeRequestEvent.send_event	16
-XResizeRequestEvent.display	24
-XResizeRequestEvent.window	32
-XResizeRequestEvent.width	40
-XResizeRequestEvent.height	44
-XResizeRequestEvent	48
-Depth.depth	0
-Depth.nvisuals	4
-Depth.visuals	8
-Depth	16
-XPropertyEvent.type	0
-XPropertyEvent.serial	8
-XPropertyEvent.send_event	16
-XPropertyEvent.display	24
-XPropertyEvent.window	32
-XPropertyEvent.atom	40
-XPropertyEvent.time	48
-XPropertyEvent.state	56
-XPropertyEvent	64
-XDestroyWindowEvent.type	0
-XDestroyWindowEvent.serial	8
-XDestroyWindowEvent.send_event	16
-XDestroyWindowEvent.display	24
-XDestroyWindowEvent.event	32
-XDestroyWindowEvent.window	40
-XDestroyWindowEvent	48
-XStandardColormap.colormap	0
-XStandardColormap.red_max	8
-XStandardColormap.red_mult	16
-XStandardColormap.green_max	24
-XStandardColormap.green_mult	32
-XStandardColormap.blue_max	40
-XStandardColormap.blue_mult	48
-XStandardColormap.base_pixel	56
-XStandardColormap.visualid	64
-XStandardColormap.killid	72
-XStandardColormap	80
-XComposeStatus.compose_ptr	0
-XComposeStatus.chars_matched	8
-XComposeStatus	16
-AwtGraphicsConfigData.awt_depth	0
-AwtGraphicsConfigData.awt_cmap	8
-AwtGraphicsConfigData.awt_visInfo	16
-AwtGraphicsConfigData.awt_num_colors	80
-AwtGraphicsConfigData.awtImage	88
-AwtGraphicsConfigData.AwtColorMatch	96
-AwtGraphicsConfigData.monoImage	104
-AwtGraphicsConfigData.monoPixmap	112
-AwtGraphicsConfigData.monoPixmapWidth	120
-AwtGraphicsConfigData.monoPixmapHeight	124
-AwtGraphicsConfigData.monoPixmapGC	128
-AwtGraphicsConfigData.pixelStride	136
-AwtGraphicsConfigData.color_data	144
-AwtGraphicsConfigData.glxInfo	152
-AwtGraphicsConfigData.isTranslucencySupported	160
-AwtGraphicsConfigData.renderPictFormat	168
-AwtGraphicsConfigData	208
-XColor.pixel	0
-XColor.red	8
-XColor.green	10
-XColor.blue	12
-XColor.flags	14
-XColor.pad	15
-XColor	16
-XTextProperty.value	0
-XTextProperty.encoding	8
-XTextProperty.format	16
-XTextProperty.nitems	24
-XTextProperty	32
--- a/make/data/x11wrappergen/xlibtypes.txt	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/data/x11wrappergen/xlibtypes.txt	Thu Mar 08 10:18:28 2018 -0800
@@ -1,9 +1,9 @@
-//
 //
 // This file is used for automated generation of java classes to wrap native structures.
-// The detail on format of this file see WrapperGenerator.java
+// For details on format of this file, see WrapperGenerator.java
 //
-// WARNING: if you modified this file, you need to regenerate sizes.64-solaris-i386
+// WARNING: If you modify this file, you need to regenerate sizes-32.txt and sizes-64.txt.
+// Run "make update-x11wrappers" to do this.
 //
 
 XExtData
--- a/make/gensrc/Gensrc-java.desktop.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/gensrc/Gensrc-java.desktop.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -30,10 +30,10 @@
 
 ifneq ($(OPENJDK_TARGET_OS), windows)
   include GensrcIcons.gmk
+endif
 
-  ifneq ($(OPENJDK_TARGET_OS), macosx)
-    include GensrcX11Wrappers.gmk
-  endif
+ifneq ($(filter $(OPENJDK_TARGET_OS), linux solaris aix), )
+  include GensrcX11Wrappers.gmk
 endif
 
 include GensrcSwing.gmk
--- a/make/gensrc/GensrcX11Wrappers.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/gensrc/GensrcX11Wrappers.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
 # 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,106 +23,32 @@
 # questions.
 #
 
-# This file is responsible for extracting the x11 native struct offsets to
-# the xawt Java library. The tool needs to be run on the os/arch that
-# will host the final jvm, thus the tool cannot be used when cross compiling.
+# Generate java sources using the X11 offsets that are precalculated in files
+# make/data/x11wrappergen/sizes-<address size>.txt.
 
-# To enable cross compiling, the two versions of the generated offset file,
-# sizes.32 and sizes.64 are committed into the source code repository.
-# These are the ones used.
+GENSRC_X11WRAPPERS_OUTPUT_TOP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop
 
-# However when not cross compiling, the offset generator tool is built and
-# run, to verify that it still generates the same sizes.32 and sizes.64.
+GENSRC_X11WRAPPERS_MARKER := $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/_x11wrappers.marker
 
-GENSRC_X11WRAPPERS :=
-# Put temporary c-code and executable to calculate offsets here.
-# Also put verification offset file here as well.
-GENSRC_X11WRAPPERS_TMP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_x11wrappers
 # Put the generated Java classes used to interface X11 from awt here.
-GENSRC_X11WRAPPERS_DST := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/sun/awt/X11
+GENSRC_X11WRAPPERS_OUTPUTDIR := $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/sun/awt/X11
 
 # The pre-calculated offset file are stored here:
-GENSRC_SIZER_DIR := $(TOPDIR)/make/data/x11wrappergen
+GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
+GENSRC_X11WRAPPERS_DATA := $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(OPENJDK_TARGET_CPU_BITS).txt
+
+$(info ExecuteWithLog is $(call ExecuteWithLog $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/foobar, CMDLINE))
 
-# Normal case is to generate only according to target bits
-GENSRC_X11_VERSION := $(OPENJDK_TARGET_CPU_BITS)
-ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
-  ifneq ($(OPENJDK_TARGET_OS), linux)
-    # On all 64-bit systems except Linux, generate both 32 and 64 bit versions
-    GENSRC_X11_VERSION := 32 64
-  endif
-else
-  ifeq ($(OPENJDK_TARGET_OS), solaris)
-    # As a special case, solaris 32-bit also generates the 64-bit version
-    GENSRC_X11_VERSION := 32 64
-  endif
-endif
-
-GENSRC_X11_SIZES_USED := $(addprefix $(GENSRC_X11WRAPPERS_TMP)/sizes., $(GENSRC_X11_VERSION))
-
-# Copy only the sizes.* files that are actually needed. WrapperGenerator picks up any it finds from the
-# file prefix it is given so those not needed need to be hidden.
-$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%
-	$(call MakeDir, $(@D))
-	$(RM) '$@'
-	$(SORT) $< > $@
-
-# Run the tool on the offset files copied from the source repository to generate several Java classes
-# used in awt.
-$(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated.x11: $(GENSRC_X11_SIZES_USED) $(BUILD_TOOLS_JDK)
-	$(call MakeDir, $(GENSRC_X11WRAPPERS_DST))
-	$(TOOL_WRAPPERGENERATOR) $(GENSRC_X11WRAPPERS_DST) $(GENSRC_SIZER_DIR)/xlibtypes.txt "gen" $(GENSRC_X11WRAPPERS_TMP)/sizes
+# Run the tool on the offset files to generate several Java classes used in awt.
+$(GENSRC_X11WRAPPERS_MARKER): $(BUILD_TOOLS_JDK) $(GENSRC_X11WRAPPERS_DATA) \
+    $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt
+	$(call MakeDir, $(GENSRC_X11WRAPPERS_OUTPUTDIR))
+	$(call LogInfo, Generating X11 wrapper source files)
+	$(call ExecuteWithLog, $@, \
+	    $(TOOL_WRAPPERGENERATOR) gen_java $(GENSRC_X11WRAPPERS_OUTPUTDIR) \
+	        $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(GENSRC_X11WRAPPERS_DATA) \
+	        $(OPENJDK_TARGET_CPU_BITS))
 	$(TOUCH) $@
 
-GENSRC_X11WRAPPERS += $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated.x11
 
-ifneq ($(COMPILE_TYPE), cross)
-  # This is not a cross compile, regenerate the offset file, so that we
-  # can compare it with the version in the source code repository.
-
-  # Generate the C code for the program that will output the offset file.
-  $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c: $(GENSRC_SIZER_DIR)/xlibtypes.txt $(BUILD_TOOLS_JDK)
-	$(call LogInfo, Generating X11 wrapper ($*-bit version))
-	$(call MakeDir, $(@D))
-	$(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
-
-  # use -m32/-m64 only if the compiler supports it
-  ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG), true)
-    MEMORY_MODEL_FLAG="$(COMPILER_TARGET_BITS_FLAG)$*"
-  endif
-
-  SIZER_CFLAGS := \
-      -I$(TOPDIR)/src/hotspot/share/include \
-      -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \
-      -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
-      -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
-      -I$(TOPDIR)/src/java.base/share/native/libjava \
-      -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
-      -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
-      -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
-      -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
-      #
-
-  # Compile the C code into an executable.
-  $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
-	$(call MakeDir, $(@D))
-	(cd $(@D) && $(CC) $(MEMORY_MODEL_FLAG) -o $@ $< \
-	    $(X_CFLAGS) \
-	    $(X_LIBS) \
-	    $(SIZER_CFLAGS) -lc)
-
-  .PRECIOUS: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
-
-  # Run the executable create the offset file and check that it is identical
-  # to the offset file in the source code repository.
-  $(GENSRC_X11WRAPPERS_TMP)/sizes.%.verification: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe
-	$(call LogInfo, Verifying X11 wrapper sizes)
-	$(call MakeDir, $(@D))
-	$(GENSRC_X11WRAPPERS_TMP)/sizer.$*.exe | $(SORT) > $@.tmp
-	$(DIFF) $(GENSRC_X11WRAPPERS_TMP)/sizes.$*.verification.tmp $(GENSRC_X11WRAPPERS_TMP)/sizes.$*
-	mv $@.tmp $@
-
-  GENSRC_X11WRAPPERS += $(GENSRC_X11WRAPPERS_TMP)/sizes.$(OPENJDK_TARGET_CPU_BITS).verification
-endif
-
-GENSRC_JAVA_DESKTOP += $(GENSRC_X11WRAPPERS)
+GENSRC_JAVA_DESKTOP += $(GENSRC_X11WRAPPERS_MARKER)
--- a/make/hotspot/lib/CompileDtracePostJvm.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/hotspot/lib/CompileDtracePostJvm.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -160,7 +160,9 @@
 	    > $(DTRACE_SUPPORT_DIR)/$(@F).d))
 	$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -o $@ \
 	    -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
-	$(call ExecuteWithLog, $@.elfedit, $(ELFEDIT) $(call GetElfeditCommands) $@)
+        ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
+	  $(call ExecuteWithLog, $@.elfedit, $(ELFEDIT) $(call GetElfeditCommands) $@)
+        endif
 
     ############################################################################
     # Build the stand-alone dtrace libraries
--- a/make/hotspot/lib/CompileGtest.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/hotspot/lib/CompileGtest.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -82,7 +82,6 @@
     CFLAGS_macosx := -DGTEST_OS_MAC=1, \
     CFLAGS_aix := -qpic=large, \
     CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
-    CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
     DISABLED_WARNINGS_gcc := undef, \
     DISABLED_WARNINGS_clang := undef switch format-nonliteral \
         tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \
@@ -116,7 +115,6 @@
     CFLAGS := $(JVM_CFLAGS) -I$(GTEST_FRAMEWORK_SRC) \
         -I$(GTEST_FRAMEWORK_SRC)/include, \
     CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
-    CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
     LDFLAGS := $(LDFLAGS_JDKEXE), \
     LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \
     LDFLAGS_solaris := -library=stlport4, \
--- a/make/hotspot/lib/CompileJvm.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/hotspot/lib/CompileJvm.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -221,7 +221,6 @@
     EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
     CFLAGS := $(JVM_CFLAGS), \
     CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
-    CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
     vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
     arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
     DISABLED_WARNINGS_clang := tautological-compare, \
--- a/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1109,7 +1109,6 @@
     }
 
     public void writeJavaWrapperClass(String outputDir) {
-//          (new File(outputDir, package_path)).mkdirs();
         try {
             for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
                 BaseType tp = (BaseType) e.nextElement();
@@ -1126,7 +1125,6 @@
         }
     }
 
-
     public void writeNativeSizer(String file)
     {
         int type;
@@ -1136,7 +1134,6 @@
         StructType stp;
         Enumeration eo;
 
-
         try {
 
             FileOutputStream fs =  new FileOutputStream(file);
@@ -1158,7 +1155,6 @@
             pw.println("    unsigned long status;\n");
             pw.println("} PropMwmHints;\n");
 
-
             pw.println("\n\nint main(){");
             j=0;
             for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
@@ -1182,7 +1178,6 @@
             pw.println("printf(\"Atom\t%d\\n\",(int)sizeof(Atom));");
             pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));");
 
-
             for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
 
 
@@ -1234,7 +1229,8 @@
         symbolTable.put("Atom", new AtomicType(AtomicType.TYPE_ATOM, "", "Atom"));
         symbolTable.put("ulong", new AtomicType(AtomicType.TYPE_ULONG, "", "ulong"));
     }
-    public WrapperGenerator(String outputDir, String xlibFilename) {
+
+    public WrapperGenerator(String xlibFilename) {
         initTypes();
         try {
             BufferedReader in  = new BufferedReader(new FileReader(xlibFilename));
@@ -1303,33 +1299,19 @@
         catch (Exception e) {
             e.printStackTrace();
         }
+    }
 
-    }
-    private void makeSizer(String outputDir) {
-        if (wide) {
-            sizerFileName = "sizer.64.c";
-        } else {
-            sizerFileName = "sizer.32.c";
-        }
-        File fp = new File(outputDir, sizerFileName);
+    private void makeSizer(String sizerFileName) {
+        File fp = new File(sizerFileName);
         writeNativeSizer(fp.getAbsolutePath());
     }
-    private boolean readSizeInfo(String sizeInfo) {
+
+    private boolean readFileSizeInfo(String filename, boolean wide) {
         try {
-            File f = new File(sizeInfo+".32");
             boolean res = true;
-            FileInputStream fis = null;
-            if (f.exists()) {
-                fis = new FileInputStream(f);
-                res = readSizeInfo(fis, false);
-                fis.close();
-            }
-            f = new File(sizeInfo+".64");
-            if (f.exists()) {
-                fis = new FileInputStream(f);
-                res &= readSizeInfo(fis, true);
-                fis.close();
-            }
+            FileInputStream fis = new FileInputStream(filename);
+            res = readSizeInfo(fis, wide);
+            fis.close();
             return res;
         } catch (Exception e) {
             e.printStackTrace();
@@ -1337,8 +1319,8 @@
         }
     }
 
-    private void startGeneration(String outputDir, String sizeInfo) {
-        if (readSizeInfo(sizeInfo))
+    private void startGeneration(String outputDir, String filename, boolean wide) {
+        if (readFileSizeInfo(filename, wide))
         {
             writeJavaWrapperClass(outputDir);
         }
@@ -1348,21 +1330,22 @@
     }
 
     public static void main(String[] args) {
+        if (args.length < 4) {
+            System.out.println("Usage:\nWrapperGenerator gen_java <output_dir> <xlibtypes.txt> <sizes-*.txt> <platform>");
+            System.out.println("      or");
+            System.out.println("WrapperGenerator gen_c_source <output_file> <xlibtypes.txt> <platform>");
+            System.out.println("Where <platform>: 32, 64");
 
-        if (args.length < 4) {
-            System.out.println("Usage:\nWrapperGenerator <output_dir> <xlibtypes.txt> <action> [<platform> | <sizes info file>]");
-            System.out.println("Where <action>: gen, sizer");
-            System.out.println("      <platform>: 32, 64");
             System.exit(1);
         }
 
-        WrapperGenerator xparser = new WrapperGenerator(args[0], args[1]);
-        if (args[2].equals("sizer")) {
+        WrapperGenerator xparser = new WrapperGenerator(args[2]);
+        if (args[0].equals("gen_c_source")) {
             xparser.wide = args[3].equals("64");
-            xparser.makeSizer(args[0]);
-        } else if (args[2].equals("gen")) {
-            xparser.startGeneration(args[0], args[3]);
+            xparser.makeSizer(args[1]);
+        } else if (args[0].equals("gen_java")) {
+            boolean wide = args[4].equals("64");
+            xparser.startGeneration(args[1], args[3], wide);
         }
     }
-
 }
--- a/src/java.base/share/classes/javax/security/auth/AuthPermission.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/javax/security/auth/AuthPermission.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +32,7 @@
  *
  * <p> The target name is the name of a security configuration parameter
  * (see below).  Currently the {@code AuthPermission} object is used to
- * guard access to the {@link Policy}, {@link Subject},
+ * guard access to the {@link Subject},
  * {@link javax.security.auth.login.LoginContext}, and
  * {@link javax.security.auth.login.Configuration} objects.
  *
@@ -121,21 +121,6 @@
  *                              {@code LoginContext}.
  * </pre>
  *
- * <p> {@code javax.security.auth.Policy} has been
- * deprecated in favor of {@code java.security.Policy}.
- * Therefore, the following target names have also been deprecated:
- *
- * <pre>
- *      getPolicy -             allow the caller to retrieve the system-wide
- *                              Subject-based access control policy.
- *
- *      setPolicy -             allow the caller to set the system-wide
- *                              Subject-based access control policy.
- *
- *      refreshPolicy -         allow the caller to refresh the system-wide
- *                              Subject-based access control policy.
- * </pre>
- *
  * @implNote
  * Implementations may define additional target names, but should use naming
  * conventions such as reverse domain name notation to avoid name clashes.
--- a/src/java.base/share/classes/javax/security/auth/Policy.java	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-/*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute 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 javax.security.auth;
-
-import java.security.Security;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
-import java.util.Objects;
-import sun.security.util.Debug;
-
-/**
- * <p> This is an abstract class for representing the system policy for
- * Subject-based authorization.  A subclass implementation
- * of this class provides a means to specify a Subject-based
- * access control {@code Policy}.
- *
- * <p> A {@code Policy} object can be queried for the set of
- * Permissions granted to code running as a
- * {@code Principal} in the following manner:
- *
- * <pre>
- *      policy = Policy.getPolicy();
- *      PermissionCollection perms = policy.getPermissions(subject,
- *                                                      codeSource);
- * </pre>
- *
- * The {@code Policy} object consults the local policy and returns
- * and appropriate {@code Permissions} object with the
- * Permissions granted to the Principals associated with the
- * provided {@code subject}, and granted to the code specified
- * by the provided {@code codeSource}.
- *
- * <p> A {@code Policy} contains the following information.
- * Note that this example only represents the syntax for the default
- * {@code Policy} implementation. Subclass implementations of this class
- * may implement alternative syntaxes and may retrieve the
- * {@code Policy} from any source such as files, databases,
- * or servers.
- *
- * <p> Each entry in the {@code Policy} is represented as
- * a <b><i>grant</i></b> entry.  Each <b><i>grant</i></b> entry
- * specifies a codebase, code signers, and Principals triplet,
- * as well as the Permissions granted to that triplet.
- *
- * <pre>
- *      grant CodeBase ["URL"], Signedby ["signers"],
- *            Principal [Principal_Class] "Principal_Name" {
- *          Permission Permission_Class ["Target_Name"]
- *                                      [, "Permission_Actions"]
- *                                      [, signedBy "SignerName"];
- *      };
- * </pre>
- *
- * The CodeBase and Signedby components of the triplet name/value pairs
- * are optional.  If they are not present, then any codebase will match,
- * and any signer (including unsigned code) will match.
- * For Example,
- *
- * <pre>
- *      grant CodeBase "foo.com", Signedby "foo",
- *            Principal com.sun.security.auth.UnixPrincipal "duke" {
- *          permission java.io.FilePermission "/home/duke", "read, write";
- *      };
- * </pre>
- *
- * This <b><i>grant</i></b> entry specifies that code from "foo.com",
- * signed by "foo', and running as a {@code UnixPrincipal} with the
- * name, duke, has one {@code Permission}.  This {@code Permission}
- * permits the executing code to read and write files in the directory,
- * "/home/duke".
- *
- * <p> To "run" as a particular {@code Principal},
- * code invokes the {@code Subject.doAs(subject, ...)} method.
- * After invoking that method, the code runs as all the Principals
- * associated with the specified {@code Subject}.
- * Note that this {@code Policy} (and the Permissions
- * granted in this {@code Policy}) only become effective
- * after the call to {@code Subject.doAs} has occurred.
- *
- * <p> Multiple Principals may be listed within one <b><i>grant</i></b> entry.
- * All the Principals in the grant entry must be associated with
- * the {@code Subject} provided to {@code Subject.doAs}
- * for that {@code Subject} to be granted the specified Permissions.
- *
- * <pre>
- *      grant Principal com.sun.security.auth.UnixPrincipal "duke",
- *            Principal com.sun.security.auth.UnixNumericUserPrincipal "0" {
- *          permission java.io.FilePermission "/home/duke", "read, write";
- *          permission java.net.SocketPermission "duke.com", "connect";
- *      };
- * </pre>
- *
- * This entry grants any code running as both "duke" and "0"
- * permission to read and write files in duke's home directory,
- * as well as permission to make socket connections to "duke.com".
- *
- * <p> Note that non Principal-based grant entries are not permitted
- * in this {@code Policy}.  Therefore, grant entries such as:
- *
- * <pre>
- *      grant CodeBase "foo.com", Signedby "foo" {
- *          permission java.io.FilePermission "/tmp/scratch", "read, write";
- *      };
- * </pre>
- *
- * are rejected.  Such permission must be listed in the
- * {@code java.security.Policy}.
- *
- * <p> The default {@code Policy} implementation can be changed by
- * setting the value of the {@code auth.policy.provider} security property to
- * the fully qualified name of the desired {@code Policy} implementation class.
- *
- * @deprecated  Replaced by java.security.Policy.
- *              java.security.Policy has a method:
- * <pre>
- *      public PermissionCollection getPermissions
- *          (java.security.ProtectionDomain pd)
- *
- * </pre>
- * and ProtectionDomain has a constructor:
- * <pre>
- *      public ProtectionDomain
- *          (CodeSource cs,
- *           PermissionCollection permissions,
- *           ClassLoader loader,
- *           Principal[] principals)
- * </pre>
- *
- * These two APIs provide callers the means to query the
- * Policy for Principal-based Permission entries.
- * This class is subject to removal in a future version of Java SE.
- *
- * @since 1.4
- * @see java.security.Security security properties
- */
-@Deprecated(since="1.4", forRemoval=true)
-public abstract class Policy {
-
-    private static Policy policy;
-    private static final String AUTH_POLICY =
-        "sun.security.provider.AuthPolicyFile";
-
-    private final java.security.AccessControlContext acc =
-            java.security.AccessController.getContext();
-
-    // true if a custom (not AUTH_POLICY) system-wide policy object is set
-    private static boolean isCustomPolicy;
-
-    /**
-     * Sole constructor.  (For invocation by subclass constructors, typically
-     * implicit.)
-     */
-    protected Policy() { }
-
-    /**
-     * Returns the installed Policy object.
-     * This method first calls
-     * {@code SecurityManager.checkPermission} with the
-     * {@code AuthPermission("getPolicy")} permission
-     * to ensure the caller has permission to get the Policy object.
-     *
-     * @return the installed Policy.  The return value cannot be
-     *          {@code null}.
-     *
-     * @exception java.lang.SecurityException if the current thread does not
-     *      have permission to get the Policy object.
-     *
-     * @see #setPolicy
-     */
-    public static Policy getPolicy() {
-        java.lang.SecurityManager sm = System.getSecurityManager();
-        if (sm != null) sm.checkPermission(new AuthPermission("getPolicy"));
-        return getPolicyNoCheck();
-    }
-
-    /**
-     * Returns the installed Policy object, skipping the security check.
-     *
-     * @return the installed Policy.
-     *
-     */
-    static Policy getPolicyNoCheck() {
-        if (policy == null) {
-
-            synchronized(Policy.class) {
-
-                if (policy == null) {
-                    String policy_class = null;
-                    policy_class = AccessController.doPrivileged
-                        (new PrivilegedAction<String>() {
-                        public String run() {
-                            return java.security.Security.getProperty
-                                ("auth.policy.provider");
-                        }
-                    });
-                    if (policy_class == null) {
-                        policy_class = AUTH_POLICY;
-                    }
-
-                    try {
-                        final String finalClass = policy_class;
-
-                        Policy untrustedImpl = AccessController.doPrivileged(
-                                new PrivilegedExceptionAction<Policy>() {
-                                    public Policy run() throws ClassNotFoundException,
-                                            InstantiationException,
-                                            IllegalAccessException {
-                                        Class<? extends Policy> implClass = Class.forName(
-                                                finalClass, false,
-                                                Thread.currentThread().getContextClassLoader()
-                                        ).asSubclass(Policy.class);
-                                        return implClass.newInstance();
-                                    }
-                                });
-                        AccessController.doPrivileged(
-                                new PrivilegedExceptionAction<Void>() {
-                                    public Void run() {
-                                        setPolicy(untrustedImpl);
-                                        isCustomPolicy = !finalClass.equals(AUTH_POLICY);
-                                        return null;
-                                    }
-                                }, Objects.requireNonNull(untrustedImpl.acc)
-                        );
-                    } catch (Exception e) {
-                        throw new SecurityException
-                                (sun.security.util.ResourcesMgr.getString
-                                ("unable.to.instantiate.Subject.based.policy"));
-                    }
-                }
-            }
-        }
-        return policy;
-    }
-
-
-    /**
-     * Sets the system-wide Policy object. This method first calls
-     * {@code SecurityManager.checkPermission} with the
-     * {@code AuthPermission("setPolicy")}
-     * permission to ensure the caller has permission to set the Policy.
-     *
-     * @param policy the new system Policy object.
-     *
-     * @exception java.lang.SecurityException if the current thread does not
-     *          have permission to set the Policy.
-     *
-     * @see #getPolicy
-     */
-    public static void setPolicy(Policy policy) {
-        java.lang.SecurityManager sm = System.getSecurityManager();
-        if (sm != null) sm.checkPermission(new AuthPermission("setPolicy"));
-        Policy.policy = policy;
-        // all non-null policy objects are assumed to be custom
-        isCustomPolicy = policy != null ? true : false;
-    }
-
-    /**
-     * Returns true if a custom (not AUTH_POLICY) system-wide policy object
-     * has been set or installed. This method is called by
-     * SubjectDomainCombiner to provide backwards compatibility for
-     * developers that provide their own javax.security.auth.Policy
-     * implementations.
-     *
-     * @return true if a custom (not AUTH_POLICY) system-wide policy object
-     * has been set; false otherwise
-     */
-    static boolean isCustomPolicySet(Debug debug) {
-        if (policy != null) {
-            if (debug != null && isCustomPolicy) {
-                debug.println("Providing backwards compatibility for " +
-                              "javax.security.auth.policy implementation: " +
-                              policy.toString());
-            }
-            return isCustomPolicy;
-        }
-        // check if custom policy has been set using auth.policy.provider prop
-        String policyClass = java.security.AccessController.doPrivileged
-            (new java.security.PrivilegedAction<String>() {
-                public String run() {
-                    return Security.getProperty("auth.policy.provider");
-                }
-        });
-        if (policyClass != null && !policyClass.equals(AUTH_POLICY)) {
-            if (debug != null) {
-                debug.println("Providing backwards compatibility for " +
-                              "javax.security.auth.policy implementation: " +
-                              policyClass);
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Retrieve the Permissions granted to the Principals associated with
-     * the specified {@code CodeSource}.
-     *
-     * @param subject the {@code Subject}
-     *                  whose associated Principals,
-     *                  in conjunction with the provided
-     *                  {@code CodeSource}, determines the Permissions
-     *                  returned by this method.  This parameter
-     *                  may be {@code null}.
-     *
-     * @param cs the code specified by its {@code CodeSource}
-     *                  that determines, in conjunction with the provided
-     *                  {@code Subject}, the Permissions
-     *                  returned by this method.  This parameter may be
-     *                  {@code null}.
-     *
-     * @return the Collection of Permissions granted to all the
-     *                  {@code Subject} and code specified in
-     *                  the provided <i>subject</i> and <i>cs</i>
-     *                  parameters.
-     */
-    public abstract java.security.PermissionCollection getPermissions
-                                        (Subject subject,
-                                        java.security.CodeSource cs);
-
-    /**
-     * Refresh and reload the Policy.
-     *
-     * <p>This method causes this object to refresh/reload its current
-     * Policy. This is implementation-dependent.
-     * For example, if the Policy object is stored in
-     * a file, calling {@code refresh} will cause the file to be re-read.
-     *
-     * @exception SecurityException if the caller does not have permission
-     *                          to refresh the Policy.
-     */
-    public abstract void refresh();
-}
--- a/src/java.base/share/classes/javax/security/auth/SubjectDomainCombiner.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/javax/security/auth/SubjectDomainCombiner.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,13 +26,9 @@
 package javax.security.auth;
 
 import java.security.AccessController;
-import java.security.Permission;
-import java.security.Permissions;
-import java.security.PermissionCollection;
 import java.security.Principal;
 import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
-import java.security.Security;
 import java.util.Set;
 import java.util.WeakHashMap;
 import java.lang.ref.WeakReference;
@@ -56,15 +52,6 @@
         sun.security.util.Debug.getInstance("combiner",
                                         "\t[SubjectDomainCombiner]");
 
-    @SuppressWarnings({"deprecation", "removal"})
-    // Note: check only at classloading time, not dynamically during combine()
-    private static final boolean useJavaxPolicy =
-        javax.security.auth.Policy.isCustomPolicySet(debug);
-
-    // Relevant only when useJavaxPolicy is true
-    private static final boolean allowCaching =
-                                        (useJavaxPolicy && cachePolicy());
-
     /**
      * Associate the provided {@code Subject} with this
      * {@code SubjectDomainCombiner}.
@@ -196,12 +183,6 @@
             return null;
         }
 
-        // maintain backwards compatibility for developers who provide
-        // their own custom javax.security.auth.Policy implementations
-        if (useJavaxPolicy) {
-            return combineJavaxPolicy(currentDomains, assignedDomains);
-        }
-
         int cLen = (currentDomains == null ? 0 : currentDomains.length);
         int aLen = (assignedDomains == null ? 0 : assignedDomains.length);
 
@@ -292,151 +273,6 @@
         }
     }
 
-    /**
-     * Use the javax.security.auth.Policy implementation
-     */
-    private ProtectionDomain[] combineJavaxPolicy(
-        ProtectionDomain[] currentDomains,
-        ProtectionDomain[] assignedDomains) {
-
-        if (!allowCaching) {
-            java.security.AccessController.doPrivileged
-                (new PrivilegedAction<Void>() {
-                    @SuppressWarnings({"deprecation", "removal"})
-                    public Void run() {
-                        // Call refresh only caching is disallowed
-                        javax.security.auth.Policy.getPolicy().refresh();
-                        return null;
-                    }
-                });
-        }
-
-
-        int cLen = (currentDomains == null ? 0 : currentDomains.length);
-        int aLen = (assignedDomains == null ? 0 : assignedDomains.length);
-
-        // the ProtectionDomains for the new AccessControlContext
-        // that we will return
-        ProtectionDomain[] newDomains = new ProtectionDomain[cLen + aLen];
-
-        synchronized(cachedPDs) {
-            if (!subject.isReadOnly() &&
-                !subject.getPrincipals().equals(principalSet)) {
-
-                // if the Subject was mutated, clear the PD cache
-                Set<Principal> newSet = subject.getPrincipals();
-                synchronized(newSet) {
-                    principalSet = new java.util.HashSet<Principal>(newSet);
-                }
-                principals = principalSet.toArray
-                        (new Principal[principalSet.size()]);
-                cachedPDs.clear();
-
-                if (debug != null) {
-                    debug.println("Subject mutated - clearing cache");
-                }
-            }
-
-            for (int i = 0; i < cLen; i++) {
-                ProtectionDomain pd = currentDomains[i];
-                ProtectionDomain subjectPd = cachedPDs.getValue(pd);
-
-                if (subjectPd == null) {
-                    if (pd.staticPermissionsOnly()) {
-                        // keep static ProtectionDomain objects static
-                        subjectPd = pd;
-                    } else {
-                        // XXX
-                        // we must first add the original permissions.
-                        // that way when we later add the new JAAS permissions,
-                        // any unresolved JAAS-related permissions will
-                        // automatically get resolved.
-
-                        // get the original perms
-                        Permissions perms = new Permissions();
-                        PermissionCollection coll = pd.getPermissions();
-                        java.util.Enumeration<Permission> e;
-                        if (coll != null) {
-                            synchronized (coll) {
-                                e = coll.elements();
-                                while (e.hasMoreElements()) {
-                                    Permission newPerm =
-                                        e.nextElement();
-                                    perms.add(newPerm);
-                                }
-                            }
-                        }
-
-                        // get perms from the policy
-                        final java.security.CodeSource finalCs = pd.getCodeSource();
-                        final Subject finalS = subject;
-                        PermissionCollection newPerms =
-                            java.security.AccessController.doPrivileged
-                            (new PrivilegedAction<PermissionCollection>() {
-                            @SuppressWarnings({"deprecation", "removal"})
-                            public PermissionCollection run() {
-                                return
-                                    javax.security.auth.Policy.getPolicy().getPermissions
-                                    (finalS, finalCs);
-                            }
-                        });
-
-                        // add the newly granted perms,
-                        // avoiding duplicates
-                        synchronized (newPerms) {
-                            e = newPerms.elements();
-                            while (e.hasMoreElements()) {
-                                Permission newPerm = e.nextElement();
-                                if (!perms.implies(newPerm)) {
-                                    perms.add(newPerm);
-                                    if (debug != null)
-                                        debug.println (
-                                            "Adding perm " + newPerm + "\n");
-                                }
-                            }
-                        }
-                        subjectPd = new ProtectionDomain
-                            (finalCs, perms, pd.getClassLoader(), principals);
-                    }
-                    if (allowCaching)
-                        cachedPDs.putValue(pd, subjectPd);
-                }
-                newDomains[i] = subjectPd;
-            }
-        }
-
-        if (debug != null) {
-            debug.println("updated current: ");
-            for (int i = 0; i < cLen; i++) {
-                debug.println("\tupdated[" + i + "] = " + newDomains[i]);
-            }
-        }
-
-        // now add on the assigned domains
-        if (aLen > 0) {
-            System.arraycopy(assignedDomains, 0, newDomains, cLen, aLen);
-        }
-
-        if (debug != null) {
-            if (newDomains == null || newDomains.length == 0) {
-                debug.println("returning null");
-            } else {
-                debug.println("combinedDomains: ");
-                for (int i = 0; i < newDomains.length; i++) {
-                    debug.println("newDomain " + i + ": " +
-                        newDomains[i].toString());
-                }
-            }
-        }
-
-        // return the new ProtectionDomains
-        if (newDomains == null || newDomains.length == 0) {
-            return null;
-        } else {
-            return newDomains;
-        }
-    }
-
     private static ProtectionDomain[] optimize(ProtectionDomain[] domains) {
         if (domains == null || domains.length == 0)
             return null;
@@ -476,21 +312,6 @@
         return ((num == 0 || optimized.length == 0) ? null : optimized);
     }
 
-    private static boolean cachePolicy() {
-        String s = AccessController.doPrivileged
-            (new PrivilegedAction<String>() {
-            public String run() {
-                return Security.getProperty("cache.auth.policy");
-            }
-        });
-        if (s != null) {
-            return Boolean.parseBoolean(s);
-        }
-
-        // cache by default
-        return true;
-    }
-
     private static void printInputDomains(ProtectionDomain[] currentDomains,
                                 ProtectionDomain[] assignedDomains) {
         if (currentDomains == null || currentDomains.length == 0) {
--- a/src/java.base/share/classes/sun/net/www/MimeTable.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/sun/net/www/MimeTable.java	Thu Mar 08 10:18:28 2018 -0800
@@ -57,9 +57,6 @@
                     "/etc/mailcap",
                     "/usr/etc/mailcap",
                     "/usr/local/etc/mailcap",
-                    System.getProperty("hotjava.home",
-                                           "/usr/local/hotjava")
-                        + "/lib/mailcap",
                 };
                 return null;
             }
--- a/src/java.base/share/classes/sun/nio/ch/SelChImpl.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/SelChImpl.java	Thu Mar 08 10:18:28 2018 -0800
@@ -63,8 +63,6 @@
 
     void translateAndSetInterestOps(int ops, SelectionKeyImpl sk);
 
-    int validOps();
-
     void kill() throws IOException;
 
 }
--- a/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Thu Mar 08 10:18:28 2018 -0800
@@ -96,7 +96,7 @@
     private static final int ST_CLOSING = 3;
     private static final int ST_KILLPENDING = 4;
     private static final int ST_KILLED = 5;
-    private int state;
+    private volatile int state;  // need stateLock to change
 
     // IDs of native threads doing reads and writes, for signalling
     private long readerThread;
@@ -148,12 +148,37 @@
         }
     }
 
-    // @throws ClosedChannelException if channel is closed
+    /**
+     * Checks that the channel is open.
+     *
+     * @throws ClosedChannelException if channel is closed (or closing)
+     */
     private void ensureOpen() throws ClosedChannelException {
         if (!isOpen())
             throw new ClosedChannelException();
     }
 
+    /**
+     * Checks that the channel is open and connected.
+     *
+     * @apiNote This method uses the "state" field to check if the channel is
+     * open. It should never be used in conjuncion with isOpen or ensureOpen
+     * as these methods check AbstractInterruptibleChannel's closed field - that
+     * field is set before implCloseSelectableChannel is called and so before
+     * the state is changed.
+     *
+     * @throws ClosedChannelException if channel is closed (or closing)
+     * @throws NotYetConnectedException if open and not connected
+     */
+    private void ensureOpenAndConnected() throws ClosedChannelException {
+        int state = this.state;
+        if (state < ST_CONNECTED) {
+            throw new NotYetConnectedException();
+        } else if (state > ST_CONNECTED) {
+            throw new ClosedChannelException();
+        }
+    }
+
     @Override
     public Socket socket() {
         synchronized (stateLock) {
@@ -275,13 +300,14 @@
         if (blocking) {
             // set hook for Thread.interrupt
             begin();
-        }
-        synchronized (stateLock) {
-            ensureOpen();
-            if (state != ST_CONNECTED)
-                throw new NotYetConnectedException();
-            if (blocking)
+
+            synchronized (stateLock) {
+                ensureOpenAndConnected();
+                // record thread so it can be signalled if needed
                 readerThread = NativeThread.current();
+            }
+        } else {
+            ensureOpenAndConnected();
         }
     }
 
@@ -385,15 +411,16 @@
         if (blocking) {
             // set hook for Thread.interrupt
             begin();
-        }
-        synchronized (stateLock) {
-            ensureOpen();
-            if (isOutputClosed)
-                throw new ClosedChannelException();
-            if (state != ST_CONNECTED)
-                throw new NotYetConnectedException();
-            if (blocking)
+
+            synchronized (stateLock) {
+                ensureOpenAndConnected();
+                if (isOutputClosed)
+                    throw new ClosedChannelException();
+                // record thread so it can be signalled if needed
                 writerThread = NativeThread.current();
+            }
+        } else {
+            ensureOpenAndConnected();
         }
     }
 
@@ -574,38 +601,48 @@
 
     @Override
     public boolean isConnected() {
-        synchronized (stateLock) {
-            return (state == ST_CONNECTED);
-        }
+        return (state == ST_CONNECTED);
     }
 
     @Override
     public boolean isConnectionPending() {
-        synchronized (stateLock) {
-            return (state == ST_CONNECTIONPENDING);
-        }
+        return (state == ST_CONNECTIONPENDING);
     }
 
     /**
      * Marks the beginning of a connect operation that might block.
-     *
+     * @param blocking true if configured blocking
+     * @param isa the remote address
      * @throws ClosedChannelException if the channel is closed
      * @throws AlreadyConnectedException if already connected
      * @throws ConnectionPendingException is a connection is pending
+     * @throws IOException if the pre-connect hook fails
      */
-    private void beginConnect(boolean blocking) throws ClosedChannelException {
+    private void beginConnect(boolean blocking, InetSocketAddress isa)
+        throws IOException
+    {
         if (blocking) {
             // set hook for Thread.interrupt
             begin();
         }
         synchronized (stateLock) {
             ensureOpen();
+            int state = this.state;
             if (state == ST_CONNECTED)
                 throw new AlreadyConnectedException();
             if (state == ST_CONNECTIONPENDING)
                 throw new ConnectionPendingException();
-            if (blocking)
+            assert state == ST_UNCONNECTED;
+            this.state = ST_CONNECTIONPENDING;
+
+            if (localAddress == null)
+                NetHooks.beforeTcpConnect(fd, isa.getAddress(), isa.getPort());
+            remoteAddress = isa;
+
+            if (blocking) {
+                // record thread so it can be signalled if needed
                 readerThread = NativeThread.current();
+            }
         }
     }
 
@@ -614,11 +651,21 @@
      *
      * @throws AsynchronousCloseException if the channel was closed due to this
      * thread being interrupted on a blocking connect operation.
+     * @throws IOException if completed and unable to obtain the local address
      */
     private void endConnect(boolean blocking, boolean completed)
-        throws AsynchronousCloseException
+        throws IOException
     {
         endRead(blocking, completed);
+
+        if (completed) {
+            synchronized (stateLock) {
+                if (state == ST_CONNECTIONPENDING) {
+                    localAddress = Net.localAddress(fd);
+                    state = ST_CONNECTED;
+                }
+            }
+        }
     }
 
     @Override
@@ -628,64 +675,37 @@
         if (sm != null)
             sm.checkConnect(isa.getAddress().getHostAddress(), isa.getPort());
 
-        readLock.lock();
-        try {
-            writeLock.lock();
-            try {
-                // notify before-connect hook
-                synchronized (stateLock) {
-                    if (state == ST_UNCONNECTED && localAddress == null) {
-                        NetHooks.beforeTcpConnect(fd, isa.getAddress(), isa.getPort());
-                    }
-                }
+        InetAddress ia = isa.getAddress();
+        if (ia.isAnyLocalAddress())
+            ia = InetAddress.getLocalHost();
 
-                InetAddress ia = isa.getAddress();
-                if (ia.isAnyLocalAddress())
-                    ia = InetAddress.getLocalHost();
-
-                int n = 0;
-                boolean blocking = isBlocking();
+        try {
+            readLock.lock();
+            try {
+                writeLock.lock();
                 try {
+                    int n = 0;
+                    boolean blocking = isBlocking();
                     try {
-                        beginConnect(blocking);
-                        if (blocking) {
-                            do {
-                                n = Net.connect(fd, ia, isa.getPort());
-                            } while (n == IOStatus.INTERRUPTED && isOpen());
-                        } else {
+                        beginConnect(blocking, isa);
+                        do {
                             n = Net.connect(fd, ia, isa.getPort());
-                        }
+                        } while (n == IOStatus.INTERRUPTED && isOpen());
                     } finally {
-                        endConnect(blocking, n > 0);
+                        endConnect(blocking, (n > 0));
                     }
-                } catch (IOException x) {
-                    // connect failed, close socket
-                    close();
-                    throw x;
-                }
-
-                // connection may be established
-                synchronized (stateLock) {
-                    if (!isOpen())
-                        throw new AsynchronousCloseException();
-                    remoteAddress = isa;
-                    if (n > 0) {
-                        // connected established
-                        localAddress = Net.localAddress(fd);
-                        state = ST_CONNECTED;
-                        return true;
-                    } else {
-                        // connection pending
-                        assert !blocking;
-                        state = ST_CONNECTIONPENDING;
-                        return false;
-                    }
+                    assert IOStatus.check(n);
+                    return n > 0;
+                } finally {
+                    writeLock.unlock();
                 }
             } finally {
-                writeLock.unlock();
+                readLock.unlock();
             }
-        } finally {
-            readLock.unlock();
+        } catch (IOException ioe) {
+            // connect failed, close the channel
+            close();
+            throw ioe;
         }
     }
 
@@ -704,8 +724,10 @@
             ensureOpen();
             if (state != ST_CONNECTIONPENDING)
                 throw new NoConnectionPendingException();
-            if (blocking)
+            if (blocking) {
+                // record thread so it can be signalled if needed
                 readerThread = NativeThread.current();
+            }
         }
     }
 
@@ -714,65 +736,62 @@
      *
      * @throws AsynchronousCloseException if the channel was closed due to this
      * thread being interrupted on a blocking connect operation.
+     * @throws IOException if completed and unable to obtain the local address
      */
     private void endFinishConnect(boolean blocking, boolean completed)
-        throws AsynchronousCloseException
+        throws IOException
     {
         endRead(blocking, completed);
+
+        if (completed) {
+            synchronized (stateLock) {
+                if (state == ST_CONNECTIONPENDING) {
+                    localAddress = Net.localAddress(fd);
+                    state = ST_CONNECTED;
+                }
+            }
+        }
     }
 
     @Override
     public boolean finishConnect() throws IOException {
-        readLock.lock();
         try {
-            writeLock.lock();
+            readLock.lock();
             try {
-                // already connected?
-                synchronized (stateLock) {
-                    if (state == ST_CONNECTED)
+                writeLock.lock();
+                try {
+                    // no-op if already connected
+                    if (isConnected())
                         return true;
-                }
 
-                int n = 0;
-                boolean blocking = isBlocking();
-                try {
+                    boolean blocking = isBlocking();
+                    boolean connected = false;
                     try {
                         beginFinishConnect(blocking);
+                        int n = 0;
                         if (blocking) {
                             do {
                                 n = checkConnect(fd, true);
-                            } while (n == 0 || (n == IOStatus.INTERRUPTED) && isOpen());
+                            } while ((n == 0 || n == IOStatus.INTERRUPTED) && isOpen());
                         } else {
                             n = checkConnect(fd, false);
                         }
+                        connected = (n > 0);
                     } finally {
-                        endFinishConnect(blocking, n > 0);
+                        endFinishConnect(blocking, connected);
                     }
-                } catch (IOException x) {
-                    close();
-                    throw x;
-                }
-
-                // post finishConnect, connection may be established
-                synchronized (stateLock) {
-                    if (!isOpen())
-                        throw new AsynchronousCloseException();
-                    if (n > 0) {
-                        // connection established
-                        localAddress = Net.localAddress(fd);
-                        state = ST_CONNECTED;
-                        return true;
-                    } else {
-                        // connection still pending
-                        assert !blocking;
-                        return false;
-                    }
+                    assert (blocking && connected) ^ !blocking;
+                    return connected;
+                } finally {
+                    writeLock.unlock();
                 }
             } finally {
-                writeLock.unlock();
+                readLock.unlock();
             }
-        } finally {
-            readLock.unlock();
+        } catch (IOException ioe) {
+            // connect failed, close the channel
+            close();
+            throw ioe;
         }
     }
 
@@ -994,20 +1013,17 @@
             return (newOps & ~oldOps) != 0;
         }
 
+        boolean connected = isConnected();
         if (((ops & Net.POLLIN) != 0) &&
-            ((intOps & SelectionKey.OP_READ) != 0) &&
-            (state == ST_CONNECTED))
+            ((intOps & SelectionKey.OP_READ) != 0) && connected)
             newOps |= SelectionKey.OP_READ;
 
         if (((ops & Net.POLLCONN) != 0) &&
-            ((intOps & SelectionKey.OP_CONNECT) != 0) &&
-            ((state == ST_UNCONNECTED) || (state == ST_CONNECTIONPENDING))) {
+            ((intOps & SelectionKey.OP_CONNECT) != 0) && isConnectionPending())
             newOps |= SelectionKey.OP_CONNECT;
-        }
 
         if (((ops & Net.POLLOUT) != 0) &&
-            ((intOps & SelectionKey.OP_WRITE) != 0) &&
-            (state == ST_CONNECTED))
+            ((intOps & SelectionKey.OP_WRITE) != 0) && connected)
             newOps |= SelectionKey.OP_WRITE;
 
         sk.nioReadyOps(newOps);
--- a/src/java.base/share/classes/sun/security/provider/AuthPolicyFile.java	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1197 +0,0 @@
-/*
- * Copyright (c) 1999, 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;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.URL;
-import java.util.*;
-
-import java.security.AccessController;
-import java.security.CodeSource;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.Permission;
-import java.security.Permissions;
-import java.security.PermissionCollection;
-import java.security.Principal;
-import java.security.PrivilegedAction;
-import java.security.UnresolvedPermission;
-import java.security.Security;
-import java.security.cert.Certificate;
-import java.security.cert.X509Certificate;
-
-import javax.security.auth.Subject;
-import javax.security.auth.PrivateCredentialPermission;
-
-import sun.security.provider.PolicyParser.GrantEntry;
-import sun.security.provider.PolicyParser.PermissionEntry;
-import sun.security.provider.PolicyParser.PrincipalEntry;
-import sun.security.util.Debug;
-import sun.security.util.PolicyUtil;
-import sun.security.util.PropertyExpander;
-
-/**
- * See {@code com.sun.security.auth.PolicyFile} for the class description.
- * This class is necessary in order to support a default
- * {@code javax.security.auth.Policy} implementation on the compact1 and
- * compact2 profiles.
- *
- * @deprecated As of JDK&nbsp;1.4, replaced by
- *             {@code sun.security.provider.PolicyFile}.
- *             This class is entirely deprecated.
- */
-@Deprecated
-@SuppressWarnings("removal")
-public class AuthPolicyFile extends javax.security.auth.Policy {
-
-    static final ResourceBundle rb =
-        AccessController.doPrivileged(new PrivilegedAction<ResourceBundle>() {
-            @Override public ResourceBundle run() {
-                return (ResourceBundle.getBundle
-                        ("sun.security.util.AuthResources"));
-            }
-        });
-
-    private static final Debug debug = Debug.getInstance("policy",
-                                                         "\t[Auth Policy]");
-
-    private static final String AUTH_POLICY = "java.security.auth.policy";
-    private static final String SECURITY_MANAGER = "java.security.manager";
-    private static final String AUTH_POLICY_URL = "auth.policy.url.";
-
-    private Vector<PolicyEntry> policyEntries;
-    private Hashtable<Object, Object> aliasMapping;
-
-    private boolean initialized = false;
-
-    private boolean expandProperties = true;
-    private boolean ignoreIdentityScope = true;
-
-    // for use with the reflection API
-    private static final Class<?>[] PARAMS = { String.class, String.class};
-
-    /**
-     * Initializes the Policy object and reads the default policy
-     * configuration file(s) into the Policy object.
-     */
-    public AuthPolicyFile() {
-        // initialize Policy if either the AUTH_POLICY or
-        // SECURITY_MANAGER properties are set
-        String prop = System.getProperty(AUTH_POLICY);
-
-        if (prop == null) {
-            prop = System.getProperty(SECURITY_MANAGER);
-        }
-        if (prop != null) {
-            init();
-        }
-    }
-
-    private synchronized void init() {
-        if (initialized) {
-            return;
-        }
-
-        policyEntries = new Vector<PolicyEntry>();
-        aliasMapping = new Hashtable<Object, Object>(11);
-
-        initPolicyFile();
-        initialized = true;
-    }
-
-    @Override
-    public synchronized void refresh() {
-
-        java.lang.SecurityManager sm = System.getSecurityManager();
-        if (sm != null) {
-            sm.checkPermission(new javax.security.auth.AuthPermission
-                                ("refreshPolicy"));
-        }
-
-        // XXX
-        //
-        // 1)   if code instantiates PolicyFile directly, then it will need
-        //      all the permissions required for the PolicyFile initialization
-        // 2)   if code calls Policy.getPolicy, then it simply needs
-        //      AuthPermission(getPolicy), and the javax.security.auth.Policy
-        //      implementation instantiates PolicyFile in a doPrivileged block
-        // 3)   if after instantiating a Policy (either via #1 or #2),
-        //      code calls refresh, it simply needs
-        //      AuthPermission(refreshPolicy).  then PolicyFile wraps
-        //      the refresh in a doPrivileged block.
-        initialized = false;
-        AccessController.doPrivileged(new PrivilegedAction<Void>() {
-            @Override public Void run() {
-                init();
-                return null;
-            }
-        });
-    }
-
-    private KeyStore initKeyStore(URL policyUrl, String keyStoreName,
-                                  String keyStoreType) {
-        if (keyStoreName != null) {
-            try {
-                /*
-                 * location of keystore is specified as absolute URL in policy
-                 * file, or is relative to URL of policy file
-                 */
-                URL keyStoreUrl = null;
-                try {
-                    keyStoreUrl = new URL(keyStoreName);
-                    // absolute URL
-                } catch (java.net.MalformedURLException e) {
-                    // relative URL
-                    keyStoreUrl = new URL(policyUrl, keyStoreName);
-                }
-
-                if (debug != null) {
-                    debug.println("reading keystore"+keyStoreUrl);
-                }
-
-                InputStream inStream = new BufferedInputStream(
-                    PolicyUtil.getInputStream(keyStoreUrl));
-
-                KeyStore ks;
-                if (keyStoreType != null)
-                    ks = KeyStore.getInstance(keyStoreType);
-                else
-                    ks = KeyStore.getInstance(KeyStore.getDefaultType());
-                ks.load(inStream, null);
-                inStream.close();
-                return ks;
-            } catch (Exception e) {
-                // ignore, treat it like we have no keystore
-                if (debug != null) {
-                    debug.println("Debug info only. No keystore.");
-                    e.printStackTrace();
-                }
-                return null;
-            }
-        }
-        return null;
-    }
-
-    private void initPolicyFile() {
-
-        String prop = Security.getProperty("policy.expandProperties");
-        if (prop != null) {
-            expandProperties = prop.equalsIgnoreCase("true");
-        }
-
-        String iscp = Security.getProperty("policy.ignoreIdentityScope");
-        if (iscp != null) {
-            ignoreIdentityScope = iscp.equalsIgnoreCase("true");
-        }
-
-        String allowSys = Security.getProperty("policy.allowSystemProperty");
-        if (allowSys != null && allowSys.equalsIgnoreCase("true")) {
-            String extra_policy = System.getProperty(AUTH_POLICY);
-            if (extra_policy != null) {
-                boolean overrideAll = false;
-                if (extra_policy.startsWith("=")) {
-                    overrideAll = true;
-                    extra_policy = extra_policy.substring(1);
-                }
-                try {
-                    extra_policy = PropertyExpander.expand(extra_policy);
-                    URL policyURL;
-                    File policyFile = new File(extra_policy);
-                    if (policyFile.exists()) {
-                        policyURL =
-                            new URL("file:" + policyFile.getCanonicalPath());
-                    } else {
-                        policyURL = new URL(extra_policy);
-                    }
-                    if (debug != null) {
-                        debug.println("reading " + policyURL);
-                    }
-                    init(policyURL);
-                } catch (Exception e) {
-                    // ignore.
-                    if (debug != null) {
-                        debug.println("caught exception: " + e);
-                    }
-
-                }
-                if (overrideAll) {
-                    if (debug != null) {
-                        debug.println("overriding other policies!");
-                    }
-                    return;
-                }
-            }
-        }
-
-        int n = 1;
-        boolean loaded_one = false;
-        String policy_url;
-
-        while ((policy_url = Security.getProperty(AUTH_POLICY_URL+n)) != null) {
-            try {
-                policy_url = PropertyExpander.expand(policy_url).replace
-                                                (File.separatorChar, '/');
-                if (debug != null) {
-                    debug.println("reading " + policy_url);
-                }
-                init(new URL(policy_url));
-                loaded_one = true;
-            } catch (Exception e) {
-                if (debug != null) {
-                    debug.println("Debug info only. Error reading policy " + e);
-                    e.printStackTrace();
-                }
-                // ignore that policy
-            }
-            n++;
-        }
-
-        if (loaded_one == false) {
-            // do not load a static policy
-        }
-    }
-
-    /**
-     * Checks public key. If it is marked as trusted in
-     * the identity database, add it to the policy
-     * with the AllPermission.
-     */
-    private boolean checkForTrustedIdentity(final Certificate cert) {
-        return false;
-    }
-
-    /**
-     * Reads a policy configuration into the Policy object using a
-     * Reader object.
-     *
-     * @param policyFile the policy Reader object.
-     */
-    private void init(URL policy) {
-        PolicyParser pp = new PolicyParser(expandProperties);
-        try (InputStreamReader isr
-                = new InputStreamReader(PolicyUtil.getInputStream(policy))) {
-            pp.read(isr);
-            KeyStore keyStore = initKeyStore(policy, pp.getKeyStoreUrl(),
-                                             pp.getKeyStoreType());
-            Enumeration<GrantEntry> enum_ = pp.grantElements();
-            while (enum_.hasMoreElements()) {
-                GrantEntry ge = enum_.nextElement();
-                addGrantEntry(ge, keyStore);
-            }
-        } catch (PolicyParser.ParsingException pe) {
-            System.err.println(AUTH_POLICY +
-                               rb.getString(".error.parsing.") + policy);
-            System.err.println(AUTH_POLICY + rb.getString("COLON") +
-                               pe.getMessage());
-            if (debug != null) {
-                pe.printStackTrace();
-            }
-        } catch (Exception e) {
-            if (debug != null) {
-                debug.println("error parsing " + policy);
-                debug.println(e.toString());
-                e.printStackTrace();
-            }
-        }
-    }
-
-    /**
-     * Given a PermissionEntry, create a codeSource.
-     *
-     * @return null if signedBy alias is not recognized
-     */
-    CodeSource getCodeSource(GrantEntry ge, KeyStore keyStore)
-            throws java.net.MalformedURLException
-    {
-        Certificate[] certs = null;
-        if (ge.signedBy != null) {
-            certs = getCertificates(keyStore, ge.signedBy);
-            if (certs == null) {
-                // we don't have a key for this alias,
-                // just return
-                if (debug != null) {
-                    debug.println(" no certs for alias " +
-                                       ge.signedBy + ", ignoring.");
-                }
-                return null;
-            }
-        }
-
-        URL location;
-        if (ge.codeBase != null) {
-            location = new URL(ge.codeBase);
-        } else {
-            location = null;
-        }
-
-        if (ge.principals == null || ge.principals.size() == 0) {
-            return (canonicalizeCodebase
-                        (new CodeSource(location, certs),
-                        false));
-        } else {
-            return (canonicalizeCodebase
-                (new SubjectCodeSource(null, ge.principals, location, certs),
-                false));
-        }
-    }
-
-    /**
-     * Add one policy entry to the vector.
-     */
-    private void addGrantEntry(GrantEntry ge, KeyStore keyStore) {
-
-        if (debug != null) {
-            debug.println("Adding policy entry: ");
-            debug.println("  signedBy " + ge.signedBy);
-            debug.println("  codeBase " + ge.codeBase);
-            if (ge.principals != null) {
-                for (PrincipalEntry pppe : ge.principals) {
-                    debug.println("  " + pppe.getPrincipalClass() +
-                                        " " + pppe.getPrincipalName());
-                }
-            }
-            debug.println();
-        }
-
-        try {
-            CodeSource codesource = getCodeSource(ge, keyStore);
-            // skip if signedBy alias was unknown...
-            if (codesource == null) return;
-
-            PolicyEntry entry = new PolicyEntry(codesource);
-            Enumeration<PermissionEntry> enum_ = ge.permissionElements();
-            while (enum_.hasMoreElements()) {
-                PermissionEntry pe = enum_.nextElement();
-                try {
-                    // XXX special case PrivateCredentialPermission-SELF
-                    Permission perm;
-                    if (pe.permission.equals
-                        ("javax.security.auth.PrivateCredentialPermission") &&
-                        pe.name.endsWith(" self")) {
-                        perm = getInstance(pe.permission,
-                                         pe.name + " \"self\"",
-                                         pe.action);
-                    } else {
-                        perm = getInstance(pe.permission,
-                                         pe.name,
-                                         pe.action);
-                    }
-                    entry.add(perm);
-                    if (debug != null) {
-                        debug.println("  "+perm);
-                    }
-                } catch (ClassNotFoundException cnfe) {
-                    Certificate[] certs;
-                    if (pe.signedBy != null) {
-                        certs = getCertificates(keyStore, pe.signedBy);
-                    } else {
-                        certs = null;
-                    }
-
-                    // only add if we had no signer or we had
-                    // a signer and found the keys for it.
-                    if (certs != null || pe.signedBy == null) {
-                            Permission perm = new UnresolvedPermission(
-                                             pe.permission,
-                                             pe.name,
-                                             pe.action,
-                                             certs);
-                            entry.add(perm);
-                            if (debug != null) {
-                                debug.println("  "+perm);
-                            }
-                    }
-                } catch (java.lang.reflect.InvocationTargetException ite) {
-                    System.err.println
-                        (AUTH_POLICY +
-                        rb.getString(".error.adding.Permission.") +
-                        pe.permission +
-                        rb.getString("SPACE") +
-                        ite.getTargetException());
-                } catch (Exception e) {
-                    System.err.println
-                        (AUTH_POLICY +
-                        rb.getString(".error.adding.Permission.") +
-                        pe.permission +
-                        rb.getString("SPACE") +
-                        e);
-                }
-            }
-            policyEntries.addElement(entry);
-        } catch (Exception e) {
-            System.err.println
-                (AUTH_POLICY +
-                rb.getString(".error.adding.Entry.") +
-                ge +
-                rb.getString("SPACE") +
-                e);
-        }
-
-        if (debug != null) {
-            debug.println();
-        }
-    }
-
-    /**
-     * Returns a new Permission object of the given Type. The Permission is
-     * created by getting the
-     * Class object using the <code>Class.forName</code> method, and using
-     * the reflection API to invoke the (String name, String actions)
-     * constructor on the
-     * object.
-     *
-     * @param type the type of Permission being created.
-     * @param name the name of the Permission being created.
-     * @param actions the actions of the Permission being created.
-     *
-     * @exception  ClassNotFoundException  if the particular Permission
-     *             class could not be found.
-     *
-     * @exception  IllegalAccessException  if the class or initializer is
-     *               not accessible.
-     *
-     * @exception  InstantiationException  if getInstance tries to
-     *               instantiate an abstract class or an interface, or if the
-     *               instantiation fails for some other reason.
-     *
-     * @exception  NoSuchMethodException if the (String, String) constructor
-     *               is not found.
-     *
-     * @exception  InvocationTargetException if the underlying Permission
-     *               constructor throws an exception.
-     *
-     */
-    private static final Permission getInstance(String type,
-                                    String name,
-                                    String actions)
-        throws ClassNotFoundException,
-               InstantiationException,
-               IllegalAccessException,
-               NoSuchMethodException,
-               InvocationTargetException
-    {
-        //XXX we might want to keep a hash of created factories...
-        Class<?> pc = Class.forName(type);
-        Constructor<?> c = pc.getConstructor(PARAMS);
-        return (Permission) c.newInstance(new Object[] { name, actions });
-    }
-
-    /**
-     * Fetch all certs associated with this alias.
-     */
-    Certificate[] getCertificates(KeyStore keyStore, String aliases) {
-
-        Vector<Certificate> vcerts = null;
-
-        StringTokenizer st = new StringTokenizer(aliases, ",");
-        int n = 0;
-
-        while (st.hasMoreTokens()) {
-            String alias = st.nextToken().trim();
-            n++;
-            Certificate cert = null;
-            // See if this alias's cert has already been cached
-            cert = (Certificate) aliasMapping.get(alias);
-            if (cert == null && keyStore != null) {
-
-                try {
-                    cert = keyStore.getCertificate(alias);
-                } catch (KeyStoreException kse) {
-                    // never happens, because keystore has already been loaded
-                    // when we call this
-                }
-                if (cert != null) {
-                    aliasMapping.put(alias, cert);
-                    aliasMapping.put(cert, alias);
-                }
-            }
-
-            if (cert != null) {
-                if (vcerts == null) {
-                    vcerts = new Vector<Certificate>();
-                }
-                vcerts.addElement(cert);
-            }
-        }
-
-        // make sure n == vcerts.size, since we are doing a logical *and*
-        if (vcerts != null && n == vcerts.size()) {
-            Certificate[] certs = new Certificate[vcerts.size()];
-            vcerts.copyInto(certs);
-            return certs;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Enumerate all the entries in the global policy object.
-     * This method is used by policy admin tools.   The tools
-     * should use the Enumeration methods on the returned object
-     * to fetch the elements sequentially.
-     */
-    private final synchronized Enumeration<PolicyEntry> elements() {
-        return policyEntries.elements();
-    }
-
-    @Override
-    public PermissionCollection getPermissions(final Subject subject,
-                                               final CodeSource codesource) {
-
-        // 1)   if code instantiates PolicyFile directly, then it will need
-        //      all the permissions required for the PolicyFile initialization
-        // 2)   if code calls Policy.getPolicy, then it simply needs
-        //      AuthPermission(getPolicy), and the javax.security.auth.Policy
-        //      implementation instantiates PolicyFile in a doPrivileged block
-        // 3)   if after instantiating a Policy (either via #1 or #2),
-        //      code calls getPermissions, PolicyFile wraps the call
-        //      in a doPrivileged block.
-        return AccessController.doPrivileged
-            (new PrivilegedAction<PermissionCollection>() {
-            @Override public PermissionCollection run() {
-                SubjectCodeSource scs = new SubjectCodeSource(
-                    subject, null,
-                    codesource == null ? null : codesource.getLocation(),
-                    codesource == null ? null : codesource.getCertificates());
-                if (initialized) {
-                    return getPermissions(new Permissions(), scs);
-                } else {
-                    return new PolicyPermissions(AuthPolicyFile.this, scs);
-                }
-            }
-        });
-    }
-
-    /**
-     * Examines the global policy for the specified CodeSource, and
-     * creates a PermissionCollection object with
-     * the set of permissions for that principal's protection domain.
-     *
-     * @param CodeSource the codesource associated with the caller.
-     * This encapsulates the original location of the code (where the code
-     * came from) and the public key(s) of its signer.
-     *
-     * @return the set of permissions according to the policy.
-     */
-    PermissionCollection getPermissions(CodeSource codesource) {
-
-        if (initialized) {
-            return getPermissions(new Permissions(), codesource);
-        } else {
-            return new PolicyPermissions(this, codesource);
-        }
-    }
-
-    /**
-     * Examines the global policy for the specified CodeSource, and
-     * creates a PermissionCollection object with
-     * the set of permissions for that principal's protection domain.
-     *
-     * @param permissions the permissions to populate
-     * @param codesource the codesource associated with the caller.
-     * This encapsulates the original location of the code (where the code
-     * came from) and the public key(s) of its signer.
-     *
-     * @return the set of permissions according to the policy.
-     */
-    Permissions getPermissions(final Permissions perms,
-                               final CodeSource cs)
-    {
-        if (!initialized) {
-            init();
-        }
-
-        final CodeSource[] codesource = {null};
-
-        codesource[0] = canonicalizeCodebase(cs, true);
-
-        if (debug != null) {
-            debug.println("evaluate(" + codesource[0] + ")\n");
-        }
-
-        // needs to be in a begin/endPrivileged block because
-        // codesource.implies calls URL.equals which does an
-        // InetAddress lookup
-
-        for (int i = 0; i < policyEntries.size(); i++) {
-
-           PolicyEntry entry = policyEntries.elementAt(i);
-
-           if (debug != null) {
-                debug.println("PolicyFile CodeSource implies: " +
-                              entry.codesource.toString() + "\n\n" +
-                              "\t" + codesource[0].toString() + "\n\n");
-           }
-
-           if (entry.codesource.implies(codesource[0])) {
-               for (int j = 0; j < entry.permissions.size(); j++) {
-                    Permission p = entry.permissions.elementAt(j);
-                    if (debug != null) {
-                        debug.println("  granting " + p);
-                    }
-                    if (!addSelfPermissions(p, entry.codesource,
-                                            codesource[0], perms)) {
-                        // we could check for duplicates
-                        // before adding new permissions,
-                        // but the SubjectDomainCombiner
-                        // already checks for duplicates later
-                        perms.add(p);
-                    }
-                }
-            }
-        }
-
-        // now see if any of the keys are trusted ids.
-
-        if (!ignoreIdentityScope) {
-            Certificate[] certs = codesource[0].getCertificates();
-            if (certs != null) {
-                for (int k=0; k < certs.length; k++) {
-                    if (aliasMapping.get(certs[k]) == null &&
-                        checkForTrustedIdentity(certs[k])) {
-                        // checkForTrustedIdentity added it
-                        // to the policy for us. next time
-                        // around we'll find it. This time
-                        // around we need to add it.
-                        perms.add(new java.security.AllPermission());
-                    }
-                }
-            }
-        }
-        return perms;
-    }
-
-    /**
-     * Returns true if 'Self' permissions were added to the provided
-     * 'perms', and false otherwise.
-     *
-     * <p>
-     *
-     * @param p check to see if this Permission is a "SELF"
-     *                  PrivateCredentialPermission. <p>
-     *
-     * @param entryCs the codesource for the Policy entry.
-     *
-     * @param accCs the codesource for from the current AccessControlContext.
-     *
-     * @param perms the PermissionCollection where the individual
-     *                  PrivateCredentialPermissions will be added.
-     */
-    private boolean addSelfPermissions(final Permission p,
-                                       CodeSource entryCs,
-                                       CodeSource accCs,
-                                       Permissions perms) {
-
-        if (!(p instanceof PrivateCredentialPermission)) {
-            return false;
-        }
-
-        if (!(entryCs instanceof SubjectCodeSource)) {
-            return false;
-        }
-
-        PrivateCredentialPermission pcp = (PrivateCredentialPermission)p;
-        SubjectCodeSource scs = (SubjectCodeSource)entryCs;
-
-        // see if it is a SELF permission
-        String[][] pPrincipals = pcp.getPrincipals();
-        if (pPrincipals.length <= 0 ||
-            !pPrincipals[0][0].equalsIgnoreCase("self") ||
-            !pPrincipals[0][1].equalsIgnoreCase("self")) {
-
-            // regular PrivateCredentialPermission
-            return false;
-        } else {
-
-            // granted a SELF permission - create a
-            // PrivateCredentialPermission for each
-            // of the Policy entry's CodeSource Principals
-
-            if (scs.getPrincipals() == null) {
-                // XXX SubjectCodeSource has no Subject???
-                return true;
-            }
-
-            for (PrincipalEntry principal : scs.getPrincipals()) {
-
-                //      if the Policy entry's Principal does not contain a
-                //              WILDCARD for the Principal name, then a
-                //              new PrivateCredentialPermission is created
-                //              for the Principal listed in the Policy entry.
-                //      if the Policy entry's Principal contains a WILDCARD
-                //              for the Principal name, then a new
-                //              PrivateCredentialPermission is created
-                //              for each Principal associated with the Subject
-                //              in the current ACC.
-
-                String[][] principalInfo = getPrincipalInfo(principal, accCs);
-
-                for (int i = 0; i < principalInfo.length; i++) {
-
-                    // here's the new PrivateCredentialPermission
-
-                    PrivateCredentialPermission newPcp =
-                        new PrivateCredentialPermission
-                                (pcp.getCredentialClass() +
-                                        " " +
-                                        principalInfo[i][0] +
-                                        " " +
-                                        "\"" + principalInfo[i][1] + "\"",
-                                "read");
-
-                    if (debug != null) {
-                        debug.println("adding SELF permission: " +
-                                        newPcp.toString());
-                    }
-
-                    perms.add(newPcp);
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * return the principal class/name pair in the 2D array.
-     * array[x][y]:     x corresponds to the array length.
-     *                  if (y == 0), it's the principal class.
-     *                  if (y == 1), it's the principal name.
-     */
-    private String[][] getPrincipalInfo(PrincipalEntry principal,
-                                        final CodeSource accCs) {
-
-        // there are 3 possibilities:
-        // 1) the entry's Principal class and name are not wildcarded
-        // 2) the entry's Principal name is wildcarded only
-        // 3) the entry's Principal class and name are wildcarded
-
-        if (!principal.getPrincipalClass().equals
-                (PrincipalEntry.WILDCARD_CLASS) &&
-            !principal.getPrincipalName().equals
-                (PrincipalEntry.WILDCARD_NAME)) {
-
-            // build a PrivateCredentialPermission for the principal
-            // from the Policy entry
-            String[][] info = new String[1][2];
-            info[0][0] = principal.getPrincipalClass();
-            info[0][1] = principal.getPrincipalName();
-            return info;
-
-        } else if (!principal.getPrincipalClass().equals
-                (PrincipalEntry.WILDCARD_CLASS) &&
-            principal.getPrincipalName().equals
-                (PrincipalEntry.WILDCARD_NAME)) {
-
-            // build a PrivateCredentialPermission for all
-            // the Subject's principals that are instances of principalClass
-
-            // the accCs is guaranteed to be a SubjectCodeSource
-            // because the earlier CodeSource.implies succeeded
-            SubjectCodeSource scs = (SubjectCodeSource)accCs;
-
-            Set<? extends Principal> principalSet = null;
-            try {
-                // principal.principalClass should extend Principal
-                // If it doesn't, we should stop here with a ClassCastException.
-                @SuppressWarnings("unchecked")
-                Class<? extends Principal> pClass = (Class<? extends Principal>)
-                        Class.forName(principal.getPrincipalClass(), false,
-                                      ClassLoader.getSystemClassLoader());
-                principalSet = scs.getSubject().getPrincipals(pClass);
-            } catch (Exception e) {
-                if (debug != null) {
-                    debug.println("problem finding Principal Class " +
-                                  "when expanding SELF permission: " +
-                                  e.toString());
-                }
-            }
-
-            if (principalSet == null) {
-                // error
-                return new String[0][0];
-            }
-
-            String[][] info = new String[principalSet.size()][2];
-
-            int i = 0;
-            for (Principal p : principalSet) {
-                info[i][0] = p.getClass().getName();
-                info[i][1] = p.getName();
-                i++;
-            }
-            return info;
-
-        } else {
-
-            // build a PrivateCredentialPermission for every
-            // one of the current Subject's principals
-
-            // the accCs is guaranteed to be a SubjectCodeSource
-            // because the earlier CodeSource.implies succeeded
-            SubjectCodeSource scs = (SubjectCodeSource)accCs;
-            Set<Principal> principalSet = scs.getSubject().getPrincipals();
-
-            String[][] info = new String[principalSet.size()][2];
-
-            int i = 0;
-            for (Principal p : principalSet) {
-                info[i][0] = p.getClass().getName();
-                info[i][1] = p.getName();
-                i++;
-            }
-            return info;
-        }
-    }
-
-    /*
-     * Returns the signer certificates from the list of certificates associated
-     * with the given code source.
-     *
-     * The signer certificates are those certificates that were used to verify
-     * signed code originating from the codesource location.
-     *
-     * This method assumes that in the given code source, each signer
-     * certificate is followed by its supporting certificate chain
-     * (which may be empty), and that the signer certificate and its
-     * supporting certificate chain are ordered bottom-to-top (i.e., with the
-     * signer certificate first and the (root) certificate authority last).
-     */
-    Certificate[] getSignerCertificates(CodeSource cs) {
-        Certificate[] certs = null;
-        if ((certs = cs.getCertificates()) == null) {
-            return null;
-        }
-        for (int i = 0; i < certs.length; i++) {
-            if (!(certs[i] instanceof X509Certificate))
-                return cs.getCertificates();
-        }
-
-        // Do we have to do anything?
-        int i = 0;
-        int count = 0;
-        while (i < certs.length) {
-            count++;
-            while (((i+1) < certs.length)
-                   && ((X509Certificate)certs[i]).getIssuerDN().equals(
-                           ((X509Certificate)certs[i+1]).getSubjectDN())) {
-                i++;
-            }
-            i++;
-        }
-        if (count == certs.length) {
-            // Done
-            return certs;
-        }
-
-        ArrayList<Certificate> userCertList = new ArrayList<>();
-        i = 0;
-        while (i < certs.length) {
-            userCertList.add(certs[i]);
-            while (((i+1) < certs.length)
-                   && ((X509Certificate)certs[i]).getIssuerDN().equals(
-                           ((X509Certificate)certs[i+1]).getSubjectDN())) {
-                i++;
-            }
-            i++;
-        }
-        Certificate[] userCerts = new Certificate[userCertList.size()];
-        userCertList.toArray(userCerts);
-        return userCerts;
-    }
-
-    private CodeSource canonicalizeCodebase(CodeSource cs,
-                                            boolean extractSignerCerts) {
-        CodeSource canonCs = cs;
-        if (cs.getLocation() != null &&
-            cs.getLocation().getProtocol().equalsIgnoreCase("file")) {
-            try {
-                String path = cs.getLocation().getFile().replace
-                                                        ('/',
-                                                        File.separatorChar);
-                URL csUrl = null;
-                if (path.endsWith("*")) {
-                    // remove trailing '*' because it causes canonicalization
-                    // to fail on win32
-                    path = path.substring(0, path.length()-1);
-                    boolean appendFileSep = false;
-                    if (path.endsWith(File.separator)) {
-                        appendFileSep = true;
-                    }
-                    if (path.equals("")) {
-                        path = System.getProperty("user.dir");
-                    }
-                    File f = new File(path);
-                    path = f.getCanonicalPath();
-                    StringBuilder sb = new StringBuilder(path);
-                    // reappend '*' to canonicalized filename (note that
-                    // canonicalization may have removed trailing file
-                    // separator, so we have to check for that, too)
-                    if (!path.endsWith(File.separator) &&
-                        (appendFileSep || f.isDirectory())) {
-                        sb.append(File.separatorChar);
-                    }
-                    sb.append('*');
-                    path = sb.toString();
-                } else {
-                    path = new File(path).getCanonicalPath();
-                }
-                csUrl = new File(path).toURL();
-
-                if (cs instanceof SubjectCodeSource) {
-                    SubjectCodeSource scs = (SubjectCodeSource)cs;
-                    if (extractSignerCerts) {
-                        canonCs = new SubjectCodeSource(scs.getSubject(),
-                                                        scs.getPrincipals(),
-                                                        csUrl,
-                                                        getSignerCertificates(scs));
-                    } else {
-                        canonCs = new SubjectCodeSource(scs.getSubject(),
-                                                        scs.getPrincipals(),
-                                                        csUrl,
-                                                        scs.getCertificates());
-                    }
-                } else {
-                    if (extractSignerCerts) {
-                        canonCs = new CodeSource(csUrl,
-                                                 getSignerCertificates(cs));
-                    } else {
-                        canonCs = new CodeSource(csUrl,
-                                                 cs.getCertificates());
-                    }
-                }
-            } catch (IOException ioe) {
-                // leave codesource as it is, unless we have to extract its
-                // signer certificates
-                if (extractSignerCerts) {
-                    if (!(cs instanceof SubjectCodeSource)) {
-                        canonCs = new CodeSource(cs.getLocation(),
-                                                getSignerCertificates(cs));
-                    } else {
-                        SubjectCodeSource scs = (SubjectCodeSource)cs;
-                        canonCs = new SubjectCodeSource(scs.getSubject(),
-                                                scs.getPrincipals(),
-                                                scs.getLocation(),
-                                                getSignerCertificates(scs));
-                    }
-                }
-            }
-        } else {
-            if (extractSignerCerts) {
-                if (!(cs instanceof SubjectCodeSource)) {
-                    canonCs = new CodeSource(cs.getLocation(),
-                                        getSignerCertificates(cs));
-                } else {
-                    SubjectCodeSource scs = (SubjectCodeSource)cs;
-                    canonCs = new SubjectCodeSource(scs.getSubject(),
-                                        scs.getPrincipals(),
-                                        scs.getLocation(),
-                                        getSignerCertificates(scs));
-                }
-            }
-        }
-        return canonCs;
-    }
-
-    /**
-     * Each entry in the policy configuration file is represented by a
-     * PolicyEntry object.  <p>
-     *
-     * A PolicyEntry is a (CodeSource,Permission) pair.  The
-     * CodeSource contains the (URL, PublicKey) that together identify
-     * where the Java bytecodes come from and who (if anyone) signed
-     * them.  The URL could refer to localhost.  The URL could also be
-     * null, meaning that this policy entry is given to all comers, as
-     * long as they match the signer field.  The signer could be null,
-     * meaning the code is not signed. <p>
-     *
-     * The Permission contains the (Type, Name, Action) triplet. <p>
-     *
-     * For now, the Policy object retrieves the public key from the
-     * X.509 certificate on disk that corresponds to the signedBy
-     * alias specified in the Policy config file.  For reasons of
-     * efficiency, the Policy object keeps a hashtable of certs already
-     * read in.  This could be replaced by a secure internal key
-     * store.
-     *
-     * <p>
-     * For example, the entry
-     * <pre>
-     *          permission java.io.File "/tmp", "read,write",
-     *          signedBy "Duke";
-     * </pre>
-     * is represented internally
-     * <pre>
-     *
-     * FilePermission f = new FilePermission("/tmp", "read,write");
-     * PublicKey p = publickeys.get("Duke");
-     * URL u = InetAddress.getLocalHost();
-     * CodeBase c = new CodeBase( p, u );
-     * pe = new PolicyEntry(f, c);
-     * </pre>
-     *
-     * @author Marianne Mueller
-     * @author Roland Schemers
-     * @see java.security.CodeSource
-     * @see java.security.Policy
-     * @see java.security.Permissions
-     * @see java.security.ProtectionDomain
-     */
-    private static class PolicyEntry {
-
-        CodeSource codesource;
-        Vector<Permission> permissions;
-
-        /**
-         * Given a Permission and a CodeSource, create a policy entry.
-         *
-         * XXX Decide if/how to add validity fields and "purpose" fields to
-         * XXX policy entries
-         *
-         * @param cs the CodeSource, which encapsulates the URL and the public
-         *        key attributes from the policy config file. Validity checks
-         *        are performed on the public key before PolicyEntry is called.
-         *
-         */
-        PolicyEntry(CodeSource cs) {
-            this.codesource = cs;
-            this.permissions = new Vector<Permission>();
-        }
-
-        /**
-         * add a Permission object to this entry.
-         */
-        void add(Permission p) {
-            permissions.addElement(p);
-        }
-
-        /**
-         * Return the CodeSource for this policy entry
-         */
-        CodeSource getCodeSource() {
-            return this.codesource;
-        }
-
-        @Override
-        public String toString(){
-            StringBuilder sb = new StringBuilder();
-            sb.append(rb.getString("LPARAM"));
-            sb.append(getCodeSource());
-            sb.append("\n");
-            for (int j = 0; j < permissions.size(); j++) {
-                Permission p = permissions.elementAt(j);
-                sb.append(rb.getString("SPACE"));
-                sb.append(rb.getString("SPACE"));
-                sb.append(p);
-                sb.append(rb.getString("NEWLINE"));
-            }
-            sb.append(rb.getString("RPARAM"));
-            sb.append(rb.getString("NEWLINE"));
-            return sb.toString();
-        }
-
-    }
-}
-
-@SuppressWarnings("deprecation")
-class PolicyPermissions extends PermissionCollection {
-
-    private static final long serialVersionUID = -1954188373270545523L;
-
-    private CodeSource codesource;
-    private Permissions perms;
-    private AuthPolicyFile policy;
-    private boolean notInit; // have we pulled in the policy permissions yet?
-    private Vector<Permission> additionalPerms;
-
-    PolicyPermissions(AuthPolicyFile policy,
-                      CodeSource codesource)
-    {
-        this.codesource = codesource;
-        this.policy = policy;
-        this.perms = null;
-        this.notInit = true;
-        this.additionalPerms = null;
-    }
-
-    @Override
-    public void add(Permission permission) {
-        if (isReadOnly())
-            throw new SecurityException
-            (AuthPolicyFile.rb.getString
-            ("attempt.to.add.a.Permission.to.a.readonly.PermissionCollection"));
-
-        if (perms == null) {
-            if (additionalPerms == null) {
-                additionalPerms = new Vector<Permission>();
-            }
-            additionalPerms.add(permission);
-        } else {
-            perms.add(permission);
-        }
-    }
-
-    private synchronized void init() {
-        if (notInit) {
-            if (perms == null) {
-                perms = new Permissions();
-            }
-            if (additionalPerms != null) {
-                Enumeration<Permission> e = additionalPerms.elements();
-                while (e.hasMoreElements()) {
-                    perms.add(e.nextElement());
-                }
-                additionalPerms = null;
-            }
-            policy.getPermissions(perms, codesource);
-            notInit = false;
-        }
-    }
-
-    @Override
-    public boolean implies(Permission permission) {
-        if (notInit) {
-            init();
-        }
-        return perms.implies(permission);
-    }
-
-    @Override
-    public Enumeration<Permission> elements() {
-        if (notInit) {
-            init();
-        }
-        return perms.elements();
-    }
-
-    @Override
-    public String toString() {
-        if (notInit) {
-            init();
-        }
-        return perms.toString();
-    }
-}
--- a/src/java.base/share/classes/sun/security/provider/PolicyFile.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/sun/security/provider/PolicyFile.java	Thu Mar 08 10:18:28 2018 -0800
@@ -51,13 +51,6 @@
  * This class represents a default Policy implementation for the
  * "JavaPolicy" type.
  *
- * Note:
- * For backward compatibility with JAAS 1.0 it loads
- * both java.auth.policy and java.policy. However, it
- * is recommended that java.auth.policy not be used
- * and that java.policy contain all grant entries including
- * those that contain principal-based entries.
- *
  * <p> This object stores the policy for the entire Java runtime,
  * and is the amalgamation of multiple static policy
  * configurations that resides in files.
@@ -75,17 +68,13 @@
  *   are needed in order for the runtime to operate correctly.
  * <li>
  *   Loop through the <code>java.security.Security</code> properties,
- *   <i>policy.url.1</i>, <i>policy.url.2</i>, ...,
- *   <i>policy.url.X</i>" and
- *   <i>auth.policy.url.1</i>, <i>auth.policy.url.2</i>, ...,
- *   <i>auth.policy.url.X</i>".  These properties are set
+ *   and <i>policy.url.1</i>, <i>policy.url.2</i>, ...,
+ *   <i>policy.url.X</i>".  These properties are set
  *   in the Java security properties file, which is located in the file named
  *   &lt;JAVA_HOME&gt;/conf/security/java.security.
  *   Each property value specifies a <code>URL</code> pointing to a
  *   policy file to be loaded.  Read in and load each policy.
  *
- *   <i>auth.policy.url</i> is supported only for backward compatibility.
- *
  *   If none of these could be loaded, use a builtin static policy
  *   equivalent to the conf/security/java.policy file.
  *
@@ -98,21 +87,7 @@
  *   <i>policy.allowSystemProperty</i> is set to <i>true</i>),
  *   also load that policy.
  *
- * <li>
- *   The <code>java.lang.System</code> property
- *   <i>java.security.auth.policy</i> may also be set to a
- *   <code>URL</code> pointing to another policy file
- *   (which is the case when a user uses the -D switch at runtime).
- *   If this property is defined, and its use is allowed by the
- *   security property file (the Security property,
- *   <i>policy.allowSystemProperty</i> is set to <i>true</i>),
- *   also load that policy.
- *
- *   <i>java.security.auth.policy</i> is supported only for backward
- *   compatibility.
- *
- *   If the <i>java.security.policy</i> or
- *   <i>java.security.auth.policy</i> property is defined using
+ *   If the <i>java.security.policy</i> property is defined using
  *   "==" (rather than "="), then load the specified policy file and ignore
  *   all other configured policies. Note, that the default.policy file is
  *   also loaded, as specified in the first step of the algorithm above.
@@ -269,8 +244,6 @@
                         "javax.security.auth.x500.X500Principal";
     private static final String POLICY = "java.security.policy";
     private static final String POLICY_URL = "policy.url.";
-    private static final String AUTH_POLICY = "java.security.auth.policy";
-    private static final String AUTH_POLICY_URL = "auth.policy.url.";
 
     private static final int DEFAULT_CACHE_SIZE = 1;
 
@@ -411,14 +384,6 @@
             /**
              * Caller did not specify URL via Policy.getInstance.
              * Read from URLs listed in the java.security properties file.
-             *
-             * We call initPolicyFile with POLICY, POLICY_URL and then
-             * call it with AUTH_POLICY and AUTH_POLICY_URL.
-             * So first we will process the JAVA standard policy
-             * and then process the JAVA AUTH Policy.
-             * This is for backward compatibility as well as to handle
-             * cases where the user has a single unified policyfile
-             * with both java policy entries and auth entries
              */
 
             boolean loaded_one = initPolicyFile(POLICY, POLICY_URL, newInfo);
@@ -428,8 +393,6 @@
                 // use static policy if all else fails
                 initStaticPolicy(newInfo);
             }
-
-            initPolicyFile(AUTH_POLICY, AUTH_POLICY_URL, newInfo);
         }
     }
 
--- a/src/java.base/share/classes/sun/security/util/Resources.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/share/classes/sun/security/util/Resources.java	Thu Mar 08 10:18:28 2018 -0800
@@ -150,11 +150,6 @@
         // sun.security.pkcs11.SunPKCS11
         {"PKCS11.Token.providerName.Password.",
                 "PKCS11 Token [{0}] Password: "},
-
-        /* --- DEPRECATED --- */
-        // javax.security.auth.Policy
-        {"unable.to.instantiate.Subject.based.policy",
-                "unable to instantiate Subject-based policy"}
     };
 
 
--- a/src/java.base/unix/native/libnio/ch/Net.c	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/unix/native/libnio/ch/Net.c	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -293,8 +293,7 @@
     int sa_len = 0;
     int rv;
 
-    if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len,
-                                  preferIPv6) != 0) {
+    if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len, preferIPv6) != 0) {
         return IOS_THROWN;
     }
 
@@ -761,11 +760,11 @@
             break;
 #endif
         case ECONNREFUSED:
+        case ETIMEDOUT:
+        case ENOTCONN:
             xn = JNU_JAVANETPKG "ConnectException";
             break;
-        case ETIMEDOUT:
-            xn = JNU_JAVANETPKG "ConnectException";
-            break;
+
         case EHOSTUNREACH:
             xn = JNU_JAVANETPKG "NoRouteToHostException";
             break;
--- a/src/java.base/unix/native/libnio/ch/SocketChannelImpl.c	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/unix/native/libnio/ch/SocketChannelImpl.c	Thu Mar 08 10:18:28 2018 -0800
@@ -59,23 +59,29 @@
     poller.events = POLLOUT;
     poller.revents = 0;
     result = poll(&poller, 1, block ? -1 : 0);
+
     if (result < 0) {
-        JNU_ThrowIOExceptionWithLastError(env, "Poll failed");
-        return IOS_THROWN;
+        if (errno == EINTR) {
+            return IOS_INTERRUPTED;
+        } else {
+            JNU_ThrowIOExceptionWithLastError(env, "poll failed");
+            return IOS_THROWN;
+        }
     }
     if (!block && (result == 0))
-       return IOS_UNAVAILABLE;
+        return IOS_UNAVAILABLE;
 
-    if (poller.revents) {
+    if (result > 0) {
         errno = 0;
         result = getsockopt(fd, SOL_SOCKET, SO_ERROR, &error, &n);
         if (result < 0) {
-            handleSocketError(env, errno);
-            return JNI_FALSE;
+            return handleSocketError(env, errno);
         } else if (error) {
-            handleSocketError(env, error);
-            return JNI_FALSE;
+            return handleSocketError(env, error);
+        } else if ((poller.revents & POLLHUP) != 0) {
+            return handleSocketError(env, ENOTCONN);
         }
+        // connected
         return 1;
     }
     return 0;
--- a/src/java.base/windows/native/libnet/NetworkInterface_winXP.c	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/windows/native/libnet/NetworkInterface_winXP.c	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,14 +39,15 @@
 #ifdef DEBUG
 void printnif (netif *nif) {
 #ifdef _WIN64
-        printf ("nif:0x%I64x name:%s\n", nif,nif->name);
+        printf ("nif:0x%I64x name:%s\n", (UINT_PTR)nif, nif->name);
 #else
-        printf ("nif:0x%x name:%s\n", nif,nif->name);
+        printf ("nif:0x%x name:%s\n", nif, nif->name);
 #endif
         if (nif->dNameIsUnicode) {
-            printf ("dName:%S index:%d ", nif->displayName,nif->index);
+            printf ("dName:%S index:%d ", (unsigned short *)nif->displayName,
+                nif->index);
         } else {
-            printf ("dName:%s index:%d ", nif->displayName,nif->index);
+            printf ("dName:%s index:%d ", nif->displayName, nif->index);
         }
         printf ("naddrs:%d\n", nif->naddrs);
 }
--- a/src/java.base/windows/native/libnio/ch/SocketChannelImpl.c	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.base/windows/native/libnio/ch/SocketChannelImpl.c	Thu Mar 08 10:18:28 2018 -0800
@@ -58,9 +58,7 @@
                                                jobject fdo, jboolean block)
 {
     int optError = 0;
-    int lastError = 0;
-    int result = 0;
-    int retry = 0;
+    int result;
     int n = sizeof(int);
     jint fd = fdval(env, fdo);
     fd_set wr, ex;
@@ -73,64 +71,33 @@
 
     result = select(fd+1, 0, &wr, &ex, block ? NULL : &t);
 
-    /* save last winsock error */
-    if (result == SOCKET_ERROR) {
-        lastError = WSAGetLastError();
-    }
-
-    if (block) { /* must configure socket back to blocking state */
-        u_long argp = 0;
-        int r = ioctlsocket(fd, FIONBIO, &argp);
-        if (r == SOCKET_ERROR) {
-            handleSocketError(env, WSAGetLastError());
-        }
-    }
-
     if (result == 0) {  /* timeout */
         return block ? 0 : IOS_UNAVAILABLE;
     } else {
-        if (result == SOCKET_ERROR)     { /* select failed */
-            handleSocketError(env, lastError);
+        if (result == SOCKET_ERROR) { /* select failed */
+            handleSocketError(env, WSAGetLastError());
             return IOS_THROWN;
         }
     }
 
-    /*
-     * Socket is writable or error occurred. On some Windows editions
-     * the socket will appear writable when the connect fails so we
-     * check for error rather than writable.
-     */
-    if (!FD_ISSET(fd, &ex)) {
-        return 1;               /* connection established */
+    // connection established if writable and no error to check
+    if (FD_ISSET(fd, &wr) && !FD_ISSET(fd, &ex)) {
+        return 1;
     }
 
-    /*
-     * A getsockopt( SO_ERROR ) may indicate success on NT4 even
-     * though the connection has failed. The workaround is to allow
-     * winsock to be scheduled and this is done via by yielding.
-     * As the yield approach is problematic in heavy load situations
-     * we attempt up to 3 times to get the failure reason.
-     */
-    for (retry=0; retry<3; retry++) {
-        result = getsockopt((SOCKET)fd,
-                            SOL_SOCKET,
-                            SO_ERROR,
-                            (char *)&optError,
-                            &n);
-        if (result == SOCKET_ERROR) {
-            int lastError = WSAGetLastError();
-            if (lastError == WSAEINPROGRESS) {
-                return IOS_UNAVAILABLE;
-            }
-            NET_ThrowNew(env, lastError, "getsockopt");
-            return IOS_THROWN;
+    result = getsockopt((SOCKET)fd,
+                        SOL_SOCKET,
+                        SO_ERROR,
+                        (char *)&optError,
+                        &n);
+    if (result == SOCKET_ERROR) {
+        int lastError = WSAGetLastError();
+        if (lastError == WSAEINPROGRESS) {
+            return IOS_UNAVAILABLE;
         }
-        if (optError) {
-            break;
-        }
-        Sleep(0);
+        NET_ThrowNew(env, lastError, "getsockopt");
+        return IOS_THROWN;
     }
-
     if (optError != NO_ERROR) {
         handleSocketError(env, optError);
         return IOS_THROWN;
--- a/src/java.prefs/windows/classes/java/util/prefs/WindowsPreferences.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.prefs/windows/classes/java/util/prefs/WindowsPreferences.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -172,22 +172,22 @@
     /**
      * Java wrapper for Windows registry API RegOpenKey()
      */
-    private static native int[] WindowsRegOpenKey(int hKey, byte[] subKey,
-                                                  int securityMask);
+    private static native long[] WindowsRegOpenKey(long hKey, byte[] subKey,
+                                                   int securityMask);
     /**
      * Retries RegOpenKey() MAX_ATTEMPTS times before giving up.
      */
-    private static int[] WindowsRegOpenKey1(int hKey, byte[] subKey,
-                                            int securityMask) {
-        int[] result = WindowsRegOpenKey(hKey, subKey, securityMask);
+    private static long[] WindowsRegOpenKey1(long hKey, byte[] subKey,
+                                             int securityMask) {
+        long[] result = WindowsRegOpenKey(hKey, subKey, securityMask);
         if (result[ERROR_CODE] == ERROR_SUCCESS) {
             return result;
         } else if (result[ERROR_CODE] == ERROR_FILE_NOT_FOUND) {
             logger().warning("Trying to recreate Windows registry node " +
             byteArrayToString(subKey) + " at root 0x" +
-            Integer.toHexString(hKey) + ".");
+            Long.toHexString(hKey) + ".");
             // Try recreation
-            int handle = WindowsRegCreateKeyEx(hKey, subKey)[NATIVE_HANDLE];
+            long handle = WindowsRegCreateKeyEx(hKey, subKey)[NATIVE_HANDLE];
             WindowsRegCloseKey(handle);
             return WindowsRegOpenKey(hKey, subKey, securityMask);
         } else if (result[ERROR_CODE] != ERROR_ACCESS_DENIED) {
@@ -211,18 +211,18 @@
      /**
      * Java wrapper for Windows registry API RegCloseKey()
      */
-    private static native int WindowsRegCloseKey(int hKey);
+    private static native int WindowsRegCloseKey(long hKey);
 
     /**
      * Java wrapper for Windows registry API RegCreateKeyEx()
      */
-    private static native int[] WindowsRegCreateKeyEx(int hKey, byte[] subKey);
+    private static native long[] WindowsRegCreateKeyEx(long hKey, byte[] subKey);
 
     /**
      * Retries RegCreateKeyEx() MAX_ATTEMPTS times before giving up.
      */
-    private static int[] WindowsRegCreateKeyEx1(int hKey, byte[] subKey) {
-        int[] result = WindowsRegCreateKeyEx(hKey, subKey);
+    private static long[] WindowsRegCreateKeyEx1(long hKey, byte[] subKey) {
+        long[] result = WindowsRegCreateKeyEx(hKey, subKey);
         if (result[ERROR_CODE] == ERROR_SUCCESS) {
             return result;
         } else {
@@ -245,17 +245,17 @@
     /**
      * Java wrapper for Windows registry API RegDeleteKey()
      */
-    private static native int WindowsRegDeleteKey(int hKey, byte[] subKey);
+    private static native int WindowsRegDeleteKey(long hKey, byte[] subKey);
 
     /**
      * Java wrapper for Windows registry API RegFlushKey()
      */
-    private static native int WindowsRegFlushKey(int hKey);
+    private static native int WindowsRegFlushKey(long hKey);
 
     /**
      * Retries RegFlushKey() MAX_ATTEMPTS times before giving up.
      */
-    private static int WindowsRegFlushKey1(int hKey) {
+    private static int WindowsRegFlushKey1(long hKey) {
         int result = WindowsRegFlushKey(hKey);
         if (result == ERROR_SUCCESS) {
             return result;
@@ -280,17 +280,17 @@
     /**
      * Java wrapper for Windows registry API RegQueryValueEx()
      */
-    private static native byte[] WindowsRegQueryValueEx(int hKey,
+    private static native byte[] WindowsRegQueryValueEx(long hKey,
                                                         byte[] valueName);
     /**
      * Java wrapper for Windows registry API RegSetValueEx()
      */
-    private static native int WindowsRegSetValueEx(int hKey, byte[] valueName,
+    private static native int WindowsRegSetValueEx(long hKey, byte[] valueName,
                                                    byte[] value);
     /**
      * Retries RegSetValueEx() MAX_ATTEMPTS times before giving up.
      */
-    private static int WindowsRegSetValueEx1(int hKey, byte[] valueName,
+    private static int WindowsRegSetValueEx1(long hKey, byte[] valueName,
                                              byte[] value) {
         int result = WindowsRegSetValueEx(hKey, valueName, value);
         if (result == ERROR_SUCCESS) {
@@ -316,18 +316,18 @@
     /**
      * Java wrapper for Windows registry API RegDeleteValue()
      */
-    private static native int WindowsRegDeleteValue(int hKey, byte[] valueName);
+    private static native int WindowsRegDeleteValue(long hKey, byte[] valueName);
 
     /**
      * Java wrapper for Windows registry API RegQueryInfoKey()
      */
-    private static native int[] WindowsRegQueryInfoKey(int hKey);
+    private static native long[] WindowsRegQueryInfoKey(long hKey);
 
     /**
      * Retries RegQueryInfoKey() MAX_ATTEMPTS times before giving up.
      */
-    private static int[] WindowsRegQueryInfoKey1(int hKey) {
-        int[] result = WindowsRegQueryInfoKey(hKey);
+    private static long[] WindowsRegQueryInfoKey1(long hKey) {
+        long[] result = WindowsRegQueryInfoKey(hKey);
         if (result[ERROR_CODE] == ERROR_SUCCESS) {
             return result;
         } else {
@@ -351,13 +351,13 @@
     /**
      * Java wrapper for Windows registry API RegEnumKeyEx()
      */
-    private static native byte[] WindowsRegEnumKeyEx(int hKey, int subKeyIndex,
+    private static native byte[] WindowsRegEnumKeyEx(long hKey, int subKeyIndex,
                                                      int maxKeyLength);
 
     /**
      * Retries RegEnumKeyEx() MAX_ATTEMPTS times before giving up.
      */
-    private static byte[] WindowsRegEnumKeyEx1(int hKey, int subKeyIndex,
+    private static byte[] WindowsRegEnumKeyEx1(long hKey, int subKeyIndex,
                                                int maxKeyLength) {
         byte[] result = WindowsRegEnumKeyEx(hKey, subKeyIndex, maxKeyLength);
         if (result != null) {
@@ -383,12 +383,12 @@
     /**
      * Java wrapper for Windows registry API RegEnumValue()
      */
-    private static native byte[] WindowsRegEnumValue(int hKey, int valueIndex,
+    private static native byte[] WindowsRegEnumValue(long hKey, int valueIndex,
                                                      int maxValueNameLength);
     /**
      * Retries RegEnumValueEx() MAX_ATTEMPTS times before giving up.
      */
-    private static byte[] WindowsRegEnumValue1(int hKey, int valueIndex,
+    private static byte[] WindowsRegEnumValue1(long hKey, int valueIndex,
                                                int maxValueNameLength) {
         byte[] result = WindowsRegEnumValue(hKey, valueIndex,
                                             maxValueNameLength);
@@ -421,18 +421,18 @@
      */
     private WindowsPreferences(WindowsPreferences parent, String name) {
         super(parent, name);
-        int parentNativeHandle = parent.openKey(KEY_CREATE_SUB_KEY, KEY_READ);
+        long parentNativeHandle = parent.openKey(KEY_CREATE_SUB_KEY, KEY_READ);
         if (parentNativeHandle == NULL_NATIVE_HANDLE) {
             // if here, openKey failed and logged
             isBackingStoreAvailable = false;
             return;
         }
-        int[] result =
+        long[] result =
                WindowsRegCreateKeyEx1(parentNativeHandle, toWindowsName(name));
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
             logger().warning("Could not create windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
-                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    " at root 0x" + Long.toHexString(rootNativeHandle()) +
                     ". Windows RegCreateKeyEx(...) returned error code " +
                     result[ERROR_CODE] + ".");
             isBackingStoreAvailable = false;
@@ -451,14 +451,14 @@
      * @param rootNativeHandle Native handle to one of Windows top level keys.
      * @param rootDirectory Path to root directory, as a byte-encoded string.
      */
-    private  WindowsPreferences(int rootNativeHandle, byte[] rootDirectory) {
+    private  WindowsPreferences(long rootNativeHandle, byte[] rootDirectory) {
         super(null, "");
-        int[] result =
+        long[] result =
                 WindowsRegCreateKeyEx1(rootNativeHandle, rootDirectory);
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
             logger().warning("Could not open/create prefs root node " +
                     byteArrayToString(windowsAbsolutePath()) +
-                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    " at root 0x" + Long.toHexString(rootNativeHandle()) +
                     ". Windows RegCreateKeyEx(...) returned error code " +
                     result[ERROR_CODE] + ".");
             isBackingStoreAvailable = false;
@@ -497,7 +497,7 @@
      * @see #openKey(int, byte[], int)
      * @see #closeKey(int)
      */
-    private int openKey(int securityMask) {
+    private long openKey(int securityMask) {
         return openKey(securityMask, securityMask);
     }
 
@@ -511,7 +511,7 @@
      * @see #openKey(int, byte[], int)
      * @see #closeKey(int)
      */
-    private int openKey(int mask1, int mask2) {
+    private long openKey(int mask1, int mask2) {
         return openKey(windowsAbsolutePath(), mask1,  mask2);
     }
 
@@ -527,12 +527,12 @@
      * @see #openKey(int, byte[],int)
      * @see #closeKey(int)
      */
-    private int openKey(byte[] windowsAbsolutePath, int mask1, int mask2) {
+    private long openKey(byte[] windowsAbsolutePath, int mask1, int mask2) {
         /*  Check if key's path is short enough be opened at once
             otherwise use a path-splitting procedure */
         if (windowsAbsolutePath.length <= MAX_WINDOWS_PATH_LENGTH + 1) {
-            int[] result = WindowsRegOpenKey1(rootNativeHandle(),
-                                              windowsAbsolutePath, mask1);
+            long[] result = WindowsRegOpenKey1(rootNativeHandle(),
+                                               windowsAbsolutePath, mask1);
             if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1)
                 result = WindowsRegOpenKey1(rootNativeHandle(),
                                             windowsAbsolutePath, mask2);
@@ -541,7 +541,7 @@
                 logger().warning("Could not open windows registry node " +
                         byteArrayToString(windowsAbsolutePath()) +
                         " at root 0x" +
-                        Integer.toHexString(rootNativeHandle()) +
+                        Long.toHexString(rootNativeHandle()) +
                         ". Windows RegOpenKey(...) returned error code " +
                         result[ERROR_CODE] + ".");
                 result[NATIVE_HANDLE] = NULL_NATIVE_HANDLE;
@@ -550,7 +550,7 @@
                             "Could not open windows registry node " +
                             byteArrayToString(windowsAbsolutePath()) +
                             " at root 0x" +
-                            Integer.toHexString(rootNativeHandle()) +
+                            Long.toHexString(rootNativeHandle()) +
                             ": Access denied");
                 }
             }
@@ -573,12 +573,12 @@
      * @see #openKey(byte[],int)
      * @see #closeKey(int)
      */
-    private int openKey(int nativeHandle, byte[] windowsRelativePath,
-                        int mask1, int mask2) {
+    private long openKey(long nativeHandle, byte[] windowsRelativePath,
+                         int mask1, int mask2) {
     /* If the path is short enough open at once. Otherwise split the path */
         if (windowsRelativePath.length <= MAX_WINDOWS_PATH_LENGTH + 1 ) {
-            int[] result = WindowsRegOpenKey1(nativeHandle,
-                                              windowsRelativePath, mask1);
+            long[] result = WindowsRegOpenKey1(nativeHandle,
+                                               windowsRelativePath, mask1);
             if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1)
                 result = WindowsRegOpenKey1(nativeHandle,
                                             windowsRelativePath, mask2);
@@ -586,7 +586,7 @@
             if (result[ERROR_CODE] != ERROR_SUCCESS) {
                 logger().warning("Could not open windows registry node " +
                         byteArrayToString(windowsAbsolutePath()) +
-                        " at root 0x" + Integer.toHexString(nativeHandle) +
+                        " at root 0x" + Long.toHexString(nativeHandle) +
                         ". Windows RegOpenKey(...) returned error code " +
                         result[ERROR_CODE] + ".");
                 result[NATIVE_HANDLE] = NULL_NATIVE_HANDLE;
@@ -610,13 +610,13 @@
                                       separatorPosition - 1];
             System.arraycopy(windowsRelativePath, separatorPosition+1,
                              nextRelativePath, 0, nextRelativePath.length);
-            int nextNativeHandle = openKey(nativeHandle, nextRelativeRoot,
+            long nextNativeHandle = openKey(nativeHandle, nextRelativeRoot,
                                            mask1, mask2);
             if (nextNativeHandle == NULL_NATIVE_HANDLE) {
                 return NULL_NATIVE_HANDLE;
             }
-            int result = openKey(nextNativeHandle, nextRelativePath,
-                                 mask1,mask2);
+            long result = openKey(nextNativeHandle, nextRelativePath,
+                                  mask1,mask2);
             closeKey(nextNativeHandle);
             return result;
         }
@@ -630,13 +630,13 @@
      * @see #openKey(byte[],int)
      * @see #openKey(int, byte[],int)
     */
-    private void closeKey(int nativeHandle) {
+    private void closeKey(long nativeHandle) {
         int result = WindowsRegCloseKey(nativeHandle);
         if (result != ERROR_SUCCESS) {
             logger().warning("Could not close windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) +
+                    Long.toHexString(rootNativeHandle()) +
                     ". Windows RegCloseKey(...) returned error code " +
                     result + ".");
         }
@@ -649,7 +649,7 @@
      * @see #getSpi(String)
      */
     protected void putSpi(String javaName, String value) {
-        int nativeHandle = openKey(KEY_SET_VALUE);
+        long nativeHandle = openKey(KEY_SET_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
             isBackingStoreAvailable = false;
             return;
@@ -662,7 +662,7 @@
                     " at Windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) +
+                    Long.toHexString(rootNativeHandle()) +
                     ". Windows RegSetValueEx(...) returned error code " +
                     result + ".");
             isBackingStoreAvailable = false;
@@ -677,7 +677,7 @@
      * @see #putSpi(String, String)
      */
     protected String getSpi(String javaName) {
-        int nativeHandle = openKey(KEY_QUERY_VALUE);
+        long nativeHandle = openKey(KEY_QUERY_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
             return null;
         }
@@ -699,7 +699,7 @@
      * been deleted.
      */
     protected void removeSpi(String key) {
-        int nativeHandle = openKey(KEY_SET_VALUE);
+        long nativeHandle = openKey(KEY_SET_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
         return;
         }
@@ -709,7 +709,7 @@
             logger().warning("Could not delete windows registry value " +
                     byteArrayToString(windowsAbsolutePath()) + "\\" +
                     toWindowsName(key) + " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) +
+                    Long.toHexString(rootNativeHandle()) +
                     ". Windows RegDeleteValue(...) returned error code " +
                     result + ".");
             isBackingStoreAvailable = false;
@@ -725,27 +725,27 @@
      */
     protected String[] keysSpi() throws BackingStoreException{
         // Find out the number of values
-        int nativeHandle = openKey(KEY_QUERY_VALUE);
+        long nativeHandle = openKey(KEY_QUERY_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
             throw new BackingStoreException(
                     "Could not open windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) + ".");
+                    Long.toHexString(rootNativeHandle()) + ".");
         }
-        int[] result =  WindowsRegQueryInfoKey1(nativeHandle);
+        long[] result =  WindowsRegQueryInfoKey1(nativeHandle);
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
             String info = "Could not query windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) +
+                    Long.toHexString(rootNativeHandle()) +
                     ". Windows RegQueryInfoKeyEx(...) returned error code " +
                     result[ERROR_CODE] + ".";
             logger().warning(info);
             throw new BackingStoreException(info);
         }
-        int maxValueNameLength = result[MAX_VALUE_NAME_LENGTH];
-        int valuesNumber = result[VALUES_NUMBER];
+        int maxValueNameLength = (int)result[MAX_VALUE_NAME_LENGTH];
+        int valuesNumber = (int)result[VALUES_NUMBER];
         if (valuesNumber == 0) {
             closeKey(nativeHandle);
             return new String[0];
@@ -759,7 +759,7 @@
                 String info =
                     "Could not enumerate value #" + i + "  of windows node " +
                     byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) + ".";
+                    Long.toHexString(rootNativeHandle()) + ".";
                 logger().warning(info);
                 throw new BackingStoreException(info);
             }
@@ -777,27 +777,27 @@
      */
     protected String[] childrenNamesSpi() throws BackingStoreException {
         // Open key
-        int nativeHandle = openKey(KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE);
+        long nativeHandle = openKey(KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
             throw new BackingStoreException(
                     "Could not open windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) + ".");
+                    Long.toHexString(rootNativeHandle()) + ".");
         }
         // Get number of children
-        int[] result =  WindowsRegQueryInfoKey1(nativeHandle);
+        long[] result =  WindowsRegQueryInfoKey1(nativeHandle);
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
             String info = "Could not query windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
-                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    " at root 0x" + Long.toHexString(rootNativeHandle()) +
                     ". Windows RegQueryInfoKeyEx(...) returned error code " +
                     result[ERROR_CODE] + ".";
             logger().warning(info);
             throw new BackingStoreException(info);
         }
-        int maxKeyLength = result[MAX_KEY_LENGTH];
-        int subKeysNumber = result[SUBKEYS_NUMBER];
+        int maxKeyLength = (int)result[MAX_KEY_LENGTH];
+        int subKeysNumber = (int)result[SUBKEYS_NUMBER];
         if (subKeysNumber == 0) {
             closeKey(nativeHandle);
             return new String[0];
@@ -812,7 +812,7 @@
                 String info =
                     "Could not enumerate key #" + i + "  of windows node " +
                     byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) + ". ";
+                    Long.toHexString(rootNativeHandle()) + ". ";
                 logger().warning(info);
                 throw new BackingStoreException(info);
             }
@@ -839,20 +839,20 @@
             throw new BackingStoreException(
                     "flush(): Backing store not available.");
         }
-        int nativeHandle = openKey(KEY_READ);
+        long nativeHandle = openKey(KEY_READ);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
             throw new BackingStoreException(
                     "Could not open windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) + ".");
+                    Long.toHexString(rootNativeHandle()) + ".");
         }
         int result = WindowsRegFlushKey1(nativeHandle);
         if (result != ERROR_SUCCESS) {
             String info = "Could not flush windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) +
+                    Long.toHexString(rootNativeHandle()) +
                     ". Windows RegFlushKey(...) returned error code " +
                     result + ".";
             logger().warning(info);
@@ -891,21 +891,21 @@
      * is not available.
      */
     public void removeNodeSpi() throws BackingStoreException {
-        int parentNativeHandle =
+        long parentNativeHandle =
                 ((WindowsPreferences)parent()).openKey(DELETE);
         if (parentNativeHandle == NULL_NATIVE_HANDLE) {
             throw new BackingStoreException(
                     "Could not open parent windows registry node of " +
                     byteArrayToString(windowsAbsolutePath()) +
                     " at root 0x" +
-                    Integer.toHexString(rootNativeHandle()) + ".");
+                    Long.toHexString(rootNativeHandle()) + ".");
         }
         int result =
                 WindowsRegDeleteKey(parentNativeHandle, toWindowsName(name()));
         if (result != ERROR_SUCCESS) {
             String info = "Could not delete windows registry node " +
                     byteArrayToString(windowsAbsolutePath()) +
-                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    " at root 0x" + Long.toHexString(rootNativeHandle()) +
                     ". Windows RegDeleteKeyEx(...) returned error code " +
                     result + ".";
             logger().warning(info);
@@ -1089,7 +1089,7 @@
             if ((ch < 0x0020) || (ch > 0x007f)){
                 // write \udddd
                 windowsName.append("/u");
-                String hex = Integer.toHexString(javaName.charAt(i));
+                String hex = Long.toHexString(javaName.charAt(i));
                 StringBuilder hex4 = new StringBuilder(hex);
                 hex4.reverse();
                 int len = 4 - hex4.length();
@@ -1115,7 +1115,7 @@
     /**
      * Returns native handle for the top Windows node for this node.
      */
-    private int rootNativeHandle() {
+    private long rootNativeHandle() {
         return (isUserNode()
                 ? USER_ROOT_NATIVE_HANDLE
                 : SYSTEM_ROOT_NATIVE_HANDLE);
--- a/src/java.prefs/windows/native/libprefs/WindowsPreferences.c	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/java.prefs/windows/native/libprefs/WindowsPreferences.c	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,222 +37,222 @@
  */
 DEF_STATIC_JNI_OnLoad
 
-    JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegOpenKey
-               (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey, jint securityMask) {
-        HKEY handle;
-        char* str;
-        int tmp[2];
-        int errorCode=-1;
-        jintArray result;
-        str = (*env)->GetByteArrayElements(env, lpSubKey, NULL);
-        CHECK_NULL_RETURN(str, NULL);
-        errorCode =  RegOpenKeyEx((HKEY)hKey, str, 0, securityMask, &handle);
-        (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0);
-        tmp[0]= (int) handle;
-        tmp[1]= errorCode;
-        result = (*env)->NewIntArray(env,2);
-        if (result != NULL) {
-            (*env)->SetIntArrayRegion(env, result, 0, 2, tmp);
-        }
-        return result;
+JNIEXPORT jlongArray JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegOpenKey(JNIEnv* env,
+    jclass this_class, jlong hKey, jbyteArray lpSubKey, jint securityMask) {
+    char* str = (*env)->GetByteArrayElements(env, lpSubKey, NULL);
+    CHECK_NULL_RETURN(str, NULL);
+
+    HKEY handle;
+    int errorCode = RegOpenKeyEx((HKEY) hKey, str, 0, securityMask, &handle);
+    (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0);
+
+    jlong tmp[2];
+    tmp[0] = (jlong) handle;
+    tmp[1] = errorCode;
+    jlongArray result = (*env)->NewLongArray(env, 2);
+    if (result != NULL) {
+        (*env)->SetLongArrayRegion(env, result, 0, 2, tmp);
+    }
+    return result;
+}
+
+JNIEXPORT jint JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegCloseKey(JNIEnv* env,
+    jclass this_class, jlong hKey) {
+    return (jint) RegCloseKey((HKEY) hKey);
+};
+
+JNIEXPORT jlongArray JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegCreateKeyEx(JNIEnv* env,
+    jclass this_class, jlong hKey, jbyteArray lpSubKey) {
+    char* str = (*env)->GetByteArrayElements(env, lpSubKey, NULL);
+    CHECK_NULL_RETURN(str, NULL);
+
+    HKEY handle;
+    DWORD lpdwDisposition;
+    int errorCode = RegCreateKeyEx((HKEY) hKey, str, 0, NULL,
+        REG_OPTION_NON_VOLATILE, KEY_READ,
+        NULL, &handle, &lpdwDisposition);
+    (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0);
+
+    jlong tmp[3];
+    tmp[0] = (jlong) handle;
+    tmp[1] = errorCode;
+    tmp[2] = lpdwDisposition;
+    jlongArray result = (*env)->NewLongArray(env, 3);
+    if (result != NULL) {
+        (*env)->SetLongArrayRegion(env, result, 0, 3, tmp);
+    }
+    return result;
+}
+
+JNIEXPORT jint JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteKey(JNIEnv* env,
+    jclass this_class, jlong hKey, jbyteArray lpSubKey) {
+    char* str = (*env)->GetByteArrayElements(env, lpSubKey, NULL);
+    CHECK_NULL_RETURN(str, -1);
+
+    int result = RegDeleteKey((HKEY) hKey, str);
+    (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0);
+    return result;
+
+};
+
+JNIEXPORT jint JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegFlushKey(JNIEnv* env,
+    jclass this_class, jlong hKey) {
+    return RegFlushKey((HKEY) hKey);
+}
+
+JNIEXPORT jbyteArray JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegQueryValueEx(JNIEnv* env,
+    jclass this_class, jlong hKey, jbyteArray valueName) {
+    char* valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL);
+    CHECK_NULL_RETURN(valueNameStr, NULL);
+
+    DWORD valueType;
+    DWORD valueSize;
+    if (RegQueryValueEx((HKEY) hKey, valueNameStr, NULL, &valueType, NULL,
+        &valueSize) != ERROR_SUCCESS) {
+        (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
+        return NULL;
     }
 
-    JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegCloseKey
-               (JNIEnv* env, jclass this_class, jint hKey) {
-        return (jint) RegCloseKey((HKEY) hKey);
-    };
-
-    JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegCreateKeyEx
-               (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey) {
-        HKEY handle;
-        char* str;
-        int tmp[3];
-        DWORD lpdwDisposition;
-        int errorCode;
-        jintArray result = NULL;
-        str = (*env)->GetByteArrayElements(env, lpSubKey, NULL);
-        CHECK_NULL_RETURN(str, NULL);
-        errorCode =  RegCreateKeyEx((HKEY)hKey, str, 0, NULL,
-                      REG_OPTION_NON_VOLATILE, KEY_READ,
-                      NULL, &handle, &lpdwDisposition);
-        (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0);
-        tmp[0]= (int) handle;
-        tmp[1]= errorCode;
-        tmp[2]= lpdwDisposition;
-        result = (*env)->NewIntArray(env,3);
-        if (result != NULL) {
-            (*env)->SetIntArrayRegion(env, result, 0, 3, tmp);
-        }
-        return result;
-    }
-
-    JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteKey
-              (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey) {
-        char* str;
-        int result;
-        str = (*env)->GetByteArrayElements(env, lpSubKey, NULL);
-        CHECK_NULL_RETURN(str, -1);
-        result = RegDeleteKey((HKEY)hKey, str);
-        (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0);
-        return  result;
-
-    };
-
-    JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegFlushKey
-        (JNIEnv* env, jclass this_class, jint hKey) {
-        return RegFlushKey ((HKEY)hKey);
-        }
-
-    JNIEXPORT jbyteArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegQueryValueEx
-         (JNIEnv* env, jclass this_class, jint hKey, jbyteArray valueName) {
-        char* valueNameStr;
-        char* buffer;
-        jbyteArray result;
-        DWORD valueType;
-        DWORD valueSize;
-        valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL);
-        CHECK_NULL_RETURN(valueNameStr, NULL);
-        if (RegQueryValueEx((HKEY)hKey, valueNameStr, NULL, &valueType, NULL,
-                                                 &valueSize) != ERROR_SUCCESS) {
-        (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
-        return NULL;
-        }
-
-        buffer = (char*)malloc(valueSize);
-        if (buffer != NULL) {
-            if (RegQueryValueEx((HKEY)hKey, valueNameStr, NULL, &valueType, buffer,
-                &valueSize) != ERROR_SUCCESS) {
-                free(buffer);
-                (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
-                return NULL;
-            }
-        } else {
-            JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
+    char* buffer = (char*) malloc(valueSize);
+    if (buffer != NULL) {
+        if (RegQueryValueEx((HKEY) hKey, valueNameStr, NULL, &valueType, buffer,
+            &valueSize) != ERROR_SUCCESS) {
+            free(buffer);
             (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
             return NULL;
         }
-
-        if (valueType == REG_SZ) {
-            result = (*env)->NewByteArray(env, valueSize);
-            if (result != NULL) {
-                (*env)->SetByteArrayRegion(env, result, 0, valueSize, buffer);
-            }
-        } else {
-            result = NULL;
-        }
-        free(buffer);
+    } else {
+        JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
         (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
-        return result;
-    }
-
-
-
-
-    JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegSetValueEx
-    (JNIEnv* env, jclass this_class, jint hKey, jbyteArray valueName, jbyteArray data) {
-        char* valueNameStr;
-        char* dataStr;
-        int size = -1;
-        int nameSize = -1;
-        int error_code = -1;
-        if ((valueName == NULL)||(data == NULL)) {return -1;}
-        size = (*env)->GetArrayLength(env, data);
-        dataStr = (*env)->GetByteArrayElements(env, data, NULL);
-        CHECK_NULL_RETURN(dataStr, -1);
-        valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL);
-        if (valueNameStr != NULL) {
-            error_code = RegSetValueEx((HKEY)hKey, valueNameStr, 0,
-                                                        REG_SZ, dataStr, size);
-            (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
-        }
-        (*env)->ReleaseByteArrayElements(env, data, dataStr, 0);
-        return error_code;
+        return NULL;
     }
 
-     JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteValue
-            (JNIEnv* env, jclass this_class, jint hKey, jbyteArray valueName) {
-        char* valueNameStr;
-        int error_code = -1;
-        if (valueName == NULL) {return -1;}
-        valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL);
-        CHECK_NULL_RETURN(valueNameStr, -1);
-        error_code = RegDeleteValue((HKEY)hKey, valueNameStr);
+    jbyteArray result;
+    if (valueType == REG_SZ) {
+        result = (*env)->NewByteArray(env, valueSize);
+        if (result != NULL) {
+            (*env)->SetByteArrayRegion(env, result, 0, valueSize, buffer);
+        }
+    } else {
+        result = NULL;
+    }
+    free(buffer);
+    (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
+    return result;
+}
+
+JNIEXPORT jint JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegSetValueEx(JNIEnv* env,
+    jclass this_class, jlong hKey, jbyteArray valueName, jbyteArray data) {
+    if ((valueName == NULL) || (data == NULL)) {
+        return -1;
+    }
+    int size = (*env)->GetArrayLength(env, data);
+    char* dataStr = (*env)->GetByteArrayElements(env, data, NULL);
+    CHECK_NULL_RETURN(dataStr, -1);
+
+    char* valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL);
+    int error_code = -1;
+    if (valueNameStr != NULL) {
+        error_code = RegSetValueEx((HKEY) hKey, valueNameStr, 0,
+            REG_SZ, dataStr, size);
         (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
-        return error_code;
-     }
+    }
+    (*env)->ReleaseByteArrayElements(env, data, dataStr, 0);
+    return error_code;
+}
+
+JNIEXPORT jint JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteValue(JNIEnv* env,
+    jclass this_class, jlong hKey, jbyteArray valueName) {
+    if (valueName == NULL) {
+        return -1;
+    }
+    char* valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL);
+    CHECK_NULL_RETURN(valueNameStr, -1);
 
-    JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegQueryInfoKey
-                                  (JNIEnv* env, jclass this_class, jint hKey) {
-        jintArray result = NULL;
-        int tmp[5];
-        int valuesNumber = -1;
-        int maxValueNameLength = -1;
-        int maxSubKeyLength = -1;
-        int subKeysNumber = -1;
-        int errorCode = -1;
-        errorCode = RegQueryInfoKey((HKEY)hKey, NULL, NULL, NULL,
-                 &subKeysNumber, &maxSubKeyLength, NULL,
-                 &valuesNumber, &maxValueNameLength,
-                 NULL, NULL, NULL);
-        tmp[0]= subKeysNumber;
-        tmp[1]= (int)errorCode;
-        tmp[2]= valuesNumber;
-        tmp[3]= maxSubKeyLength;
-        tmp[4]= maxValueNameLength;
-        result = (*env)->NewIntArray(env,5);
-        if (result != NULL) {
-            (*env)->SetIntArrayRegion(env, result, 0, 5, tmp);
-        }
-        return result;
+    int error_code = RegDeleteValue((HKEY) hKey, valueNameStr);
+    (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0);
+    return error_code;
+}
+
+JNIEXPORT jlongArray JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegQueryInfoKey(JNIEnv* env,
+    jclass this_class, jlong hKey) {
+    int subKeysNumber;
+    int maxSubKeyLength;
+    int valuesNumber;
+    int maxValueNameLength;
+    int errorCode = RegQueryInfoKey((HKEY) hKey, NULL, NULL, NULL,
+        &subKeysNumber, &maxSubKeyLength, NULL,
+        &valuesNumber, &maxValueNameLength,
+        NULL, NULL, NULL);
+
+    jlong tmp[5];
+    tmp[0] = subKeysNumber;
+    tmp[1] = errorCode;
+    tmp[2] = valuesNumber;
+    tmp[3] = maxSubKeyLength;
+    tmp[4] = maxValueNameLength;
+    jintArray result = (*env)->NewLongArray(env, 5);
+    if (result != NULL) {
+        (*env)->SetLongArrayRegion(env, result, 0, 5, tmp);
+    }
+    return result;
+}
+
+JNIEXPORT jbyteArray JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegEnumKeyEx(JNIEnv* env,
+    jclass this_class, jlong hKey, jint subKeyIndex, jint maxKeyLength) {
+    int size = maxKeyLength;
+    char* buffer = (char*) malloc(maxKeyLength);
+    if (buffer == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
+        return NULL;
+    }
+    if (RegEnumKeyEx((HKEY) hKey, subKeyIndex, buffer, &size, NULL, NULL,
+        NULL, NULL) != ERROR_SUCCESS) {
+        free(buffer);
+        return NULL;
     }
 
-     JNIEXPORT jbyteArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegEnumKeyEx
-     (JNIEnv* env, jclass this_class, jint hKey , jint subKeyIndex, jint maxKeyLength) {
-        int size = maxKeyLength;
-        jbyteArray result;
-        char* buffer = NULL;
-        buffer = (char*)malloc(maxKeyLength);
-        if (buffer == NULL) {
-            JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
-            return NULL;
-        }
-        if (RegEnumKeyEx((HKEY) hKey, subKeyIndex, buffer, &size, NULL, NULL,
-                                                 NULL, NULL) != ERROR_SUCCESS){
+    jbyteArray result = (*env)->NewByteArray(env, size + 1);
+    if (result != NULL) {
+        (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer);
+    }
+    free(buffer);
+    return result;
+}
+
+JNIEXPORT jbyteArray JNICALL
+Java_java_util_prefs_WindowsPreferences_WindowsRegEnumValue(JNIEnv* env,
+    jclass this_class, jlong hKey, jint valueIndex, jint maxValueNameLength) {
+    int size = maxValueNameLength;
+    char* buffer = (char*) malloc(maxValueNameLength);
+    if (buffer == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
+        return NULL;
+    }
+
+    int error_code = RegEnumValue((HKEY) hKey, valueIndex, buffer,
+        &size, NULL, NULL, NULL, NULL);
+    if (error_code != ERROR_SUCCESS) {
         free(buffer);
         return NULL;
-        }
-        result = (*env)->NewByteArray(env, size + 1);
-        if (result != NULL) {
-            (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer);
-        }
-        free(buffer);
-        return result;
-     }
-
-     JNIEXPORT jbyteArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegEnumValue
-          (JNIEnv* env, jclass this_class, jint hKey , jint valueIndex, jint maxValueNameLength){
-          int size = maxValueNameLength;
-          jbyteArray result;
-          char* buffer = NULL;
-          int error_code;
-          buffer = (char*)malloc(maxValueNameLength);
-          if (buffer == NULL) {
-              JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
-              return NULL;
-          }
-          error_code = RegEnumValue((HKEY) hKey, valueIndex, buffer,
-                                             &size, NULL, NULL, NULL, NULL);
-          if (error_code!= ERROR_SUCCESS){
-            free(buffer);
-            return NULL;
-          }
-          result = (*env)->NewByteArray(env, size + 1);
-          if (result != NULL) {
-              (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer);
-          }
-          free(buffer);
-          return result;
-     }
+    }
+    jbyteArray result = (*env)->NewByteArray(env, size + 1);
+    if (result != NULL) {
+        (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer);
+    }
+    free(buffer);
+    return result;
+}
 
 
 #ifdef __cplusplus
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1696,6 +1696,11 @@
             if (lambdaClassifier.diagFragment != null) {
                 log.error(DiagnosticFlag.SYNTAX, pos, Errors.InvalidLambdaParameterDeclaration(lambdaClassifier.diagFragment));
             }
+            for (JCVariableDecl param: params) {
+                if (param.vartype != null && isRestrictedLocalVarTypeName(param.vartype)) {
+                    param.vartype = null;
+                }
+            }
         }
         return lambdaExpressionOrStatementRest(params, pos);
     }
--- a/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +92,7 @@
  * Overloaded 'operator new[]' variant, which will raise Java's
  * OutOfMemoryError in the case of a failure.
  */
-static void* operator new[](std::size_t size, JNIEnv *env)
+void* operator new[](std::size_t size, JNIEnv *env)
 {
     void* buf = ::operator new[](size, std::nothrow);
     if (buf == NULL) {
@@ -1356,212 +1356,6 @@
     }
 }
 
-
-
-
-/*
- * Class:     sun_security_mscapi_RSACipher
- * Method:    findCertificateUsingAlias
- * Signature: (Ljava/lang/String;Ljava/lang/String;)J
- */
-JNIEXPORT jlong JNICALL Java_sun_security_mscapi_RSACipher_findCertificateUsingAlias
-  (JNIEnv *env, jobject obj, jstring jCertStoreName, jstring jCertAliasName)
-{
-    const char* pszCertStoreName = NULL;
-    const char* pszCertAliasName = NULL;
-    HCERTSTORE hCertStore = NULL;
-    PCCERT_CONTEXT pCertContext = NULL;
-    char* pszNameString = NULL; // certificate's friendly name
-    DWORD cchNameString = 0;
-
-    __try
-    {
-        if ((pszCertStoreName = env->GetStringUTFChars(jCertStoreName, NULL))
-            == NULL) {
-            __leave;
-        }
-        if ((pszCertAliasName = env->GetStringUTFChars(jCertAliasName, NULL))
-            == NULL) {
-            __leave;
-        }
-
-        // Open a system certificate store.
-        if ((hCertStore = ::CertOpenSystemStore(NULL, pszCertStoreName)) == NULL) {
-            ThrowException(env, KEYSTORE_EXCEPTION, GetLastError());
-            __leave;
-        }
-
-        // Use CertEnumCertificatesInStore to get the certificates
-        // from the open store. pCertContext must be reset to
-        // NULL to retrieve the first certificate in the store.
-        while (pCertContext = ::CertEnumCertificatesInStore(hCertStore, pCertContext))
-        {
-            if ((cchNameString = ::CertGetNameString(pCertContext,
-                CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0, NULL, NULL, 0)) == 1) {
-
-                continue; // not found
-            }
-
-            pszNameString = new (env) char[cchNameString];
-            if (pszNameString == NULL) {
-                __leave;
-            }
-
-            if (::CertGetNameString(pCertContext,
-                CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0, NULL, pszNameString,
-                cchNameString) == 1) {
-
-                continue; // not found
-            }
-
-            // Compare the certificate's friendly name with supplied alias name
-            if (strcmp(pszCertAliasName, pszNameString) == 0) {
-                delete [] pszNameString;
-                break;
-
-            } else {
-                delete [] pszNameString;
-            }
-        }
-    }
-    __finally
-    {
-        if (hCertStore)
-            ::CertCloseStore(hCertStore, 0);
-
-        if (pszCertStoreName)
-            env->ReleaseStringUTFChars(jCertStoreName, pszCertStoreName);
-
-        if (pszCertAliasName)
-            env->ReleaseStringUTFChars(jCertAliasName, pszCertAliasName);
-    }
-
-    return (jlong) pCertContext;
-}
-
-/*
- * Class:     sun_security_mscapi_RSACipher
- * Method:    getKeyFromCert
- * Signature: (JZ)J
- */
-JNIEXPORT jlong JNICALL Java_sun_security_mscapi_RSACipher_getKeyFromCert
-  (JNIEnv *env, jobject obj, jlong pCertContext, jboolean usePrivateKey)
-{
-    HCRYPTPROV hCryptProv = NULL;
-    HCRYPTKEY hKey = NULL;
-    DWORD dwKeySpec;
-    BOOL bCallerFreeProv = FALSE;
-    BOOL bRes;
-
-    __try
-    {
-        if (usePrivateKey == JNI_TRUE) {
-            // Locate the key container for the certificate's private key
-
-            // First, probe it silently
-            bRes = ::CryptAcquireCertificatePrivateKey(
-                    (PCCERT_CONTEXT) pCertContext, CRYPT_ACQUIRE_SILENT_FLAG,
-                    NULL, &hCryptProv, &dwKeySpec, &bCallerFreeProv);
-
-            if (bRes == FALSE && GetLastError() != NTE_SILENT_CONTEXT)
-            {
-                ThrowException(env, KEYSTORE_EXCEPTION, GetLastError());
-                __leave;
-            }
-
-            if (bCallerFreeProv == TRUE) {
-                ::CryptReleaseContext(hCryptProv, NULL);
-                bCallerFreeProv = FALSE;
-            }
-
-            // Now, do it normally (not silently)
-            if (::CryptAcquireCertificatePrivateKey(
-                    (PCCERT_CONTEXT) pCertContext, 0, NULL, &hCryptProv,
-                    &dwKeySpec, &bCallerFreeProv) == FALSE)
-            {
-                ThrowException(env, KEYSTORE_EXCEPTION, GetLastError());
-                __leave;
-            }
-
-            // Get a handle to the private key
-            if (::CryptGetUserKey(hCryptProv, dwKeySpec, &hKey) == FALSE) {
-                ThrowException(env, KEY_EXCEPTION, GetLastError());
-                __leave;
-            }
-        }
-        else // use public key
-        {
-            bCallerFreeProv = TRUE;
-
-            //  Acquire a CSP context.
-            if (::CryptAcquireContext(&hCryptProv, "J2SE", NULL,
-                    PROV_RSA_FULL, 0) == FALSE)
-            {
-                // If CSP context hasn't been created, create one.
-                //
-                if (::CryptAcquireContext(&hCryptProv, "J2SE", NULL,
-                        PROV_RSA_FULL, CRYPT_NEWKEYSET) == FALSE)
-                {
-                    ThrowException(env, KEYSTORE_EXCEPTION, GetLastError());
-                    __leave;
-                }
-            }
-
-            // Import the certificate's public key into the key container
-            if (::CryptImportPublicKeyInfo(hCryptProv, X509_ASN_ENCODING,
-                    &(((PCCERT_CONTEXT) pCertContext)->pCertInfo->SubjectPublicKeyInfo),
-                    &hKey) == FALSE)
-            {
-                ThrowException(env, KEY_EXCEPTION, GetLastError());
-                __leave;
-            }
-        }
-    }
-    __finally
-    {
-        //--------------------------------------------------------------------
-        // Clean up.
-
-        if (bCallerFreeProv == TRUE && hCryptProv != NULL)
-            ::CryptReleaseContext(hCryptProv, 0);
-    }
-
-    return hKey;        // TODO - when finished with this key, call
-                        //              CryptDestroyKey(hKey)
-}
-
-/*
- * Class:     sun_security_mscapi_KeyStore
- * Method:    getKeyLength
- * Signature: (J)I
- */
-JNIEXPORT jint JNICALL Java_sun_security_mscapi_KeyStore_getKeyLength
-  (JNIEnv *env, jobject obj, jlong hKey)
-{
-    DWORD dwDataLen = sizeof(DWORD);
-    BYTE pbData[sizeof(DWORD)];
-    DWORD length = 0;
-
-    __try
-    {
-        // Get key length (in bits)
-        //TODO - may need to use KP_BLOCKLEN instead?
-        if (!(::CryptGetKeyParam((HCRYPTKEY) hKey, KP_KEYLEN, (BYTE *)pbData, &dwDataLen,
-            0))) {
-
-            ThrowException(env, KEY_EXCEPTION, GetLastError());
-            __leave;
-        }
-        length = (DWORD) pbData;
-    }
-    __finally
-    {
-        // no cleanup required
-    }
-
-    return (jint) length;
-}
-
 /*
  * Class:     sun_security_mscapi_RSACipher
  * Method:    encryptDecrypt
@@ -1804,38 +1598,47 @@
  * Convert an array in big-endian byte order into little-endian byte order.
  */
 int convertToLittleEndian(JNIEnv *env, jbyteArray source, jbyte* destination,
-    int destinationLength) {
+        int destinationLength) {
+
+    int result = -1;
+    jbyte* sourceBytes = NULL;
 
-    int sourceLength = env->GetArrayLength(source);
+    __try {
+        int sourceLength = env->GetArrayLength(source);
+
+        sourceBytes = env->GetByteArrayElements(source, 0);
+        if (sourceBytes == NULL) {
+            __leave;
+        }
 
-    jbyte* sourceBytes = env->GetByteArrayElements(source, 0);
-    if (sourceBytes == NULL) {
-        return -1;
-    }
+        int copyLen = sourceLength;
+        if (sourceLength > destinationLength) {
+            // source might include an extra sign byte
+            if (sourceLength == destinationLength + 1 && sourceBytes[0] == 0) {
+                copyLen--;
+            } else {
+                __leave;
+            }
+        }
 
-    int copyLen = sourceLength;
-    if (sourceLength > destinationLength) {
-        // source might include an extra sign byte
-        if (sourceLength == destinationLength + 1 && sourceBytes[0] == 0) {
-            copyLen--;
-        } else {
-            return -1;
+        // Copy bytes from the end of the source array to the beginning of the
+        // destination array (until the destination array is full).
+        // This ensures that the sign byte from the source array will be excluded.
+        for (int i = 0; i < copyLen; i++) {
+            destination[i] = sourceBytes[sourceLength - 1 - i];
+        }
+        if (copyLen < destinationLength) {
+            memset(destination + copyLen, 0, destinationLength - copyLen);
+        }
+        result = destinationLength;
+    } __finally {
+        // Clean up.
+        if (sourceBytes) {
+            env->ReleaseByteArrayElements(source, sourceBytes, JNI_ABORT);
         }
     }
 
-    // Copy bytes from the end of the source array to the beginning of the
-    // destination array (until the destination array is full).
-    // This ensures that the sign byte from the source array will be excluded.
-    for (int i = 0; i < copyLen; i++) {
-        destination[i] = sourceBytes[sourceLength - 1 - i];
-    }
-    if (copyLen < destinationLength) {
-        memset(destination + copyLen, 0, destinationLength - copyLen);
-    }
-
-    env->ReleaseByteArrayElements(source, sourceBytes, JNI_ABORT);
-
-    return destinationLength;
+    return result;
 }
 
 /*
--- a/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -395,7 +395,6 @@
                         } else {
                             try {
                                 if (key.isReadable()) {
-                                    boolean closed;
                                     SocketChannel chan = (SocketChannel)key.channel();
                                     HttpConnection conn = (HttpConnection)key.attachment();
 
@@ -437,7 +436,6 @@
         }
 
         public void handle (SocketChannel chan, HttpConnection conn)
-        throws IOException
         {
             try {
                 Exchange t = new Exchange (chan, protocol, conn);
@@ -448,6 +446,9 @@
             } catch (IOException e) {
                 logger.log (Level.TRACE, "Dispatcher (5)", e);
                 closeConnection(conn);
+            } catch (Throwable e) {
+                logger.log (Level.TRACE, "Dispatcher (6)", e);
+                closeConnection(conn);
             }
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Thu Mar 08 10:18:28 2018 -0800
@@ -307,8 +307,7 @@
         }
 
         if (htmlVersion == null) {
-            reporter.print(WARNING, getText("doclet.HTML_version_not_specified", helpfile));
-            htmlVersion = HtmlVersion.HTML4;
+            htmlVersion = HtmlVersion.HTML5;
         }
 
         // check if helpfile exists
@@ -658,6 +657,7 @@
             new Option(resources, "-html4") {
                 @Override
                 public boolean process(String opt,  List<String> args) {
+                    reporter.print(WARNING, getText("doclet.HTML_4_specified", helpfile));
                     htmlVersion = HtmlVersion.HTML4;
                     return true;
                 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Mar 08 10:18:28 2018 -0800
@@ -445,9 +445,8 @@
     disable checks for the specified packages.
 
 # L10N: do not localize the option names -html4 and -html5
-doclet.HTML_version_not_specified=\
-    You have not specified the version of HTML to use.\n\
-    The default is currently HTML 4.01, but this will change to HTML5\n\
-    in a future release. To suppress this warning, please specify the\n\
-    version of HTML used in your documentation comments and to be\n\
-    generated by this doclet, using the -html4 or -html5 options.
+doclet.HTML_4_specified=\
+    You have specified the HTML version as HTML 4.01 by using the -html4 option.\n\
+    The default is currently HTML5 and the support for HTML 4.01 will be removed\n\
+    in a future release. To suppress this warning, please ensure that any HTML constructs\n\
+    in your comments are valid in HTML5, and remove the -html4 option.
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/Label.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/Label.java	Thu Mar 08 10:18:28 2018 -0800
@@ -101,7 +101,7 @@
         }
 
         /**
-         * Retrieve the top <tt>count</tt> types on the stack without modifying it.
+         * Retrieve the top <code>count</code> types on the stack without modifying it.
          *
          * @param count number of types to return
          * @return array of Types
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/MethodEmitter.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/MethodEmitter.java	Thu Mar 08 10:18:28 2018 -0800
@@ -2057,7 +2057,7 @@
     }
 
     /**
-     * Retrieve the top <tt>count</tt> types on the stack without modifying it.
+     * Retrieve the top <code>count</code> types on the stack without modifying it.
      *
      * @param count number of types to return
      * @return array of Types
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/Block.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/Block.java	Thu Mar 08 10:18:28 2018 -0800
@@ -257,7 +257,7 @@
     }
 
     /**
-     * Test if this block represents a <tt>catch</tt> block in a <tt>try</tt> statement.
+     * Test if this block represents a <code>catch</code> block in a <code>try</code> statement.
      * This is used by the Splitter as catch blocks are not be subject to splitting.
      *
      * @return true if this block represents a catch block in a try statement.
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/DateParser.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/DateParser.java	Thu Mar 08 10:18:28 2018 -0800
@@ -41,7 +41,7 @@
  * of different formats.
  *
  * <p>This class is neither thread-safe nor reusable. Calling the
- * <tt>parse()</tt> method more than once will yield undefined results.</p>
+ * <code>parse()</code> method more than once will yield undefined results.</p>
  */
 public class DateParser {
 
@@ -118,7 +118,7 @@
     }
 
     /**
-     * Construct a new <tt>DateParser</tt> instance for parsing the given string.
+     * Construct a new <code>DateParser</code> instance for parsing the given string.
      * @param string the string to be parsed
      */
     public DateParser(final String string) {
@@ -130,7 +130,7 @@
     /**
      * Try parsing the given string as date according to the extended ISO 8601 format
      * specified in ES5 15.9.1.15. Fall back to legacy mode if that fails.
-     * This method returns <tt>true</tt> if the string could be parsed.
+     * This method returns <code>true</code> if the string could be parsed.
      * @return true if the string could be parsed as date
      */
     public boolean parse() {
@@ -143,8 +143,8 @@
      *
      * <pre>  [('-'|'+')yy]yyyy[-MM[-dd]][Thh:mm[:ss[.sss]][Z|(+|-)hh:mm]] </pre>
      *
-     * <p>If the string does not contain a time zone offset, the <tt>TIMEZONE</tt> field
-     * is set to <tt>0</tt> (GMT).</p>
+     * <p>If the string does not contain a time zone offset, the <code>TIMEZONE</code> field
+     * is set to <code>0</code> (GMT).</p>
      * @return true if string represents a valid ES5 date string.
      */
     public boolean parseEcmaDate() {
@@ -221,14 +221,14 @@
     /**
      * Try parsing the date using a fuzzy algorithm that can handle a variety of formats.
      *
-     * <p>Numbers separated by <tt>':'</tt> are treated as time values, optionally followed by a
-     * millisecond value separated by <tt>'.'</tt>. Other number values are treated as date values.
+     * <p>Numbers separated by <code>':'</code> are treated as time values, optionally followed by a
+     * millisecond value separated by <code>'.'</code>. Other number values are treated as date values.
      * The exact sequence of day, month, and year values to apply is determined heuristically.</p>
      *
      * <p>English month names and selected time zone names as well as AM/PM markers are recognized
-     * and handled properly. Additionally, numeric time zone offsets such as <tt>(+|-)hh:mm</tt> or
-     * <tt>(+|-)hhmm</tt> are recognized. If the string does not contain a time zone offset
-     * the <tt>TIMEZONE</tt>field is left undefined, meaning the local time zone should be applied.</p>
+     * and handled properly. Additionally, numeric time zone offsets such as <code>(+|-)hh:mm</code> or
+     * <code>(+|-)hhmm</code> are recognized. If the string does not contain a time zone offset
+     * the <code>TIMEZONE</code>field is left undefined, meaning the local time zone should be applied.</p>
      *
      * <p>English weekday names are recognized but ignored. All text in parentheses is ignored as well.
      * All other text causes parsing to fail.</p>
@@ -331,10 +331,10 @@
     }
 
     /**
-     * Get the parsed date and time fields as an array of <tt>Integers</tt>.
+     * Get the parsed date and time fields as an array of <code>Integers</code>.
      *
      * <p>If parsing was successful, all fields are guaranteed to be set except for the
-     * <tt>TIMEZONE</tt> field which may be <tt>null</tt>, meaning that local time zone
+     * <code>TIMEZONE</code> field which may be <code>null</code>, meaning that local time zone
      * offset should be applied.</p>
      *
      * @return the parsed date fields
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Lexer.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Lexer.java	Thu Mar 08 10:18:28 2018 -0800
@@ -592,7 +592,7 @@
 
     /**
      * Check whether the given token represents the beginning of a literal. If so scan
-     * the literal and return <tt>true</tt>, otherwise return false.
+     * the literal and return <code>true</code>, otherwise return false.
      *
      * @param token the token.
      * @param startTokenType the token type.
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ConsString.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ConsString.java	Thu Mar 08 10:18:28 2018 -0800
@@ -32,7 +32,7 @@
 
 /**
  * This class represents a string composed of two parts which may themselves be
- * instances of <tt>ConsString</tt> or {@link String}. Copying of characters to
+ * instances of <code>ConsString</code> or {@link String}. Copying of characters to
  * a proper string is delayed until it becomes necessary.
  */
 public final class ConsString implements CharSequence {
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NameCodec.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NameCodec.java	Thu Mar 08 10:18:28 2018 -0800
@@ -60,15 +60,15 @@
  * Dangerous characters are the union of all characters forbidden
  * or otherwise restricted by the JVM specification,
  * plus their mates, if they are brackets
- * (<code><big><b>[</b></big></code> and <code><big><b>]</b></big></code>,
- * <code><big><b>&lt;</b></big></code> and <code><big><b>&gt;</b></big></code>),
- * plus, arbitrarily, the colon character <code><big><b>:</b></big></code>.
+ * (<code><b>[</b></code> and <code><b>]</b></code>,
+ * <code><b>&lt;</b></code> and <code><b>&gt;</b></code>),
+ * plus, arbitrarily, the colon character <code><b>:</b></code>.
  * There is no distinction between type, method, and field names.
  * This makes it easier to convert between mangled names of different
  * types, since they do not need to be decoded (demangled).
  * </p>
  * <p>
- * The escape character is backslash <code><big><b>\</b></big></code>
+ * The escape character is backslash <code><b>\</b></code>
  * (also known as reverse solidus).
  * This character is, until now, unheard of in bytecode names,
  * but traditional in the proposed role.
@@ -92,32 +92,32 @@
  * </p>
  * <p>
  * The dangerous characters are
- * <code><big><b>/</b></big></code> (forward slash, used to delimit package components),
- * <code><big><b>.</b></big></code> (dot, also a package delimiter),
- * <code><big><b>;</b></big></code> (semicolon, used in signatures),
- * <code><big><b>$</b></big></code> (dollar, used in inner classes and synthetic members),
- * <code><big><b>&lt;</b></big></code> (left angle),
- * <code><big><b>&gt;</b></big></code> (right angle),
- * <code><big><b>[</b></big></code> (left square bracket, used in array types),
- * <code><big><b>]</b></big></code> (right square bracket, reserved in this scheme for language use),
- * and <code><big><b>:</b></big></code> (colon, reserved in this scheme for language use).
+ * <code><b>/</b></code> (forward slash, used to delimit package components),
+ * <code><b>.</b></code> (dot, also a package delimiter),
+ * <code><b>;</b></code> (semicolon, used in signatures),
+ * <code><b>$</b></code> (dollar, used in inner classes and synthetic members),
+ * <code><b>&lt;</b></code> (left angle),
+ * <code><b>&gt;</b></code> (right angle),
+ * <code><b>[</b></code> (left square bracket, used in array types),
+ * <code><b>]</b></code> (right square bracket, reserved in this scheme for language use),
+ * and <code><b>:</b></code> (colon, reserved in this scheme for language use).
  * Their replacements are, respectively,
- * <code><big><b>|</b></big></code> (vertical bar),
- * <code><big><b>,</b></big></code> (comma),
- * <code><big><b>?</b></big></code> (question mark),
- * <code><big><b>%</b></big></code> (percent),
- * <code><big><b>^</b></big></code> (caret),
- * <code><big><b>_</b></big></code> (underscore), and
- * <code><big><b>{</b></big></code> (left curly bracket),
- * <code><big><b>}</b></big></code> (right curly bracket),
- * <code><big><b>!</b></big></code> (exclamation mark).
+ * <code><b>|</b></code> (vertical bar),
+ * <code><b>,</b></code> (comma),
+ * <code><b>?</b></code> (question mark),
+ * <code><b>%</b></code> (percent),
+ * <code><b>^</b></code> (caret),
+ * <code><b>_</b></code> (underscore), and
+ * <code><b>{</b></code> (left curly bracket),
+ * <code><b>}</b></code> (right curly bracket),
+ * <code><b>!</b></code> (exclamation mark).
  * In addition, the replacement character for the escape character itself is
- * <code><big><b>-</b></big></code> (hyphen),
+ * <code><b>-</b></code> (hyphen),
  * and the replacement character for the null prefix is
- * <code><big><b>=</b></big></code> (equal sign).
+ * <code><b>=</b></code> (equal sign).
  * </p>
  * <p>
- * An escape character <code><big><b>\</b></big></code>
+ * An escape character <code><b>\</b></code>
  * followed by any of these replacement characters
  * is an escape sequence, and there are no other escape sequences.
  * An equal sign is only part of an escape sequence
@@ -135,16 +135,16 @@
  * string can contain <cite>accidental escapes</cite>, apparent escape
  * sequences which must not be interpreted as manglings.
  * These are disabled by replacing their leading backslash with an
- * escape sequence (<code><big><b>\-</b></big></code>).  To mangle a string, three logical steps
+ * escape sequence (<code><b>\-</b></code>).  To mangle a string, three logical steps
  * are required, though they may be carried out in one pass:
  * </p>
  * <ol>
  *   <li>In each accidental escape, replace the backslash with an escape sequence
- * (<code><big><b>\-</b></big></code>).</li>
+ * (<code><b>\-</b></code>).</li>
  *   <li>Replace each dangerous character with an escape sequence
- * (<code><big><b>\|</b></big></code> for <code><big><b>/</b></big></code>, etc.).</li>
+ * (<code><b>\|</b></code> for <code><b>/</b></code>, etc.).</li>
  *   <li>If the first two steps introduced any change, <em>and</em>
- * if the string does not already begin with a backslash, prepend a null prefix (<code><big><b>\=</b></big></code>).</li>
+ * if the string does not already begin with a backslash, prepend a null prefix (<code><b>\=</b></code>).</li>
  * </ol>
  *
  * To demangle a mangled string that begins with an escape,
@@ -174,9 +174,9 @@
  * is a many-to-one function.
  * A mangled string is defined as <cite>validly mangled</cite> if
  * it is in fact the unique mangling of its spelling string.
- * Three examples of invalidly mangled strings are <code><big><b>\=foo</b></big></code>,
- * <code><big><b>\-bar</b></big></code>, and <code><big><b>baz\!</b></big></code>, which demangle to <code><big><b>foo</b></big></code>, <code><big><b>\bar</b></big></code>, and
- * <code><big><b>baz\!</b></big></code>, but then remangle to <code><big><b>foo</b></big></code>, <code><big><b>\bar</b></big></code>, and <code><big><b>\=baz\-!</b></big></code>.
+ * Three examples of invalidly mangled strings are <code><b>\=foo</b></code>,
+ * <code><b>\-bar</b></code>, and <code><b>baz\!</b></code>, which demangle to <code><b>foo</b></code>, <code><b>\bar</b></code>, and
+ * <code><b>baz\!</b></code>, but then remangle to <code><b>foo</b></code>, <code><b>\bar</b></code>, and <code><b>\=baz\-!</b></code>.
  * If a language back-end or runtime is using mangled names,
  * it should never present an invalidly mangled bytecode
  * name to the JVM.  If the runtime encounters one,
@@ -237,10 +237,10 @@
  * </p>
  * <p>
  * For example, an HTML-like spelling
- * <code><big><b>&lt;pre&gt;</b></big></code> mangles to
- * <code><big><b>\^pre\_</b></big></code> and could
+ * <code><b>&lt;pre&gt;</b></code> mangles to
+ * <code><b>\^pre\_</b></code> and could
  * display more cleanly as
- * <code><big><b>'&lt;pre&gt;'</b></big></code>,
+ * <code><b>'&lt;pre&gt;'</b></code>,
  * with the quotes included.
  * Such string-like conventions are <em>not</em> suitable
  * for mangled bytecode names, in part because
@@ -256,11 +256,11 @@
  * which contain dangerous characters (like dots in field
  * names or brackets in method names) should not be
  * simply quoted.  The bytecode names
- * <code><big><b>\=phase\,1</b></big></code> and
- * <code><big><b>phase.1</b></big></code> are distinct,
+ * <code><b>\=phase\,1</b></code> and
+ * <code><b>phase.1</b></code> are distinct,
  * and in demangled displays they should be presented as
- * <code><big><b>'phase.1'</b></big></code> and something like
- * <code><big><b>'phase'.1</b></big></code>, respectively.
+ * <code><b>'phase.1'</b></code> and something like
+ * <code><b>'phase'.1</b></code>, respectively.
  * </p>
  */
 public final class NameCodec {
--- a/test/TestCommon.gmk	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/TestCommon.gmk	Thu Mar 08 10:18:28 2018 -0800
@@ -34,6 +34,9 @@
 USE_JTREG_ASSERT ?= true
 LIMIT_JTREG_VM_MEMORY ?= true
 
+X:=
+SPACE:=$(X) $(X)
+
 .DEFAULT : all
 
 # Empty these to get rid of some default rules
@@ -87,6 +90,11 @@
   endif
 endif
 
+# convert list of directories to dos paths
+define MixedDirs
+$(foreach i,$1,$(shell $(GETMIXEDPATH) "${i}"))
+endef
+
 ifdef ALT_SLASH_JAVA
   SLASH_JAVA = $(ALT_SLASH_JAVA)
 endif
@@ -124,6 +132,19 @@
   PRODUCT_HOME := $(PRODUCT_HOME)
 endif
 
+# On Windows, setup the _NT_SYMBOL_PATH if possible.
+ifeq ($(PLATFORM), windows)
+  ifndef _NT_SYMBOL_PATH
+    ifdef PRODUCT_SYMBOLS_HOME
+      _NT_SYMBOL_PATH := \
+          $(subst $(SPACE),;,$(strip $(call MixedDirs, $(sort $(dir $(wildcard \
+          $(addprefix $(PRODUCT_SYMBOLS_HOME)/bin/, *.pdb */*.pdb)))))))
+      export _NT_SYMBOL_PATH
+    endif
+  endif
+  JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH='$(_NT_SYMBOL_PATH)'
+endif
+
 # Expect JPRT to set JPRT_PRODUCT_ARGS (e.g. -server etc.)
 #   Should be passed into 'java' only.
 #   Could include: -d64 -server -client OR any java option
@@ -334,11 +355,6 @@
   JTREG_EXCLUSIONS = $(PROBLEM_LISTS:%=-exclude:%)
 endif
 
-# convert list of directories to dos paths
-define MixedDirs
-$(foreach i,$1,$(shell $(GETMIXEDPATH) "${i}"))
-endef
-
 # ------------------------------------------------------------------
 
 # When called from JPRT the TESTDIRS variable is set to the jtreg tests to run
--- a/test/jdk/TEST.groups	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/jdk/TEST.groups	Thu Mar 08 10:18:28 2018 -0800
@@ -29,6 +29,7 @@
     :jdk_lang \
     :jdk_util \
     :jdk_svc_sanity \
+    :build_sanity \
     sun/nio/cs/ISO8859x.java \
     java/nio/Buffer \
     com/sun/crypto/provider/Cipher \
@@ -61,6 +62,10 @@
 # Other test definitions; generally smaller granularity than tiers
 #
 
+# Build source checking
+build_sanity = \
+    sanity/releaseFile
+
 # java.lang package and VM runtime support
 jdk_lang = \
     java/lang \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/net/httpserver/TaskRejectedTest.java	Thu Mar 08 10:18:28 2018 -0800
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute 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 8169358
+ * @summary  HttpServer does not close client connection when RejectedExecutionException occurs.
+ */
+
+import com.sun.net.httpserver.HttpServer;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.MalformedURLException;
+import java.net.SocketException;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+
+public class TaskRejectedTest {
+
+    private static final int BACKLOG = 0;
+
+    private static final String REQUEST_PATH = "/";
+
+    private static final int TIMEOUT = 10000; // 10 sec
+
+    private static void runClient(InetSocketAddress listenAddr)
+                                     throws MalformedURLException, IOException {
+        URL url = new URL("http", listenAddr.getHostString(),
+                                            listenAddr.getPort(), REQUEST_PATH);
+        HttpURLConnection con = (HttpURLConnection)url.openConnection();
+        con.setConnectTimeout(TIMEOUT);
+        con.setReadTimeout(TIMEOUT);
+
+        try {
+            con.connect();
+            con.getResponseCode();
+        } catch (SocketTimeoutException e) {
+            throw new RuntimeException("Connection was not closed by peer.", e);
+        } catch (SocketException e) {
+            // Expected (connection reset)
+        } finally {
+            con.disconnect();
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        Logger logger = Logger.getLogger(
+                            HttpServer.class.getPackage().getName());
+        Handler consoleHandler = new ConsoleHandler();
+        consoleHandler.setLevel(Level.FINEST);
+        logger.setLevel(Level.FINEST);
+        logger.addHandler(consoleHandler);
+
+        Executor executor = Executors.newSingleThreadExecutor(r -> {
+            throw new RejectedExecutionException("test");
+        });
+
+        InetSocketAddress addr = new InetSocketAddress(
+                                         InetAddress.getLoopbackAddress(), 0);
+        HttpServer httpServer = HttpServer.create(addr, BACKLOG);
+        httpServer.setExecutor(executor);
+
+        httpServer.createContext(REQUEST_PATH, exc -> {
+            exc.sendResponseHeaders(200, 0);
+            exc.close();
+        });
+
+        try {
+            httpServer.start();
+            runClient(httpServer.getAddress());
+        } finally {
+            httpServer.stop(0);
+        }
+    }
+}
+
--- a/test/jdk/java/nio/channels/AsyncCloseAndInterrupt.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/jdk/java/nio/channels/AsyncCloseAndInterrupt.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -708,9 +708,9 @@
 
         test(connectedSocketChannelFactory);
 
-        if (TestUtil.onWindows()) {
+        if (TestUtil.onWindows() || TestUtil.onSolaris()) {
             log.println("WARNING Cannot reliably test connect/finishConnect"
-                + " operations on Windows");
+                + " operations on this platform");
         } else {
             // Only the following tests need refuser's connection backlog
             // to be saturated
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/nio/channels/SocketChannel/CloseDuringConnect.java	Thu Mar 08 10:18:28 2018 -0800
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute 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 8198928
+ * @run main CloseDuringConnect
+ * @summary Attempt to cause a deadlock by closing a SocketChannel in one thread
+ *     where another thread is closing the channel after a connect fail
+ */
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.nio.channels.SocketChannel;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.stream.IntStream;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
+public class CloseDuringConnect {
+
+    // number of test iterations, needs to be 5-10 at least
+    static final int ITERATIONS = 50;
+
+    // maximum delay before closing SocketChannel, in milliseconds
+    static final int MAX_DELAY_BEFORE_CLOSE = 20;
+
+    /**
+     * Returns the socket address of an endpoint that refuses connections. The
+     * endpoint is an InetSocketAddress where the address is the loopback address
+     * and the port is a system port (1-1023 range).
+     */
+    static SocketAddress refusingEndpoint() {
+        InetAddress lb = InetAddress.getLoopbackAddress();
+        int port = 1;
+        while (port < 1024) {
+            SocketAddress sa = new InetSocketAddress(lb, port);
+            try {
+                SocketChannel.open(sa).close();
+            } catch (IOException ioe) {
+                return sa;
+            }
+            port++;
+        }
+        throw new RuntimeException("Unable to find system port that is refusing connections");
+    }
+
+    /**
+     * Invoked by a task in the thread pool to connect to a remote address.
+     * The connection should never be established.
+     */
+    static Void connect(SocketChannel sc, SocketAddress remote) {
+        try {
+            if (!sc.connect(remote)) {
+                while (!sc.finishConnect()) {
+                    Thread.yield();
+                }
+            }
+            throw new RuntimeException("Connected, should not happen");
+        } catch (IOException expected) { }
+        if (sc.isConnected())
+            throw new RuntimeException("isConnected return true, should not happen");
+        return null;
+    }
+
+    /**
+     * Invoked by a task in the thread pool to close a socket channel.
+     */
+    static Void close(SocketChannel sc) {
+        try {
+            sc.close();
+        } catch (IOException e) {
+            throw new UncheckedIOException("close failed", e);
+        }
+        return null;
+    }
+
+    /**
+     * Test for deadlock by submitting a task to connect to the given address
+     * while another task closes the socket channel.
+     * @param pool the thread pool to submit or schedule tasks
+     * @param remote the remote address, does not accept connections
+     * @param blocking socket channel blocking mode
+     * @param delay the delay, in millis, before closing the channel
+     */
+    static void test(ScheduledExecutorService pool,
+                     SocketAddress remote,
+                     boolean blocking,
+                     long delay) {
+        try {
+            SocketChannel sc = SocketChannel.open();
+            sc.configureBlocking(blocking);
+            Future<Void> r1 = pool.submit(() -> connect(sc, remote));
+            Future<Void> r2 = pool.schedule(() -> close(sc), delay, MILLISECONDS);
+            r1.get();
+            r2.get();
+        } catch (Throwable t) {
+            throw new RuntimeException("Test failed", t);
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        SocketAddress refusing = refusingEndpoint();
+        ScheduledExecutorService pool = Executors.newScheduledThreadPool(2);
+        try {
+            IntStream.range(0, ITERATIONS).forEach(i -> {
+                System.out.format("Iteration %d ...%n", (i + 1));
+
+                // Execute the test for varying delays up to MAX_DELAY_BEFORE_CLOSE,
+                // for socket channels configured both blocking and non-blocking
+                IntStream.range(0, MAX_DELAY_BEFORE_CLOSE).forEach(delay -> {
+                    test(pool, refusing, /*blocking mode*/true, delay);
+                    test(pool, refusing, /*blocking mode*/false, delay);
+                });
+            });
+        } finally {
+            pool.shutdown();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sanity/releaseFile/CheckSource.java	Thu Mar 08 10:18:28 2018 -0800
@@ -0,0 +1,120 @@
+
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute 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 8193660
+ * @summary Check SOURCE line in "release" file for closedjdk
+ * @run main CheckSource
+ */
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+public class CheckSource {
+
+    CheckSource(String dataFile, boolean isOpenJDK) {
+        // Read data files
+        readFile(dataFile, isOpenJDK);
+    }
+
+    private void readFile(String fileName, boolean isOpenJDK) {
+        String fishForSOURCE = null;
+
+        File file = new File(fileName);
+
+        // open the stream to read in for Entries
+        try (BufferedReader buffRead =
+            new BufferedReader(new FileReader(fileName))) {
+
+            // this is the string read
+            String readIn;
+
+            // let's read some strings!
+            while ((readIn = buffRead.readLine()) != null) {
+                readIn = readIn.trim();
+
+                // throw out blank lines
+                if (readIn.length() == 0)
+                    continue;
+
+                // grab SOURCE line
+                if (readIn.startsWith("SOURCE=")) {
+                    fishForSOURCE = readIn;
+                    break;
+                }
+            }
+        } catch (FileNotFoundException fileExcept) {
+            throw new RuntimeException("File " + fileName +
+                                       " not found reading data!", fileExcept);
+        } catch (IOException ioExcept) {
+            throw new RuntimeException("Unexpected problem reading data!",
+                                       ioExcept);
+        }
+
+        // was SOURCE even found?
+        if (fishForSOURCE == null) {
+            throw new RuntimeException("SOURCE line was not found!");
+        } else {
+            // OK it was found, did it have correct sources?
+            System.out.println("The source string found: " + fishForSOURCE);
+
+            // First it MUST have .: regardless of closed or openJDK
+            if (!fishForSOURCE.contains(".:")) {
+                throw new RuntimeException("The test failed, .: not found!");
+            }
+            // take out the .: source path
+            fishForSOURCE = fishForSOURCE.replace(".:", "");
+
+            // if its closedJDK it MUST have open:
+            if (!isOpenJDK && !fishForSOURCE.contains("open:")) {
+                throw new RuntimeException("The test failed, open: not found!");
+            }
+            // take out the open: source path
+            fishForSOURCE = fishForSOURCE.replace("open:", "");
+
+            // if any other source exists, that's an error
+            if (fishForSOURCE.contains(":")) {
+                throw new RuntimeException("The test failed, additional sources found!");
+            }
+        }
+
+        // Everything was fine
+        System.out.println("The test passed!");
+    }
+
+    public static void main(String args[]) {
+        String jdkPath = System.getProperty("test.jdk");
+        String runtime = System.getProperty("java.runtime.name");
+
+        System.out.println("JDK Path : " + jdkPath);
+        System.out.println("Runtime Name : " + runtime);
+
+        new CheckSource(jdkPath + "/release",
+                              runtime.contains("OpenJDK"));
+    }
+}
--- a/test/jdk/sanity/releaseFile/NegativeSOURCETest.java	Thu Mar 08 14:31:54 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute 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 8192837
- * @summary Test to verify release file does not contain closed repo info if it's open bundle
- * @run main NegativeSOURCETest
- */
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-public class NegativeSOURCETest {
-
-    NegativeSOURCETest(String dataFile) {
-        // Read data files
-        readFile(dataFile);
-    }
-
-    private void readFile(String fileName) {
-        String fishForSOURCE = null;
-
-        File file = new File(fileName);
-
-        // open the stream to read in for Entries
-        try (BufferedReader buffRead =
-            new BufferedReader(new FileReader(fileName))) {
-
-            // this is the string read
-            String readIn;
-
-            // let's read some strings!
-            while ((readIn = buffRead.readLine()) != null) {
-                readIn = readIn.trim();
-
-                // throw out blank lines
-                if (readIn.length() == 0)
-                    continue;
-
-                // grab SOURCE line
-                if (readIn.startsWith("SOURCE=")) {
-                    fishForSOURCE = readIn;
-                    break;
-                }
-            }
-        } catch (FileNotFoundException fileExcept) {
-            throw new RuntimeException("File " + fileName +
-                                       " not found reading data!", fileExcept);
-        } catch (IOException ioExcept) {
-            throw new RuntimeException("Unexpected problem reading data!",
-                                       ioExcept);
-        }
-
-        // was SOURCE even found?
-        if (fishForSOURCE == null) {
-            throw new RuntimeException("SOURCE line was not found!");
-        } else {
-            // OK it was found, did it have closed/open in it?
-            if (fishForSOURCE.contains("closed") || fishForSOURCE.contains("open")) {
-                System.out.println("The offending string: " + fishForSOURCE);
-                throw new RuntimeException("The test failed, closed/open found!");
-            }
-        }
-
-        // Everything was fine
-        System.out.println("The test passed!");
-    }
-
-    public static void main(String args[]) {
-        String jdkPath = System.getProperty("test.jdk");
-        String runtime = System.getProperty("java.runtime.name");
-
-        System.out.println("JDK Path : " + jdkPath);
-        System.out.println("Runtime Name : " + runtime);
-
-        if (runtime.contains("OpenJDK"))
-            new NegativeSOURCETest(jdkPath + "/release");
-        else
-            System.out.println("Test skipped: not an OpenJDK build.");
-    }
-}
--- a/test/jdk/sun/security/ssl/HandshakeHash/HandshakeHashCloneExhaustion.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/jdk/sun/security/ssl/HandshakeHash/HandshakeHashCloneExhaustion.java	Thu Mar 08 10:18:28 2018 -0800
@@ -42,6 +42,7 @@
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.security.MessageDigest;
 import java.security.Security;
 import javax.net.ssl.SSLSocket;
 
@@ -49,6 +50,7 @@
 
     private static String[] protocol;
     private static String[] ciphersuite;
+    private static String[] mds = { "SHA", "MD5", "SHA-256" };
 
     /*
      * ==================
@@ -57,6 +59,14 @@
     public static void main(String[] args) throws Exception {
         // Add in a non-cloneable MD5/SHA1/SHA-256 implementation
         Security.insertProviderAt(new MyProvider(), 1);
+        // make sure our provider is functioning
+        for (String s : mds) {
+            MessageDigest md = MessageDigest.getInstance(s);
+            String p = md.getProvider().getName();
+            if (!p.equals("MyProvider")) {
+                throw new RuntimeException("Unexpected provider: " + p);
+            }
+        }
 
         if (args.length != 2) {
             throw new Exception(
--- a/test/jdk/sun/security/ssl/HandshakeHash/MyProvider.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/jdk/sun/security/ssl/HandshakeHash/MyProvider.java	Thu Mar 08 10:18:28 2018 -0800
@@ -28,8 +28,8 @@
     public MyProvider() {
         super("MyProvider", "1.0",
                 "Test Provider: SHA1/MD5/SHA256 exhaustion testing");
-        put("MessageDigest.SHA", "DigestBase.SHADigest");
-        put("MessageDigest.MD5", "DigestBase.MD5Digest");
-        put("MessageDigest.SHA-256", "DigestBase.SHA256Digest");
+        put("MessageDigest.SHA", "DigestBase$SHA");
+        put("MessageDigest.MD5", "DigestBase$MD5");
+        put("MessageDigest.SHA-256", "DigestBase$SHA256");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 4638136 7198273 8025633 8081854
+ * @bug 4638136 7198273 8025633 8081854 8182765
  * @summary  Add ability to skip over nav bar for accessibility
  * @author dkramer
  * @library ../lib
@@ -46,21 +46,37 @@
                 "p1", "p2");
         checkExit(Exit.OK);
 
-        // Testing only for the presence of the <a href> and <a name>
+        // Testing only for the presence of the <a href> and <a id>
         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"
+                "<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 id=\"skip.navbar.bottom\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "p1", "p2");
+        checkExit(Exit.OK);
+
+        // Testing only for the presence of <a name>
+        checkOutput("p1/C1.html", true,
+                "<a name=\"skip.navbar.top\">\n"
+                + "<!--   -->\n"
+                + "</a>",
                 "<a name=\"skip.navbar.bottom\">\n"
                 + "<!--   -->\n"
                 + "</a>");
-
-
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/AccessSummary/AccessSummary.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/AccessSummary/AccessSummary.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug      4637604 4775148 8183037
+ * @bug      4637604 4775148 8183037 8182765
  * @summary  Test the tables for summary attribute
  * @author   dkramer
  * @library ../lib
@@ -47,15 +47,29 @@
     void testAccessSummary() {
         javadoc("-d", "out", "-sourcepath", testSrc, "p1", "p2");
         checkExit(Exit.OK);
-        checkOutput("overview-summary.html", true,
+        checkSummary(false);
+    }
+
+    @Test
+    void testAccessSummary_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "p1", "p2");
+        checkExit(Exit.OK);
+        checkSummary(true);
+    }
+
+    void checkSummary(boolean found) {
+        checkOutput("overview-summary.html", found,
                  "summary=\"Package Summary table, listing packages, and an explanation\"");
 
-        // Test that the summary attribute appears
-        checkOutput("p1/C1.html", true,
+        // Test that the summary attribute appears or not
+        checkOutput("p1/C1.html", found,
                  "summary=\"Constructor Summary table, listing constructors, and an explanation\"");
 
-        // Test that the summary attribute appears
-        checkOutput("constant-values.html", true,
+        // Test that the summary attribute appears or not
+        checkOutput("constant-values.html", found,
                  "summary=\"Constant Field Values table, listing constant fields, and values\"");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/MetaTag/MetaTag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/MetaTag/MetaTag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug      4034096 4764726 6235799
+ * @bug      4034096 4764726 6235799 8182765
  * @summary  Add support for HTML keywords via META tag for
  *           class and member names to improve API search
  * @author   dkramer
@@ -58,23 +58,7 @@
 
         checkExit(Exit.OK);
 
-        checkOutput("p1/C1.html", true,
-                "<meta name=\"keywords\" content=\"p1.C1 class\">",
-                "<meta name=\"keywords\" content=\"field1\">",
-                "<meta name=\"keywords\" content=\"field2\">",
-                "<meta name=\"keywords\" content=\"method1()\">",
-                "<meta name=\"keywords\" content=\"method2()\">");
-
-        checkOutput("p1/package-summary.html", true,
-                "<meta name=\"keywords\" content=\"p1 package\">");
-
-        checkOutput("overview-summary.html", true,
-                "<meta name=\"keywords\" content=\"Overview, Sample Packages\">");
-
-        // NOTE: Hopefully, this regression test is not run at midnight.  If the output
-        // was generated yesterday and this test is run today, the test will fail.
-        checkOutput("overview-summary.html", true,
-                "<meta name=\"date\" content=\"" + date() + "\">");
+        checkMeta("dc.created", true);
     }
 
     @Test
@@ -87,24 +71,55 @@
         checkExit(Exit.OK);
 
         // No keywords when -keywords is not used.
-        checkOutput("p1/C1.html", false,
-                "<META NAME=\"keywords\" CONTENT=\"p1.C1 class\">",
-                "<META NAME=\"keywords\" CONTENT=\"field1\">",
-                "<META NAME=\"keywords\" CONTENT=\"field2\">",
-                "<META NAME=\"keywords\" CONTENT=\"method1()\">",
-                "<META NAME=\"keywords\" CONTENT=\"method2()\">");
+        checkMeta("dc.created", false);
+    }
+
+    @Test
+    void testStandard_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-keywords",
+                "-doctitle", "Sample Packages",
+                "p1", "p2");
+
+        checkExit(Exit.OK);
+
+        checkMeta("date", true);
+    }
 
-        checkOutput("p1/package-summary.html", false,
-                "<META NAME=\"keywords\" CONTENT=\"p1 package\">");
+    @Test
+    void testNoTimestamp_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-notimestamp",
+                "-doctitle", "Sample Packages",
+                "p1", "p2");
+        checkExit(Exit.OK);
+
+        // No keywords when -keywords is not used.
+        checkMeta("date", false);
+    }
 
-        checkOutput("overview-summary.html", false,
-                "<META NAME=\"keywords\" CONTENT=\"Overview Summary, Sample Packages\">");
+    void checkMeta(String metaNameDate, boolean found) {
+        checkOutput("p1/C1.html", found,
+                "<meta name=\"keywords\" content=\"p1.C1 class\">",
+                "<meta name=\"keywords\" content=\"field1\">",
+                "<meta name=\"keywords\" content=\"field2\">",
+                "<meta name=\"keywords\" content=\"method1()\">",
+                "<meta name=\"keywords\" content=\"method2()\">");
 
-        // The date metatag should not show up when -notimestamp is used.
+        checkOutput("p1/package-summary.html", found,
+                "<meta name=\"keywords\" content=\"p1 package\">");
+
+        checkOutput("overview-summary.html", found,
+                "<meta name=\"keywords\" content=\"Overview, Sample Packages\">");
+
         // NOTE: Hopefully, this regression test is not run at midnight.  If the output
         // was generated yesterday and this test is run today, the test will fail.
-        checkOutput("overview-summary.html", false,
-                "<META NAME=\"date\" CONTENT=\"" + date() + "\">");
+        checkOutput("overview-summary.html", found,
+                "<meta name=\"" + metaNameDate + "\" content=\"" + date() + "\">");
     }
 
     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
--- a/test/langtools/jdk/javadoc/doclet/ValidHtml/ValidHtml.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/ValidHtml/ValidHtml.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 4275630 4749453 4625400 4753048 4415270 8074521
+ * @bug 4275630 4749453 4625400 4753048 4415270 8074521 8182765
  * @summary  Generated HTML is invalid with frames.
  *           Displays unnecessary horizontal scroll bars.
  *           Missing whitespace in DOCTYPE declaration
@@ -53,26 +53,42 @@
                     "-sourcepath", testSrc,
                     "p1", "p2");
         checkExit(Exit.OK);
-
-        // Test the proper DOCTYPE element are present:
-        checkOutput("index.html",              true, LOOSE);
-        checkOutput("overview-summary.html",   true, LOOSE);
-        checkOutput("p1/package-summary.html", true, LOOSE);
-        checkOutput("p1/C.html",               true, LOOSE);
-        checkOutput("overview-frame.html",     true, LOOSE);
-        checkOutput("allclasses-frame.html",   true, LOOSE);
-        checkOutput("p1/package-frame.html",   true, LOOSE);
-
         // Test for IFRAME element:
         checkOutput("index.html", true,
                 "<iframe");
-
         // Test the table elements are in the correct order:
         checkOutput("p1/package-use.html", true,
                 "</td>\n"
                 + "</tr>");
+        String HTML5 = "<!DOCTYPE HTML>";
+        checkValidHTML(HTML5);
     }
 
-    private static final String LOOSE =
-            "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
+    @Test
+    void test_html4() {
+        // Test for all cases except the split index page
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-doctitle", "Document Title",
+                "-windowtitle", "Window Title",
+                "-use",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc,
+                "p1", "p2");
+        checkExit(Exit.OK);
+        String HTML4 = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
+
+        checkValidHTML(HTML4);
 }
+
+    void checkValidHTML(String doctype) {
+        // Test the proper DOCTYPE element are present:
+        checkOutput("index.html", true, doctype);
+        checkOutput("overview-summary.html", true, doctype);
+        checkOutput("p1/package-summary.html", true, doctype);
+        checkOutput("p1/C.html", true, doctype);
+        checkOutput("overview-frame.html", true, doctype);
+        checkOutput("allclasses-frame.html", true, doctype);
+        checkOutput("p1/package-frame.html", true, doctype);
+    }
+}
--- a/test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8025633 8025524 8081854 8187521
+ * @bug 8025633 8025524 8081854 8187521 8182765
  * @summary Test for valid name attribute in HTML anchors.
  * @author Bhavesh Patel
  * @library /tools/lib ../lib
@@ -33,7 +33,6 @@
  */
 
 import java.io.IOException;
-import java.nio.charset.Charset;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
@@ -54,6 +53,7 @@
     @Test
     void testHtml4(Path ignore) {
         javadoc("-d", "out-html4",
+                "-html4",
                 "-sourcepath", testSrc,
                 "-source", "8", //so that '_' can be used as an identifier
                 "-use",
@@ -175,7 +175,6 @@
                 "-sourcepath", testSrc,
                 "-source", "8", //so that '_' can be used as an identifier
                 "-use",
-                "-html5",
                 "pkg1");
         checkExit(Exit.OK);
 
--- a/test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 8025633 8081854
+ * @bug 8025633 8081854 8182765
  * @summary  Make sure that annotations types with optional elements have
  *           element headers
  * @author   Mahmood Ali
@@ -48,6 +48,18 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/AnnotationOptional.html", true,
+            "<a id=\"annotation.type.element.detail\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/AnnotationOptional.html", true,
             "<a name=\"annotation.type.element.detail\">");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4973609 8015249 8025633 8026567 6469561 8071982 8162363
+ * @bug      4973609 8015249 8025633 8026567 6469561 8071982 8162363 8182765
  * @summary  Make sure that annotation types with 0 members does not have
  *           extra HR tags.
  * @author   jamieh
@@ -72,11 +72,11 @@
         checkOutput("pkg/AnnotationType.html", true,
                     "<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->",
                     "<ul class=\"blockList\">",
-                    "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">",
+                    "<li class=\"blockList\"><a id=\"annotation.type.element.detail\">",
                     "<!--   -->",
                     "</a>",
                     "<h3>Element Detail</h3>",
-                    "<a name=\"value--\">",
+                    "<a id=\"value()\">",
                     "<!--   -->",
                     "</a>",
                     "<ul class=\"blockListLast\">",
@@ -89,7 +89,10 @@
                 + "<P>\n\n"
                 + "<P>"
                 + "<!-- ========= END OF CLASS DATA ========= -->" + "<HR>");
+    }
 
+    @Test
+    void testLinkSource() {
         javadoc("-d", "out-2",
                 "-linksource",
                 "-sourcepath", testSrc,
@@ -112,4 +115,16 @@
                 "public @interface <a href=\"../src-html/pkg/AnnotationTypeField.html#line.31"
                 + "\">AnnotationTypeField</a></pre>");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+        checkOutput("pkg/AnnotationType.html", true,
+                "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">",
+                "<a name=\"value--\">");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testClassCrossReferences/TestClassCrossReferences.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testClassCrossReferences/TestClassCrossReferences.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 4652655 4857717 8025633 8026567 8071982 8164407
+ * @bug 4652655 4857717 8025633 8026567 8071982 8164407 8182765
  * @summary This test verifies that class cross references work properly.
  * @author jamieh
  * @library ../lib
@@ -35,6 +35,8 @@
 
 public class TestClassCrossReferences extends JavadocTester {
 
+    static final String uri = "http://docs.oracle.com/javase/8/docs/api/";
+
     public static void main(String... args) throws Exception {
         TestClassCrossReferences tester = new TestClassCrossReferences();
         tester.runTests();
@@ -42,8 +44,6 @@
 
     @Test
     void test() {
-        final String uri = "http://docs.oracle.com/javase/8/docs/api/";
-
         javadoc("-d", "out",
                 "-Xdoclint:none",
                 "-sourcepath", testSrc,
@@ -58,7 +58,7 @@
                 + "title=\"class or interface in javax.swing.text\" class=\"externalLink\"><code>Link to AttributeContext innerclass</code></a>",
                 "<a href=\"" + uri + "java/math/BigDecimal.html?is-external=true\" "
                 + "title=\"class or interface in java.math\" class=\"externalLink\"><code>Link to external class BigDecimal</code></a>",
-                "<a href=\"" + uri + "java/math/BigInteger.html?is-external=true#gcd-java.math.BigInteger-\" "
+                "<a href=\"" + uri + "java/math/BigInteger.html?is-external=true#gcd(java.math.BigInteger)\" "
                 + "title=\"class or interface in java.math\" class=\"externalLink\"><code>Link to external member gcd</code></a>",
                 "<a href=\"" + uri + "javax/tools/SimpleJavaFileObject.html?is-external=true#URI\" "
                 + "title=\"class or interface in javax.tools\" class=\"externalLink\"><code>Link to external member URI</code></a>",
@@ -68,4 +68,18 @@
                 + "</dl>");
     }
 
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-linkoffline", uri, testSrc,
+                testSrc("C.java"));
+        checkExit(Exit.OK);
+
+        checkOutput("C.html", true,
+                "<a href=\"" + uri + "java/math/BigInteger.html?is-external=true#gcd-java.math.BigInteger-\" "
+                + "title=\"class or interface in java.math\" class=\"externalLink\"><code>Link to external member gcd</code></a>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testClassLinks/TestClassLinks.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testClassLinks/TestClassLinks.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8163800 8175200 8186332
+ * @bug 8163800 8175200 8186332 8182765
  * @summary The fix for JDK-8072052 shows up other minor incorrect use of styles
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -51,11 +51,11 @@
 
         checkOutput("p/C1.html", true,
                 "<code><a href=\"C2.html\" title=\"class in p\">C2</a></code>",
-                "<code><span class=\"memberNameLink\"><a href=\"#C1--\">C1</a></span>()</code>");
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E()\">C1</a></span>()</code>");
 
         checkOutput("p/C2.html", true,
                 "<code><a href=\"C3.html\" title=\"class in p\">C3</a></code>",
-                "<code><span class=\"memberNameLink\"><a href=\"#C2--\">C2</a></span>()</code>");
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E()\">C2</a></span>()</code>");
 
         checkOutput("p/C3.html", true,
                 "<code><a href=\"I1.html\" title=\"interface in p\">I1</a></code>, "
@@ -63,7 +63,7 @@
                 + "<code><a href=\"I2.html\" title=\"interface in p\">I2</a></code>, "
                 + "<code><a href=\"IT1.html\" title=\"interface in p\">IT1</a>&lt;T&gt;</code>, "
                 + "<code><a href=\"IT2.html\" title=\"interface in p\">IT2</a>&lt;java.lang.String&gt;</code>",
-                "<code><span class=\"memberNameLink\"><a href=\"#C3--\">C3</a></span>()</code>");
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E()\">C3</a></span>()</code>");
 
         checkOutput("p/I1.html", true,
                 "<code><a href=\"C3.html\" title=\"class in p\">C3</a></code>",
@@ -82,7 +82,26 @@
 
         checkOutput("p/IT2.html", true,
                 "code><a href=\"C3.html\" title=\"class in p\">C3</a></code>");
-
     }
 
+    @Test
+    void test_html4() {
+
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-package",
+                "p");
+        checkExit(Exit.OK);
+
+        checkOutput("p/C1.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\"#C1--\">C1</a></span>()</code>");
+
+        checkOutput("p/C2.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\"#C2--\">C2</a></span>()</code>");
+
+        checkOutput("p/C3.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\"#C3--\">C3</a></span>()</code>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testConstructors/TestConstructors.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testConstructors/TestConstructors.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8025524 8031625 8081854 8175200 8186332
+ * @bug 8025524 8031625 8081854 8175200 8186332 8182765
  * @summary Test for constructor name which should be a non-qualified name.
  * @author Bhavesh Patel
  * @library ../lib
@@ -48,6 +48,57 @@
 
         checkOutput("pkg1/Outer.html", true,
                 "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"Outer.Inner.html#%3Cinit%3E()\"><code>Inner()</code></a>, \n"
+                + "<a href=\"Outer.Inner.html#%3Cinit%3E(int)\"><code>Inner(int)</code></a>, \n"
+                + "<a href=\"Outer.Inner.NestedInner.html#%3Cinit%3E()\"><code>NestedInner()</code></a>, \n"
+                + "<a href=\"Outer.Inner.NestedInner.html#%3Cinit%3E(int)\"><code>NestedInner(int)</code></a>, \n"
+                + "<a href=\"#%3Cinit%3E()\"><code>Outer()</code></a>, \n"
+                + "<a href=\"#%3Cinit%3E(int)\"><code>Outer(int)</code></a></dd>",
+                "Link: <a href=\"Outer.Inner.html#%3Cinit%3E()\"><code>Inner()</code></a>, "
+                + "<a href=\"#%3Cinit%3E(int)\"><code>Outer(int)</code></a>, "
+                + "<a href=\"Outer.Inner.NestedInner.html#%3Cinit%3E(int)\"><code>NestedInner(int)</code></a>",
+                "<a href=\"#%3Cinit%3E()\">Outer</a></span>()",
+                "<a id=\"&lt;init&gt;(int)\">",
+                "<a href=\"#%3Cinit%3E(int)\">Outer</a></span>&#8203;(int&nbsp;i)",
+                "<a id=\"&lt;init&gt;(int)\">");
+
+        checkOutput("pkg1/Outer.Inner.html", true,
+                "<a href=\"#%3Cinit%3E()\">Inner</a></span>()",
+                "<a id=\"&lt;init&gt;()\">",
+                "<a href=\"#%3Cinit%3E(int)\">Inner</a></span>&#8203;(int&nbsp;i)",
+                "<a id=\"&lt;init&gt;(int)\">");
+
+        checkOutput("pkg1/Outer.Inner.NestedInner.html", true,
+                "<a href=\"#%3Cinit%3E()\">NestedInner</a></span>()",
+                "<a id=\"&lt;init&gt;()\">",
+                "<a href=\"#%3Cinit%3E(int)\">NestedInner</a></span>&#8203;(int&nbsp;i)",
+                "<a id=\"&lt;init&gt;(int)\">");
+
+        checkOutput("pkg1/Outer.Inner.html", false,
+                "Outer.Inner()",
+                "Outer.Inner(int)");
+
+        checkOutput("pkg1/Outer.Inner.NestedInner.html", false,
+                "Outer.Inner.NestedInner()",
+                "Outer.Inner.NestedInner(int)");
+
+        checkOutput("pkg1/Outer.html", false,
+                "<a href=\"Outer.Inner.html#Outer.Inner()\"><code>Outer.Inner()</code></a>",
+                "<a href=\"Outer.Inner.html#Outer.Inner(int)\"><code>Outer.Inner(int)</code></a>",
+                "<a href=\"Outer.Inner.NestedInner.html#Outer.Inner.NestedInner()\"><code>Outer.Inner.NestedInner()</code></a>",
+                "<a href=\"Outer.Inner.NestedInner.html#Outer.Inner.NestedInner(int)\"><code>Outer.Inner.NestedInner(int)</code></a>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/Outer.html", true,
+                "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"Outer.Inner.html#Inner--\"><code>Inner()</code></a>, \n"
                 + "<a href=\"Outer.Inner.html#Inner-int-\"><code>Inner(int)</code></a>, \n"
                 + "<a href=\"Outer.Inner.NestedInner.html#NestedInner--\"><code>NestedInner()</code></a>, \n"
--- a/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4927552 8026567 8071982 8162674 8175200 8175218 8183511 8186332
- *           8169819 8074407 8191030
+ *           8169819 8074407 8191030 8182765
  * @summary  test generated docs for deprecated items
  * @author   jamieh
  * @library  ../lib
@@ -209,6 +209,97 @@
                 + "<li><a href=\"#enum.constant\">Enum Constants</a></li>\n"
                 + "<li><a href=\"#annotation.type.member\">Annotation Type Elements</a></li>\n"
                 + "</ul>",
+                "<a id=\"forRemoval\">",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>For Removal</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Element</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>Enums</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Enum</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestEnum.html\" title=\"enum in pkg\">pkg.TestEnum</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">enum_test1 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>Exceptions</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Exceptions</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestException.html\" title=\"class in pkg\">pkg.TestException</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">exception_test1 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>Fields</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Field</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/DeprecatedClassByAnnotation.html#field\">pkg.DeprecatedClassByAnnotation.field</a></th>\n"
+                + "<td class=\"colLast\"></td>\n"
+                + "</tr>\n"
+                + "<tr class=\"rowColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestAnnotationType.html#field\">pkg.TestAnnotationType.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">annotation_test4 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestClass.html#field\">pkg.TestClass.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">class_test2 passes. This is the second sentence of deprecated description for a field.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"rowColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestError.html#field\">pkg.TestError.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">error_test2 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestException.html#field\">pkg.TestException.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">exception_test2 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"rowColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestInterface.html#field\">pkg.TestInterface.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">interface_test2 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("deprecated-list.html", true,
                 "<a name=\"forRemoval\">",
                 "<table class=\"deprecatedSummary\" summary=\"For Removal table, listing for removal, and an explanation\">\n"
                 + "<caption><span>For Removal</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
--- a/test/langtools/jdk/javadoc/doclet/testExternalOverridenMethod/TestExternalOverridenMethod.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testExternalOverridenMethod/TestExternalOverridenMethod.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 4857717 8025633 8026567 8164407
+ * @bug 4857717 8025633 8026567 8164407 8182765
  * @summary Test to make sure that externally overriden and implemented methods
  * are documented properly.  The method should still include "implements" or
  * "overrides" documentation even though the method is external.
@@ -33,8 +33,9 @@
  * @build JavadocTester TestExternalOverridenMethod
  * @run main TestExternalOverridenMethod
  */
+public class TestExternalOverridenMethod extends JavadocTester {
 
-public class TestExternalOverridenMethod extends JavadocTester {
+    static final String uri = "http://java.sun.com/j2se/1.4.1/docs/api";
 
     public static void main(String... args) throws Exception {
         TestExternalOverridenMethod tester = new TestExternalOverridenMethod();
@@ -43,7 +44,6 @@
 
     @Test
     void test() {
-        String uri = "http://java.sun.com/j2se/1.4.1/docs/api";
         javadoc("-d", "out",
                 "-sourcepath", testSrc,
                 "-linkoffline", uri, testSrc,
@@ -52,6 +52,29 @@
 
         checkOutput("pkg/XReader.html", true,
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"" + uri + "/java/io/FilterReader.html?is-external=true#read()\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">read</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"" + uri + "/java/io/FilterReader.html?is-external=true\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">FilterReader</a></code></dd>",
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"" + uri + "/java/io/DataInput.html?is-external=true#readInt()\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">readInt</a></code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"" + uri + "/java/io/DataInput.html?is-external=true\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">DataInput</a></code></dd>"
+        );
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-linkoffline", uri, testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/XReader.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
                 + "<dd><code><a href=\"" + uri + "/java/io/FilterReader.html?is-external=true#read--\" "
                 + "title=\"class or interface in java.io\" class=\"externalLink\">read</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"" + uri + "/java/io/FilterReader.html?is-external=true\" "
--- a/test/langtools/jdk/javadoc/doclet/testHiddenTag/TestHiddenTag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHiddenTag/TestHiddenTag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8073100
+ * @bug 8073100 8182765
  * @summary ensure the hidden tag works as intended
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -38,7 +38,6 @@
         tester.runTests();
     }
 
-
     /**
      * Perform tests on &#64;hidden tags
      */
@@ -51,20 +50,20 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg1/A.html", true,
-                "<a name=\"visibleField\">",
-                "<a name=\"visibleMethod--\">",
+                "<a id=\"visibleField\">",
+                "<a id=\"visibleMethod()\">",
                 "<dt>Direct Known Subclasses:</dt>\n" +
                 "<dd><code><a href=\"A.VisibleInner.html\" title=\"class in pkg1\">" +
                 "A.VisibleInner</a></code>, <code><a href=\"A.VisibleInnerExtendsInvisibleInner.html\" " +
                 "title=\"class in pkg1\">A.VisibleInnerExtendsInvisibleInner</a></code></dd>");
 
         checkOutput("pkg1/A.html", false,
-                "<a name=\"inVisibleField\">",
-                "<a name=\"inVisibleMethod--\">");
+                "<a id=\"inVisibleField\">",
+                "<a id=\"inVisibleMethod()\">");
 
         checkOutput("pkg1/A.VisibleInner.html", true,
                 "<code><a href=\"A.html#visibleField\">visibleField</a></code>",
-                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>",
+                "<code><a href=\"A.html#visibleMethod()\">visibleMethod</a></code>",
                 "<h3>Nested classes/interfaces inherited from class&nbsp;pkg1." +
                 "<a href=\"A.html\" title=\"class in pkg1\">A</a></h3>\n" +
                 "<code><a href=\"A.VisibleInner.html\" title=\"class in pkg1\">" +
@@ -73,16 +72,16 @@
                 "</ul>");
 
         checkOutput("pkg1/A.VisibleInner.html", false,
-                "../pkg1/A.VisibleInner.html#VisibleInner--",
-                "<a name=\"inVisibleField\">",
-                "<a name=\"inVisibleMethod--\">");
+                "../pkg1/A.VisibleInner.html#VisibleInner()",
+                "<a id=\"inVisibleField\">",
+                "<a id=\"inVisibleMethod()\">");
 
         checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", true,
                 "<pre>public static class <span class=\"typeNameLabel\">" +
                 "A.VisibleInnerExtendsInvisibleInner</span>\n" +
                 "extends <a href=\"A.html\" title=\"class in pkg1\">A</a></pre>",
                 "<code><a href=\"A.html#visibleField\">visibleField</a></code></li>",
-                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>");
+                "<code><a href=\"A.html#visibleMethod()\">visibleMethod</a></code>");
 
         checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", false,
                 "invisibleField",
@@ -98,6 +97,33 @@
         checkFiles(false,
                 "pkg1/A.InvisibleInner.html",
                 "pkg1/A.InvisibleInnerExtendsVisibleInner.html");
+    }
 
+    @Test
+    public void test1_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/A.html", true,
+                "<a name=\"visibleField\">",
+                "<a name=\"visibleMethod--\">");
+
+        checkOutput("pkg1/A.VisibleInner.html", true,
+                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>");
+
+        checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", true,
+                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>");
+
+        checkOutput("pkg1/A.html", false,
+                "<a name=\"inVisibleMethod--\">");
+
+        checkOutput("pkg1/A.VisibleInner.html", false,
+                "../pkg1/A.VisibleInner.html#VisibleInner--",
+                "<a name=\"inVisibleField\">",
+                "<a name=\"inVisibleMethod--\">");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testHref/TestHref.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHref/TestHref.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4663254 8016328 8025633 8026567 8081854
+ * @bug      4663254 8016328 8025633 8026567 8081854 8182765
  * @summary  Verify that spaces do not appear in hrefs and anchors.
  * @author   jamieh
  * @library  ../lib
@@ -50,6 +50,49 @@
 
         checkOutput("pkg/C1.html", true,
                 //External link.
+                "href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true#wait(long,int)\"",
+                //Member summary table link.
+                "href=\"#method(int,int,java.util.ArrayList)\"",
+                //Anchor test.
+                "<a id=\"method(int,int,java.util.ArrayList)\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                //Backward compatibility anchor test."pkg/C1.html",
+                "<a id=\"method(int,int,java.util.ArrayList)\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+
+        checkOutput("pkg/C2.html", true,
+                //{@link} test.
+                "Link: <a href=\"C1.html#method(int,int,java.util.ArrayList)\">",
+                //@see test.
+                "See Also:</span></dt>\n"
+                + "<dd><a href=\"C1.html#method(int,int,java.util.ArrayList)\">"
+        );
+
+        checkOutput("pkg/C4.html", true,
+                //Header does not link to the page itself.
+                "Class C4&lt;E extends C4&lt;E&gt;&gt;</h2>",
+                //Signature does not link to the page itself.
+                "public abstract class <span class=\"typeNameLabel\">C4&lt;E extends C4&lt;E&gt;&gt;</span>"
+        );
+
+        checkOutput(Output.OUT, false,
+                "<a> tag is malformed");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-linkoffline", "http://java.sun.com/j2se/1.4/docs/api/", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/C1.html", true,
+                //External link.
                 "href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true#wait-long-int-\"",
                 //Member summary table link.
                 "href=\"#method-int-int-java.util.ArrayList-\"",
@@ -69,15 +112,5 @@
                 "See Also:</span></dt>\n"
                 + "<dd><a href=\"C1.html#method-int-int-java.util.ArrayList-\">"
         );
-
-        checkOutput("pkg/C4.html", true,
-                //Header does not link to the page itself.
-                "Class C4&lt;E extends C4&lt;E&gt;&gt;</h2>",
-                //Signature does not link to the page itself.
-                "public abstract class <span class=\"typeNameLabel\">C4&lt;E extends C4&lt;E&gt;&gt;</span>"
-        );
-
-        checkOutput(Output.OUT, false,
-                "<a> tag is malformed");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6786690 6820360 8025633 8026567 8175200 8183511 8186332 8074407
+ * @bug 6786690 6820360 8025633 8026567 8175200 8183511 8186332 8074407 8182765
  * @summary This test verifies the nesting of definition list tags.
  * @author Bhavesh Patel
  * @library ../lib
@@ -58,6 +58,17 @@
     }
 
     @Test
+    void test_Comment_Deprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+        checkCommentDeprecated_html4(true);
+    }
+
+    @Test
     void test_NoComment_Deprecated() {
 //        tester.run(ARGS2, TEST_ALL, NEGATED_TEST_NO_C5);
 //        tester.runTestsOnHTML(NO_TEST,  NEGATED_TEST_C5);
@@ -73,6 +84,18 @@
     }
 
     @Test
+    void test_NoComment_Deprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-2-html4",
+                "-html4",
+                "-nocomment",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+        checkCommentDeprecated_html4(false);
+    }
+
+    @Test
     void test_Comment_NoDeprecated() {
 //        tester.run(ARGS3, TEST_ALL, NEGATED_TEST_NO_C5);
 //        tester.runTestsOnHTML(TEST_NODEPR, TEST_NOCMNT_NODEPR);
@@ -88,6 +111,19 @@
     }
 
     @Test
+    void test_Comment_NoDeprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-3-html4",
+                "-html4",
+                "-nodeprecated",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+        checkNoDeprecated_html4();
+        checkNoCommentNoDeprecated_html4(false);
+    }
+
+    @Test
     void testNoCommentNoDeprecated() {
 //        tester.run(ARGS4, TEST_ALL, NEGATED_TEST_NO_C5);
 //        tester.runTestsOnHTML(TEST_NOCMNT_NODEPR, TEST_CMNT_DEPR);
@@ -103,6 +139,19 @@
         checkCommentDeprecated(false);
     }
 
+    @Test
+    void testNoCommentNoDeprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-4-html4",
+                "-html4",
+                "-nocomment",
+                "-nodeprecated",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkNoCommentNoDeprecated_html4(true);
+        checkCommentDeprecated_html4(false);
+    }
+
     void checkCommon(boolean checkC5) {
         // Test common to all runs of javadoc. The class signature should print
         // properly enclosed definition list tags and the Annotation Type
@@ -166,7 +215,7 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
-                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<dd><a href=\"#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
                 "<dl>\n"
@@ -193,7 +242,7 @@
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd>"
-                + "<a href=\"#readObject--\"><code>readObject()"
+                + "<a href=\"#readObject()\"><code>readObject()"
                 + "</code></a></dd>\n"
                 + "</dl>",
                 "<dl>\n"
@@ -201,7 +250,7 @@
                 + "<dd><code>java.io.IOException</code></dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:"
                 + "</span></dt>\n"
-                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<dd><a href=\"#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>");
 
@@ -223,6 +272,85 @@
                 + "java.io.IOException</code></dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span>"
                 + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">This field indicates whether the C1 is "
+                + "undecorated.</div>\n"
+                + "&nbsp;\n"
+                + "<dl>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">Reads the object stream.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:"
+                + "</span></dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>"
+                + "</div>\n"
+                + "<div class=\"block\">The name for this class.</div>");
+    }
+
+    void checkCommentDeprecated_html4(boolean expectFound) {
+        // Test for normal run of javadoc in which various ClassDocs and
+        // serialized form should have properly nested definition list tags
+        // enclosing comments, tags and deprecated information.
+        checkOutput("pkg1/C1.html", expectFound,
+                "<dl>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<code>setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<dl>\n"
+                + "<dt><span class=\"paramLabel\">Parameters:</span></dt>\n"
+                + "<dd><code>undecorated"
+                + "</code> - <code>true</code> if no decorations are\n"
+                + "         to be enabled;\n"
+                + "         <code>false</code> "
+                + "if decorations are to be enabled.</dd>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:"
+                + "</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd>"
+                + "<a href=\"#readObject--\"><code>readObject()"
+                + "</code></a></dd>\n"
+                + "</dl>",
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span></dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:"
+                + "</span></dt>\n"
+                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<code>setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>");
+
+        checkOutput("serialized-form.html", expectFound,
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span>"
+                + "</dt>\n"
+                + "<dd><code>"
+                + "java.io.IOException</code></dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
                 + "<dd><a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
                 + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
@@ -252,10 +380,7 @@
                 + "<dt><span class=\"throwsLabel\">Throws:"
                 + "</span></dt>\n"
                 + "<dd><code>java.io.IOException</code></dd>\n"
-                + "</dl>",
-                "<span class=\"deprecatedLabel\">Deprecated.</span>"
-                + "</div>\n"
-                + "<div class=\"block\">The name for this class.</div>");
+                + "</dl>");
     }
 
     void checkNoDeprecated() {
@@ -310,6 +435,81 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#readObject()\">"
+                + "<code>readObject()</code></a></dd>\n"
+                + "</dl>",
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span>"
+                + "</dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "<dt>"
+                + "<span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>");
+
+        checkOutput("serialized-form.html", true,
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span>"
+                + "</dt>\n"
+                + "<dd><code>"
+                + "java.io.IOException</code></dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">This field indicates whether the C1 is "
+                + "undecorated.</div>\n"
+                + "&nbsp;\n"
+                + "<dl>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">Reads the object stream.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:"
+                + "</span></dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>"
+                + "</div>\n"
+                + "<div class=\"block\">"
+                + "The name for this class.</div>");
+    }
+
+    void checkNoDeprecated_html4() {
+        // Test with -nodeprecated option. The ClassDocs should have properly nested
+        // definition list tags enclosing comments and tags. The ClassDocs should not
+        // display definition list for deprecated information. The serialized form
+        // should display properly nested definition list tags for comments, tags
+        // and deprecated information.
+        checkOutput("pkg1/C1.html", true,
+                "<dl>\n"
+                + "<dt><span class=\"paramLabel\">Parameters:"
+                + "</span></dt>\n"
+                + "<dd><code>undecorated</code> - <code>true</code>"
+                + " if no decorations are\n"
+                + "         to be enabled;\n"
+                + "         <code>false</code> if decorations are to be enabled."
+                + "</dd>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"#readObject--\">"
                 + "<code>readObject()</code></a></dd>\n"
                 + "</dl>",
@@ -360,11 +560,7 @@
                 + "<dt><span class=\"throwsLabel\">Throws:"
                 + "</span></dt>\n"
                 + "<dd><code>java.io.IOException</code></dd>\n"
-                + "</dl>",
-                "<span class=\"deprecatedLabel\">Deprecated.</span>"
-                + "</div>\n"
-                + "<div class=\"block\">"
-                + "The name for this class.</div>");
+                + "</dl>");
     }
 
     void checkNoCommentNoDeprecated(boolean expectFound) {
@@ -392,6 +588,30 @@
                 "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">" +
                 "Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\"><code>"
+                + "setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                +
+                "</li>",
+                "<span class=\"deprecatedLabel\">"
+                + "Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version"
+                + " 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "</li>");
+    }
+
+    void checkNoCommentNoDeprecated_html4(boolean expectFound) {
+        // Test with -nocomment and -nodeprecated options. The ClassDocs whould
+        // not display definition lists for any member details.
+        checkOutput("serialized-form.html", expectFound,
+                "<pre>boolean " +
+                "undecorated</pre>\n" +
+                "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">" +
+                "Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
                 + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\"><code>"
                 + "setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
--- a/test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 8008164 8169819 8183037
+ * @bug 8008164 8169819 8183037 8182765
  * @summary Test styles on HTML tables generated by javadoc.
  * @author Bhavesh Patel
  * @library ../lib
@@ -45,6 +45,43 @@
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg1", "pkg2");
+        checkExit(Exit.ERROR);
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: summary",
+                "attribute border for table only accepts \"\" or \"1\", use CSS instead: BORDER",
+                "attribute not supported in HTML5: cellpadding",
+                "attribute not supported in HTML5: cellspacing",
+                "attribute not supported in HTML5: align");
+
+        checkOutput("pkg1/TestTable.html", true,
+                "<table summary=\"Summary\" border cellpadding=3 cellspacing=1>",
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg1/package-summary.html", true,
+                "<table class=\"typeSummary\">");
+
+        checkOutput("pkg1/class-use/TestTable.html", true,
+                "<table class=\"useSummary\">");
+
+        checkOutput("overview-summary.html", true,
+                "<table class=\"overviewSummary\">");
+
+        checkOutput("deprecated-list.html", true,
+            "<table class=\"deprecatedSummary\">");
+
+        checkOutput("constant-values.html", true,
+            "<table class=\"constantsSummary\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg1", "pkg2");
         checkExit(Exit.OK);
 
         checkOutput("pkg1/TestTable.html", true,
--- a/test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      6786688 8008164 8162363 8169819 8183037
+ * @bug      6786688 8008164 8162363 8169819 8183037 8182765
  * @summary  HTML tables should have table summary, caption and table headers.
  * @author   Bhavesh Patel
  * @library  ../lib
@@ -53,11 +53,95 @@
                 "pkg1", "pkg2");
         checkExit(Exit.OK);
 
-        checkHtmlTableSummaries();
+        checkHtmlTableTag();
         checkHtmlTableCaptions();
         checkHtmlTableHeaders();
     }
 
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkHtmlTableSummaries();
+    }
+
+    /*
+     * Tests for validating table tag for HTML tables
+     */
+    void checkHtmlTableTag() {
+        //Package summary
+        checkOutput("pkg1/package-summary.html", true,
+                "<table class=\"typeSummary\">",
+                "<table class=\"typeSummary\">");
+
+        checkOutput("pkg2/package-summary.html", true,
+                "<table class=\"typeSummary\">",
+                "<table class=\"typeSummary\">");
+
+        // Class documentation
+        checkOutput("pkg1/C1.html", true,
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C2.html", true,
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C2.ModalExclusionType.html", true,
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C3.html", true,
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C4.html", true,
+                "<table class=\"memberSummary\">");
+
+        // Class use documentation
+        checkOutput("pkg1/class-use/I1.html", true,
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg1/class-use/C1.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/class-use/C2.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true,
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true,
+                "<table class=\"useSummary\">");
+
+        // Package use documentation
+        checkOutput("pkg1/package-use.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/package-use.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        // Deprecated
+        checkOutput("deprecated-list.html", true,
+                "<table class=\"deprecatedSummary\">",
+                "<table class=\"deprecatedSummary\">");
+
+        // Constant values
+        checkOutput("constant-values.html", true,
+                "<table class=\"constantsSummary\">");
+
+        // Overview Summary
+        checkOutput("overview-summary.html", true,
+                "<table class=\"overviewSummary\">");
+    }
+
     /*
      * Tests for validating summary for HTML tables
      */
--- a/test/langtools/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6786682 4649116
+ * @bug 6786682 4649116 8182765
  * @summary This test verifies the use of lang attribute by <HTML>.
  * @author Bhavesh Patel
  * @library ../lib
@@ -106,6 +106,104 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg3/package-summary.html", true,
+                "<div class=\"contentContainer\">\n"
+                + "<section role=\"region\"><a id=\"package.description\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<div class=\"block\"><p>This is the first line. Note the newlines before the &lt;p&gt; is relevant.</div>\n"
+                + "</section>");
+
+        checkOutput("pkg3/A.DatatypeFactory.html", true,
+                "<div class=\"block\"><p>\n"
+                + " Factory that creates new <code>javax.xml.datatype</code>\n"
+                + " <code>Object</code>s that map XML to/from Java <code>Object</code>s.</p>\n"
+                + "\n"
+                + " <p>\n"
+                + " A new instance of the <code>DatatypeFactory</code> is created through the\n"
+                + " <a href=\"#newInstance()\"><code>newInstance()</code></a> method that uses the following implementation\n"
+                + " resolution mechanisms to determine an implementation:</p>\n"
+                + " <ol>\n"
+                + " <li>\n"
+                + " If the system property specified by <a href=\"#DATATYPEFACTORY_PROPERTY\"><code>DATATYPEFACTORY_PROPERTY</code></a>,\n"
+                + " \"<code>javax.xml.datatype.DatatypeFactory</code>\", exists, a class with\n"
+                + " the name of the property value is instantiated. Any Exception thrown\n"
+                + " during the instantiation process is wrapped as a\n"
+                + " <code>IllegalStateException</code>.\n"
+                + " </li>\n"
+                + " <li>\n"
+                + " If the file ${JAVA_HOME}/lib/jaxp.properties exists, it is loaded in a\n"
+                + " <code>Properties</code> <code>Object</code>. The\n"
+                + " <code>Properties</code> <code>Object </code> is then queried for the\n"
+                + " property as documented in the prior step and processed as documented in\n"
+                + " the prior step.\n"
+                + " </li>\n"
+                + " <li>\n"
+                + " Uses the service-provider loading facilities, defined by the\n"
+                + " <code>ServiceLoader</code> class, to attempt to locate and load an\n"
+                + " implementation of the service using the default loading mechanism:\n"
+                + " the service-provider loading facility will use the current thread's context class loader\n"
+                + " to attempt to load the service. If the context class loader is null, the system class loader will be used.\n"
+                + " <br>\n"
+                + " In case of <code>service configuration error</code> a\n"
+                + " <code>DatatypeConfigurationException</code> will be thrown.\n"
+                + " </li>\n"
+                + " <li>\n"
+                + " The final mechanism is to attempt to instantiate the <code>Class</code>\n"
+                + " specified by <a href=\"#DATATYPEFACTORY_IMPLEMENTATION_CLASS\"><code>DATATYPEFACTORY_IMPLEMENTATION_CLASS</code></a>. Any Exception\n"
+                + " thrown during the instantiation process is wrapped as a\n"
+                + " <code>IllegalStateException</code>.\n"
+                + " </li>\n"
+                + " </ol></div>");
+
+        checkOutput("pkg3/A.ActivationDesc.html", true,
+                "<pre>public class <span class=\"typeNameLabel\">A.ActivationDesc</span>\n"
+                + "extends java.lang.Object\n"
+                + "implements java.io.Serializable</pre>\n"
+                + "<div class=\"block\">An activation descriptor contains the information necessary to activate\n"
+                + " an object: <ul>\n"
+                + " <li> the object's group identifier,\n"
+                + " <li> the object's fully-qualified class name,\n"
+                + " <li> the object's code location (the location of the class), a codebase\n"
+                + " URL path,\n"
+                + " <li> the object's restart \"mode\", and,\n"
+                + " <li> a \"marshalled\" object that can contain object specific\n"
+                + " initialization data. </ul>\n"
+                + "\n"
+                + " <p>\n"
+                + " A descriptor registered with the activation system can be used to\n"
+                + " recreate/activate the object specified by the descriptor. The\n"
+                + " <code>MarshalledObject</code> in the object's descriptor is passed as the\n"
+                + " second argument to the remote object's constructor for object to use\n"
+                + " during reinitialization/activation.</div>");
+
+        checkOutput("pkg3/A.ActivationGroupID.html", true,
+                "<pre>public class <span class=\"typeNameLabel\">A.ActivationGroupID</span>\n"
+                + "extends java.lang.Object\n"
+                + "implements java.io.Serializable</pre>\n"
+                + "<div class=\"block\">The identifier for a registered activation group serves several purposes:\n"
+                + " <ul>\n"
+                + " <li>identifies the group uniquely within the activation system, and\n"
+                + " <li>contains a reference to the group's activation system so that the\n"
+                + " group can contact its activation system when necessary.</ul><p>\n"
+                + "\n"
+                + " The <code>ActivationGroupID</code> is returned from the call to\n"
+                + " <code>ActivationSystem.registerGroup</code> and is used to identify the\n"
+                + " group within the activation system. This group id is passed as one of the\n"
+                + " arguments to the activation group's special constructor when an\n"
+                + " activation group is created/recreated.</div>\n"
+                + "<dl>");
+    }
+
+    @Test
+    void test_other_html4() {
+        javadoc("-locale", "en_US",
+                "-d", "out-other-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg3");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg3/package-summary.html", true,
                 "<div class=\"contentContainer\"><a name=\"package.description\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
@@ -154,43 +252,5 @@
                 + " <code>IllegalStateException</code>.\n"
                 + " </li>\n"
                 + " </ol></div>");
-
-        checkOutput("pkg3/A.ActivationDesc.html", true,
-                "<pre>public class <span class=\"typeNameLabel\">A.ActivationDesc</span>\n"
-                + "extends java.lang.Object\n"
-                + "implements java.io.Serializable</pre>\n"
-                + "<div class=\"block\">An activation descriptor contains the information necessary to activate\n"
-                + " an object: <ul>\n"
-                + " <li> the object's group identifier,\n"
-                + " <li> the object's fully-qualified class name,\n"
-                + " <li> the object's code location (the location of the class), a codebase\n"
-                + " URL path,\n"
-                + " <li> the object's restart \"mode\", and,\n"
-                + " <li> a \"marshalled\" object that can contain object specific\n"
-                + " initialization data. </ul>\n"
-                + "\n"
-                + " <p>\n"
-                + " A descriptor registered with the activation system can be used to\n"
-                + " recreate/activate the object specified by the descriptor. The\n"
-                + " <code>MarshalledObject</code> in the object's descriptor is passed as the\n"
-                + " second argument to the remote object's constructor for object to use\n"
-                + " during reinitialization/activation.</div>");
-
-         checkOutput("pkg3/A.ActivationGroupID.html", true,
-                 "<pre>public class <span class=\"typeNameLabel\">A.ActivationGroupID</span>\n"
-                 + "extends java.lang.Object\n"
-                 + "implements java.io.Serializable</pre>\n"
-                 + "<div class=\"block\">The identifier for a registered activation group serves several purposes:\n"
-                 + " <ul>\n"
-                 + " <li>identifies the group uniquely within the activation system, and\n"
-                 + " <li>contains a reference to the group's activation system so that the\n"
-                 + " group can contact its activation system when necessary.</ul><p>\n"
-                 + "\n"
-                 + " The <code>ActivationGroupID</code> is returned from the call to\n"
-                 + " <code>ActivationSystem.registerGroup</code> and is used to identify the\n"
-                 + " group within the activation system. This group id is passed as one of the\n"
-                 + " arguments to the activation group's special constructor when an\n"
-                 + " activation group is created/recreated.</div>\n"
-                 + "<dl>");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037
+ * @bug 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037 8182765
  * @summary Test the version of HTML generated by the javadoc tool.
  * @author bpatel
  * @library ../lib
@@ -41,7 +41,9 @@
 
     @Test
     void test1() {
-        javadoc("-d", "out-1", "-private", "-linksource", "-html5",
+        javadoc("-d", "out-1",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg", "pkg1", "pkg2", "pkg3");
@@ -53,7 +55,10 @@
 
     @Test
     void test2() {
-        javadoc("-d", "out-2", "-private", "-linksource", "-html4",
+        javadoc("-d", "out-2",
+                "-html4",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg", "pkg1", "pkg2", "pkg3");
@@ -65,7 +70,10 @@
 
     @Test
     void test3() {
-        javadoc("-d", "out-3", "-private", "-linksource",
+        javadoc("-d", "out-3",
+                "-html4",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg", "pkg1", "pkg2", "pkg3");
@@ -77,7 +85,9 @@
 
     @Test
     void test4() {
-        javadoc("-d", "out-4", "-private", "-linksource", "-html5",
+        javadoc("-d", "out-4",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg3");
--- a/test/langtools/jdk/javadoc/doclet/testHtmlWarning/TestHtmlWarning.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlWarning/TestHtmlWarning.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8194955
+ * @bug 8194955 8182765
  * @summary Warn when default HTML version is used.
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -47,8 +47,11 @@
     }
 
     private static final Path testFile = Paths.get("C.java");
-    private static final String warning =
-        "javadoc: warning - You have not specified the version of HTML to use.";
+    private static final String warning
+            = "javadoc: warning - You have specified the HTML version as HTML 4.01 by using the -html4 option.\n"
+            + "The default is currently HTML5 and the support for HTML 4.01 will be removed\n"
+            + "in a future release. To suppress this warning, please ensure that any HTML constructs\n"
+            + "in your comments are valid in HTML5, and remove the -html4 option.";
 
     @Test
     void testHtml4() {
@@ -57,7 +60,7 @@
                 testFile.toString());
         checkExit(Exit.OK);
 
-        checkOutput(Output.OUT, false, warning);
+        checkOutput(Output.OUT, true, warning);
     }
 
     @Test
@@ -76,6 +79,6 @@
                 testFile.toString());
         checkExit(Exit.OK);
 
-        checkOutput(Output.OUT, true, warning);
+        checkOutput(Output.OUT, false, warning);
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4682448 4947464 5029946 8025633 8026567 8035473 8139101 8175200
-             8186332 8186703
+             8186332 8186703 8182765
  * @summary  Verify that the public modifier does not show up in the
  *           documentation for public methods, as recommended by the JLS.
  *           If A implements I and B extends A, B should be in the list of
@@ -99,14 +99,14 @@
                 + "</ul>",
                 //Make sure "Specified By" has substituted type parameters.
                 "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
-                + "<dd><code><a href=\"Interface.html#method--\">method</a>"
+                + "<dd><code><a href=\"Interface.html#method()\">method</a>"
                 + "</code>&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"Interface.html\" title=\"interface in pkg\">"
                 + "Interface</a>&lt;<a href=\"Child.html\" title=\"type parameter in Child\">"
                 + "CE</a>&gt;</code></dd>",
                 //Make sure "Overrides" has substituted type parameters.
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
-                + "<dd><code><a href=\"Parent.html#method--\">method</a>"
+                + "<dd><code><a href=\"Parent.html#method()\">method</a>"
                 + "</code>&nbsp;in class&nbsp;<code><a href=\"Parent.html\" "
                 + "title=\"class in pkg\">Parent</a>&lt;<a href=\"Child.html\" "
                 + "title=\"type parameter in Child\">CE</a>&gt;</code></dd>");
@@ -120,7 +120,7 @@
                 + "</dl>");
 
         checkOutput("pkg/Interface.html", false,
-                "public int&nbsp;method()",
+                "public int&nbsp;method--",
                 "public static final&nbsp;int field");
 
         checkOutput("pkg/ClassWithStaticMembers.html", false,
@@ -135,6 +135,52 @@
 
                 "<td class=\"colFirst\"><code>static void</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#m()\">m</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"block\">A hider method</div>\n"
+                + "</td>\n",
+
+                "<h4>staticMethod</h4>\n"
+                + "<pre>public static&nbsp;void&nbsp;staticMethod()</pre>\n"
+                + "<div class=\"block\"><span class=\"descfrmTypeLabel\">"
+                + "Description copied from interface:&nbsp;<code>"
+                + "<a href=\"InterfaceWithStaticMembers.html#staticMethod()\">"
+                + "InterfaceWithStaticMembers</a></code></span></div>\n"
+                + "<div class=\"block\">A static method</div>\n");
+
+        checkOutput("pkg/ClassWithStaticMembers.InnerClass.html", true,
+                "<pre>public static class <span class=\"typeNameLabel\">"
+                + "ClassWithStaticMembers.InnerClass</span>\n"
+                + "extends java.lang.Object</pre>\n"
+                + "<div class=\"block\">A hider inner class</div>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/Child.html", true,
+                //Make sure "Specified By" has substituted type parameters.
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"Interface.html#method--\">method</a>"
+                + "</code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"Interface.html\" title=\"interface in pkg\">"
+                + "Interface</a>&lt;<a href=\"Child.html\" title=\"type parameter in Child\">"
+                + "CE</a>&gt;</code></dd>",
+                //Make sure "Overrides" has substituted type parameters.
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"Parent.html#method--\">method</a>"
+                + "</code>&nbsp;in class&nbsp;<code><a href=\"Parent.html\" "
+                + "title=\"class in pkg\">Parent</a>&lt;<a href=\"Child.html\" "
+                + "title=\"type parameter in Child\">CE</a>&gt;</code></dd>");
+
+        checkOutput("pkg/ClassWithStaticMembers.html", true,
+                "<td class=\"colFirst\"><code>static void</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#m--\">m</a></span>()</code></th>\n"
                 + "<td class=\"colLast\">\n"
                 + "<div class=\"block\">A hider method</div>\n"
@@ -148,11 +194,8 @@
                 + "InterfaceWithStaticMembers</a></code></span></div>\n"
                 + "<div class=\"block\">A static method</div>\n");
 
-        checkOutput("pkg/ClassWithStaticMembers.InnerClass.html", true,
-                "<pre>public static class <span class=\"typeNameLabel\">"
-                + "ClassWithStaticMembers.InnerClass</span>\n"
-                + "extends java.lang.Object</pre>\n"
-                + "<div class=\"block\">A hider inner class</div>");
+        checkOutput("pkg/Interface.html", false,
+                "public int&nbsp;method()");
     }
 
     @Test
@@ -165,6 +208,23 @@
         checkOutput("pkg1/Child.html", true,
             // Ensure the correct Overrides in the inheritance hierarchy is reported
             "<span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" +
+            "<dd><code><a href=\"GrandParent.html#method1()\">method1</a></code>" +
+            "&nbsp;in class&nbsp;" +
+            "<code><a href=\"GrandParent.html\" title=\"class in pkg1\">GrandParent</a>" +
+            "&lt;<a href=\"Child.html\" title=\"type parameter in Child\">CE</a>&gt;</code>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/Child.html", true,
+            // Ensure the correct Overrides in the inheritance hierarchy is reported
+            "<span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" +
             "<dd><code><a href=\"GrandParent.html#method1--\">method1</a></code>" +
             "&nbsp;in class&nbsp;" +
             "<code><a href=\"GrandParent.html\" title=\"class in pkg1\">GrandParent</a>" +
--- a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 7112427 8012295 8025633 8026567 8061305 8081854 8150130 8162363
- *      8167967 8172528 8175200 8178830 8182257 8186332
+ *      8167967 8172528 8175200 8178830 8182257 8186332 8182765
  * @summary Test of the JavaFX doclet features.
  * @author jvalenta
  * @library ../lib
@@ -51,9 +51,8 @@
 
         checkOutput("pkg1/C.html", true,
                 "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
-                + "<dd><a href=\"#getRate--\"><code>getRate()</code></a>, \n"
-                + "<a href=\"#setRate-double-\">"
-                + "<code>setRate(double)</code></a></dd>",
+                + "<dd><a href=\"#getRate()\"><code>getRate()</code></a>, \n"
+                + "<a href=\"#setRate(double)\"><code>setRate(double)</code></a></dd>",
                 "<pre>public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
                 + "<div class=\"block\">Sets the value of the property rate.</div>\n"
                 + "<dl>\n"
@@ -77,7 +76,7 @@
                 "<p>Gets the value of the property <code>Property</code>",
                 "<span class=\"simpleTagLabel\">Property description:</span>",
                 "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#setTestMethodProperty--\">"
+                + "<a href=\"#setTestMethodProperty()\">"
                 + "setTestMethodProperty</a></span>()</code></th>",
                 "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#pausedProperty\">paused</a></span></code></th>\n"
@@ -135,7 +134,7 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>JavaFX 8.0</dd>",
                 "<h3>Property Summary</h3>\n"
-                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
+                + "<table class=\"memberSummary\">\n"
                 + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<tr class=\"altColor\">\n"
                 + "<td class=\"colFirst\"><code><a href=\"C.BooleanProperty.html\" title=\"class in pkg1\">C.BooleanProperty</a></code></td>\n",
@@ -168,6 +167,30 @@
 
         checkOutput("pkg1/D.html", false, "shouldNotAppear");
     }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "-package",
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/C.html", true,
+                "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getRate--\"><code>getRate()</code></a>, \n"
+                + "<a href=\"#setRate-double-\">"
+                + "<code>setRate(double)</code></a></dd>",
+                "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#setTestMethodProperty--\">"
+                + "setTestMethodProperty</a></span>()</code></th>",
+                "<h3>Property Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
+                + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+    }
+
     /*
      * Test with -javafx option enabled, to ensure property getters and setters
      * are treated correctly.
@@ -182,6 +205,61 @@
         checkExit(Exit.OK);
         checkOutput("pkg2/Test.html", true,
                 "<h3>Property Detail</h3>\n"
+                + "<a id=\"betaProperty\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h4>beta</h4>\n"
+                + "<pre>public&nbsp;java.lang.Object betaProperty</pre>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "<a id=\"gammaProperty\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h4>gamma</h4>\n"
+                + "<pre>public final&nbsp;java.util.List&lt;java.lang.String&gt; gammaProperty</pre>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "<a id=\"deltaProperty\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<ul class=\"blockListLast\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h4>delta</h4>\n"
+                + "<pre>public final&nbsp;java.util.List&lt;"
+                + "java.util.Set&lt;? super java.lang.Object&gt;&gt; deltaProperty</pre>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "</li>\n"
+                + "</ul>",
+                "<h3>Property Summary</h3>\n"
+                + "<table class=\"memberSummary\">\n"
+                + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+
+        checkOutput("pkg2/Test.html", false,
+                "<h3>Property Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
+                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Methods</span><span class=\"tabEnd\">&nbsp;</span>"
+                + "</span><span id=\"t2\" class=\"tableTab\"><span><a href=\"javascript:show(2);\">Instance Methods</a>"
+                + "</span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t4\" class=\"tableTab\"><span>"
+                + "<a href=\"javascript:show(8);\">Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>"
+                + "</caption>");
+    }
+
+    @Test
+    void test2_html4() {
+        javadoc("-d", "out2a-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "-package",
+                "pkg2");
+        checkExit(Exit.OK);
+        checkOutput("pkg2/Test.html", true,
+                "<h3>Property Detail</h3>\n"
                 + "<a name=\"betaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
@@ -215,15 +293,6 @@
                 "<h3>Property Summary</h3>\n"
                 + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
                 + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>");
-
-        checkOutput("pkg2/Test.html", false,
-                "<h3>Property Summary</h3>\n"
-                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
-                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Methods</span><span class=\"tabEnd\">&nbsp;</span>"
-                + "</span><span id=\"t2\" class=\"tableTab\"><span><a href=\"javascript:show(2);\">Instance Methods</a>"
-                + "</span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t4\" class=\"tableTab\"><span>"
-                + "<a href=\"javascript:show(8);\">Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>"
-                + "</caption>");
     }
 
     /*
@@ -246,6 +315,47 @@
                 + "<tr id=\"i0\" class=\"altColor\">\n"
                 + "<td class=\"colFirst\"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#alphaProperty(java.util.List)\">alphaProperty</a>"
+                + "</span>&#8203;(java.util.List&lt;T&gt;&nbsp;foo)</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "<tr id=\"i1\" class=\"rowColor\">\n"
+                + "<td class=\"colFirst\"><code>java.lang.Object</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#betaProperty()\">betaProperty</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "<tr id=\"i2\" class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code>java.util.List&lt;java.util.Set&lt;? super java.lang.Object&gt;&gt;"
+                + "</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#deltaProperty()\">deltaProperty</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "<tr id=\"i3\" class=\"rowColor\">\n"
+                + "<td class=\"colFirst\"><code>java.util.List&lt;java.lang.String&gt;</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#gammaProperty()\">gammaProperty</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>"
+        );
+    }
+
+    @Test
+    void test3_html4() {
+        javadoc("-d", "out2b-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg2");
+        checkExit(Exit.OK);
+        checkOutput("pkg2/Test.html", true,
+                "<th class=\"colFirst\" scope=\"col\">Modifier and Type</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Method</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tr id=\"i0\" class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#alphaProperty-java.util.List-\">alphaProperty</a>"
                 + "</span>&#8203;(java.util.List&lt;T&gt;&nbsp;foo)</code></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>\n"
--- a/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4720957 5020118 8026567 8038976 8184969 8164407
+ * @bug 4720957 5020118 8026567 8038976 8184969 8164407 8182765
  * @summary Test to make sure that -link and -linkoffline link to
  * right files, and URLs with and without trailing slash are accepted.
  * @author jamieh
@@ -66,7 +66,9 @@
                 "-linkoffline", url, testSrc + "/jdk",
                 "-package",
                 "pkg", "mylib.lang");
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+        checkOutput(Output.OUT, true,
+                "tag not supported in the generated HTML version: tt");
 
         checkOutput("pkg/C.html", true,
                 "<a href=\"" + url + "java/lang/String.html?is-external=true\" "
@@ -82,11 +84,11 @@
 
         checkOutput("pkg/B.html", true,
                 "<div class=\"block\">A method with html tag the method "
-                + "<a href=\"" + url + "java/lang/ClassLoader.html?is-external=true#getSystemClassLoader--\""
+                + "<a href=\"" + url + "java/lang/ClassLoader.html?is-external=true#getSystemClassLoader()\""
                 + " title=\"class or interface in java.lang\" class=\"externalLink\"><code><tt>getSystemClassLoader()</tt>"
                 + "</code></a> as the parent class loader.</div>",
                 "<div class=\"block\">is equivalent to invoking <code>"
-                + "<a href=\"#createTempFile-java.lang.String-java.lang.String-java.io.File-\">"
+                + "<a href=\"#createTempFile(java.lang.String,java.lang.String,java.io.File)\">"
                 + "<code>createTempFile(prefix,&nbsp;suffix,&nbsp;null)</code></a></code>.</div>",
                 "<a href=\"" + url + "java/lang/String.html?is-external=true\" "
                 + "title=\"class or interface in java.lang\" class=\"externalLink\">Link-Plain to String Class</a>",
@@ -109,6 +111,25 @@
                 + "title=\"class or interface in java.lang\" class=\"externalLink\">Object</a></pre>"
         );
 
+        String out1_html4 = "out1-html4";
+        javadoc("-d", out1_html4,
+                "-html4",
+                "-classpath", mylib,
+                "-sourcepath", testSrc,
+                "-linkoffline", url, testSrc + "/jdk",
+                "-package",
+                "pkg", "mylib.lang");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/B.html", true,
+                "<div class=\"block\">A method with html tag the method "
+                + "<a href=\"" + url + "java/lang/ClassLoader.html?is-external=true#getSystemClassLoader--\""
+                + " title=\"class or interface in java.lang\" class=\"externalLink\"><code><tt>getSystemClassLoader()</tt>"
+                + "</code></a> as the parent class loader.</div>",
+                "<div class=\"block\">is equivalent to invoking <code>"
+                + "<a href=\"#createTempFile-java.lang.String-java.lang.String-java.io.File-\">"
+                + "<code>createTempFile(prefix,&nbsp;suffix,&nbsp;null)</code></a></code>.</div>");
+
         // Generate the documentation using -linkoffline and a relative path as the first parameter.
         // We will try linking to the docs generated in test 1 with a relative path.
         String out2 = "out2";
--- a/test/langtools/jdk/javadoc/doclet/testLinkTaglet/TestLinkTaglet.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testLinkTaglet/TestLinkTaglet.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4732864 6280605 7064544 8014636 8016328 8025633 8071982
+ * @bug      4732864 6280605 7064544 8014636 8016328 8025633 8071982 8182765
  * @summary  Make sure that you can link from one member to another using
  *           non-qualified name, furthermore, ensure the right one is linked.
  * @author   jamieh
@@ -52,9 +52,9 @@
                 "Qualified Link: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
                 + " Unqualified Link1: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
                 + " Unqualified Link2: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
-                + " Qualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(pkg.C.InnerC, pkg.C.InnerC2)</code></a>.<br/>\n"
-                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(C.InnerC, C.InnerC2)</code></a>.<br/>\n"
-                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(InnerC, InnerC2)</code></a>.<br/>\n"
+                + " Qualified Link: <a href=\"#method(pkg.C.InnerC,pkg.C.InnerC2)\"><code>method(pkg.C.InnerC, pkg.C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method(pkg.C.InnerC,pkg.C.InnerC2)\"><code>method(C.InnerC, C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method(pkg.C.InnerC,pkg.C.InnerC2)\"><code>method(InnerC, InnerC2)</code></a>.<br/>\n"
                 + " Package Link: <a href=\"package-summary.html\"><code>pkg</code></a>.<br/>");
 
         checkOutput("pkg/C.InnerC.html", true,
@@ -73,4 +73,23 @@
 
         checkFiles(false, "checkPkg/A.html");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", testSrc("checkPkg/B.java"));
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/C.html", true,
+                "Qualified Link: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
+                + " Unqualified Link1: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
+                + " Unqualified Link2: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
+                + " Qualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(pkg.C.InnerC, pkg.C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(C.InnerC, C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(InnerC, InnerC2)</code></a>.<br/>\n"
+                + " Package Link: <a href=\"package-summary.html\"><code>pkg</code></a>.<br/>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testLinkToSerialForm/TestLinkToSerialForm.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testLinkToSerialForm/TestLinkToSerialForm.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 4521661 8081854
+ * @bug 4521661 8081854 8182765
  * @summary Test to make sure that there is a link with a proper anchor
  * from a serializable class to serialized-form.html.
  * @author jamieh
@@ -48,8 +48,20 @@
         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\">");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("serialized-form.html", true,
+                "<a name=\"pkg.C\">");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 4638588 4635809 6256068 6270645 8025633 8026567 8162363 8175200
- *      8192850
+ *      8192850 8182765
  * @summary Test to make sure that members are inherited properly in the Javadoc.
  *          Verify that inheritance labels are correct.
  * @author jamieh
@@ -52,13 +52,13 @@
                 // Public field should be inherited
                 "<a href=\"BaseClass.html#pubField\">",
                 // Public method should be inherited
-                "<a href=\"BaseClass.html#pubMethod--\">",
+                "<a href=\"BaseClass.html#pubMethod()\">",
                 // Public inner class should be inherited.
                 "<a href=\"BaseClass.pubInnerClass.html\" title=\"class in pkg\">",
                 // Protected field should be inherited
                 "<a href=\"BaseClass.html#proField\">",
                 // Protected method should be inherited
-                "<a href=\"BaseClass.html#proMethod--\">",
+                "<a href=\"BaseClass.html#proMethod()\">",
                 // Protected inner class should be inherited.
                 "<a href=\"BaseClass.proInnerClass.html\" title=\"class in pkg\">",
                 // New labels as of 1.5.0
@@ -71,6 +71,57 @@
                 // Test overriding/implementing methods with generic parameters.
                 "<dl>\n"
                 + "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"BaseInterface.html#getAnnotation(java.lang.Class)\">"
+                + "getAnnotation</a></code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"BaseInterface.html\" title=\"interface in pkg\">"
+                + "BaseInterface</a></code></dd>\n"
+                + "</dl>");
+
+        checkOutput("diamond/Z.html", true,
+                // Test diamond inheritance member summary (6256068)
+                "<code><a href=\"A.html#aMethod()\">aMethod</a></code>");
+
+        checkOutput("inheritDist/C.html", true,
+                // Test that doc is inherited from closed parent (6270645)
+                "<div class=\"block\">m1-B</div>");
+
+        checkOutput("pkg/SubClass.html", false,
+                "<a href=\"BaseClass.html#staticMethod()\">staticMethod</a></code>");
+
+        checkOutput("pkg1/Implementer.html", true,
+                // ensure the method makes it
+                "<td class=\"colFirst\"><code>static java.time.Period</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#between(java.time.LocalDate,java.time.LocalDate)\">"
+                + "between</a></span>&#8203;(java.time.LocalDate&nbsp;startDateInclusive,\n"
+                + "       java.time.LocalDate&nbsp;endDateExclusive)</code></th>");
+
+        checkOutput("pkg1/Implementer.html", false,
+                "<h3>Methods inherited from interface&nbsp;pkg1.<a href=\"Interface.html\""
+                + " title=\"interface in pkg1\">Interface</a></h3>\n"
+                + "<code><a href=\"Interface.html#between(java.time.chrono.ChronoLocalDate"
+                + ",java.time.chrono.ChronoLocalDate)\">between</a></code>"
+        );
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", "diamond", "inheritDist", "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/SubClass.html", true,
+                // Public method should be inherited
+                "<a href=\"BaseClass.html#pubMethod--\">",
+                // Protected method should be inherited
+                "<a href=\"BaseClass.html#proMethod--\">");
+
+        checkOutput("pkg/BaseClass.html", true,
+                // Test overriding/implementing methods with generic parameters.
+                "<dl>\n"
+                + "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
                 + "<dd><code><a href=\"BaseInterface.html#getAnnotation-java.lang.Class-\">"
                 + "getAnnotation</a></code>&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"BaseInterface.html\" title=\"interface in pkg\">"
@@ -81,10 +132,6 @@
                 // Test diamond inheritance member summary (6256068)
                 "<code><a href=\"A.html#aMethod--\">aMethod</a></code>");
 
-        checkOutput("inheritDist/C.html", true,
-                // Test that doc is inherited from closed parent (6270645)
-                "<div class=\"block\">m1-B</div>");
-
         checkOutput("pkg/SubClass.html", false,
                 "<a href=\"BaseClass.html#staticMethod--\">staticMethod</a></code>");
 
--- a/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4951228 6290760 8025633 8026567 8081854 8162363 8175200 8177417 8186332
+ * @bug      4951228 6290760 8025633 8026567 8081854 8162363 8175200 8177417 8186332 8182765
  * @summary  Test the case where the overriden method returns a different
  *           type than the method in the child class.  Make sure the
  *           documentation is inherited but the return type isn't.
@@ -43,7 +43,43 @@
 
     @Test
     void test() {
-        javadoc("-d", "out", "-private",
+        javadoc("-d", "out",
+                "-private",
+                "-sourcepath", testSrc,
+                "pkg","pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/PublicChild.html", true,
+                // Check return type in member summary.
+                "<code><a href=\"PublicChild.html\" title=\"class in pkg\">PublicChild</a></code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=\"#returnTypeTest()\">"
+                + "returnTypeTest</a></span>()</code>",
+                // Check return type in member detail.
+                "<pre>public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
+                + "PublicChild</a>&nbsp;returnTypeTest()</pre>",
+                "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#%3Cinit%3E()\">PublicChild</a></span>()</code></th>");
+
+        checkOutput("pkg/PrivateParent.html", true,
+                "<td class=\"colFirst\"><code>private </code></td>\n"
+                + "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#%3Cinit%3E(int)\">PrivateParent</a></span>&#8203;(int&nbsp;i)</code>"
+                + "</th>");
+
+        // Legacy anchor dimensions (6290760)
+        checkOutput("pkg2/A.html", true,
+                "<a id=\"f(java.lang.Object[])\">\n"
+                + "<!--   -->\n"
+                + "</a><a id=\"f(T[])\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-private",
                 "-sourcepath", testSrc,
                 "pkg","pkg2");
         checkExit(Exit.OK);
@@ -53,9 +89,6 @@
                 "<code><a href=\"PublicChild.html\" title=\"class in pkg\">PublicChild</a></code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=\"#returnTypeTest--\">"
                 + "returnTypeTest</a></span>()</code>",
-                // Check return type in member detail.
-                "<pre>public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
-                + "PublicChild</a>&nbsp;returnTypeTest()</pre>",
                 "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#PublicChild--\">PublicChild</a></span>()</code></th>");
 
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8178339
+ * @bug 8178339 8182765
  * @summary Tests indirect exports and opens in the module summary page
  * @modules jdk.javadoc/jdk.javadoc.internal.api
  *          jdk.javadoc/jdk.javadoc.internal.tool
@@ -72,6 +72,16 @@
         checkExit(Exit.OK);
         verifyIndirectExports(false);
         verifyIndirectOpens(false);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(false);
+        verifyIndirectOpens_html4(false);
     }
 
     @Test
@@ -98,6 +108,16 @@
         checkExit(Exit.OK);
         verifyIndirectExports(true);
         verifyIndirectOpens(true);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(true);
+        verifyIndirectOpens_html4(true);
     }
 
     @Test
@@ -125,6 +145,17 @@
         checkExit(Exit.OK);
         verifyIndirectExports(false);
         verifyIndirectOpens(false);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(false);
+        verifyIndirectOpens_html4(false);
     }
 
     @Test
@@ -157,13 +188,13 @@
         // could be listed in the indirects section, so just
         // check for minimal expected strings.
         checkOutput("a/module-summary.html", true,
-                "Indirect Exports table",
+                "Indirect Exports",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
                 + "<td class=\"colLast\"><a href=\"../m/exportsto/package-summary.html\">exportsto</a></td>\n"
                 + "</tr>\n");
 
         checkOutput("a/module-summary.html", true,
-                "Indirect Opens table",
+                "Indirect Opens",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
                 + "<td class=\"colLast\">opensto</td>\n"
                 + "</tr>\n");
@@ -188,6 +219,40 @@
         }
 
         checkOutput("a/module-summary.html", present,
+                "<table class=\"packagesSummary\">\n"
+                + "<caption><span>" + typeString + "</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
+                + "<td class=\"colLast\"><a href=\"../m/pm/package-summary.html\">pm</a></td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>\n");
+    }
+
+    void verifyIndirectExports_html4(boolean present) {
+        verifyIndirects_html4(present, false);
+    }
+
+    void verifyIndirectOpens_html4(boolean present) {
+        verifyIndirects_html4(present, true);
+    }
+
+    void verifyIndirects_html4(boolean present, boolean opens) {
+
+        String typeString = opens ? "Indirect Opens" : "Indirect Exports";
+
+        // Avoid false positives, just check for primary string absence.
+        if (!present) {
+            checkOutput("a/module-summary.html", false, typeString);
+            return;
+        }
+
+        checkOutput("a/module-summary.html", present,
                 "<table class=\"packagesSummary\" summary=\"" + typeString + " table, listing modules, and packages\">\n"
                 + "<caption><span>" + typeString + "</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
@@ -202,6 +267,4 @@
                 + "</tbody>\n"
                 + "</table>\n");
     }
-
 }
-
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestModuleServices.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModuleServices.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8178067 8192007
+ * @bug 8178067 8192007 8182765
  * @summary tests the module's services, such as provides and uses
  * @modules jdk.javadoc/jdk.javadoc.internal.api
  *          jdk.javadoc/jdk.javadoc.internal.tool
@@ -117,7 +117,8 @@
         mb.write(src);
 
         javadoc("-d", base.resolve("out").toString(),
-                "-quiet", "-noindex",
+                "-quiet",
+                "-noindex",
                 "--module-source-path", src.toString(),
                 "--module", "moduleService,moduleServiceProvider,moduleServiceUser,moduleServiceUserNoDescription",
                 "pkgService", "moduleServiceProvider/pkgServiceProvider", "moduleServiceUser/pkgServiceUser",
@@ -194,6 +195,33 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"usesSummary\">\n" +
+                "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"class in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;</td>\n" +
+                "</tr>\n" +
+                "<tr class=\"rowColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/B.html\" title=\"class in p1\">B</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--show-module-contents", "all",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"usesSummary\" summary=\"Uses table, listing types, and an explanation\">\n" +
                 "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -234,6 +262,28 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"usesSummary\">\n" +
+                "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"class in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"usesSummary\" summary=\"Uses table, listing types, and an explanation\">\n" +
                 "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -300,6 +350,33 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"providesSummary\">\n" +
+                "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"interface in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;<br>(<span class=\"implementationLabel\">Implementation(s):</span>&nbsp;<a href=\"p1/B.html\" title=\"class in p1\">B</a>)</td>\n" +
+                "</tr>\n" +
+                "<tr class=\"rowColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p2/A.html\" title=\"interface in p2\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;<br>(<span class=\"implementationLabel\">Implementation(s):</span>&nbsp;<a href=\"p2/B.html\" title=\"class in p2\">B</a>)</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--show-module-contents", "all",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
                 "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -343,6 +420,30 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"providesSummary\">\n" +
+                "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"interface in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">\n" +
+                "<div class=\"block\">abc</div>\n</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
                 "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -385,6 +486,44 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"providesSummary\">\n" +
+                "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"interface in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">\n" +
+                "<div class=\"block\">abc</div>\n</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>",
+                "<table class=\"usesSummary\">\n" +
+                "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p2/B.html\" title=\"class in p2\">B</a></th>\n" +
+                "<td class=\"colLast\">\n" +
+                "<div class=\"block\">def</div>\n</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
                 "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java	Thu Mar 08 10:18:28 2018 -0800
@@ -26,7 +26,7 @@
  * @bug 8154119 8154262 8156077 8157987 8154261 8154817 8135291 8155995 8162363
  *      8168766 8168688 8162674 8160196 8175799 8174974 8176778 8177562 8175218
  *      8175823 8166306 8178043 8181622 8183511 8169819 8074407 8183037 8191464
-        8164407 8192007
+        8164407 8192007 8182765
  * @summary Test modules support in javadoc.
  * @author bpatel
  * @library ../lib
@@ -46,7 +46,10 @@
      */
     @Test
     void testHtml4() {
-        javadoc("-d", "out", "-use", "-Xdoclint:none",
+        javadoc("-d", "out",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -68,7 +71,9 @@
      */
     @Test
     void testHtml5() {
-        javadoc("-d", "out-html5", "-html5", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-html5",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -90,7 +95,11 @@
      */
     @Test
     void testHtml4NoComment() {
-        javadoc("-d", "out-nocomment", "-nocomment", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-nocomment",
+                "-html4",
+                "-nocomment",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -108,7 +117,10 @@
      */
     @Test
     void testHtml5NoComment() {
-        javadoc("-d", "out-html5-nocomment", "-nocomment", "-html5", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-html5-nocomment",
+                "-nocomment",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -126,7 +138,9 @@
      */
     @Test
     void testHtml4UnnamedModule() {
-        javadoc("-d", "out-nomodule", "-use",
+        javadoc("-d", "out-nomodule",
+                "-html4",
+                "-use",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "testpkgnomodule", "testpkgnomodule1");
@@ -143,7 +157,8 @@
      */
     @Test
     void testHtml5UnnamedModule() {
-        javadoc("-d", "out-html5-nomodule", "-html5", "-use",
+        javadoc("-d", "out-html5-nomodule",
+                "-use",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "testpkgnomodule", "testpkgnomodule1");
@@ -159,7 +174,10 @@
      */
     @Test
     void testJDTagsInModules() {
-        javadoc("-d", "out-mdltags", "-author", "-version", "-Xdoclint:none",
+        javadoc("-d", "out-mdltags",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -170,11 +188,32 @@
     }
 
     /**
+     * Test generated module pages with javadoc tags.
+     */
+    @Test
+    void testJDTagsInModules_html4() {
+        javadoc("-d", "out-mdltags-html4",
+                "-html4",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
+                "-tag", "regular:a:Regular Tag:",
+                "-tag", "moduletag:s:Module Tag:",
+                "--module-source-path", testSrc,
+                "--module", "moduletags,moduleB",
+                "testpkgmdltags", "testpkgmdlB");
+        checkExit(Exit.OK);
+        checkModuleTags_html4();
+    }
+
+    /**
      * Test generated module summary page.
      */
     @Test
     void testModuleSummary() {
-        javadoc("-d", "out-moduleSummary", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-moduleSummary",
+                "-use",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "testpkgmdlA", "testpkgmdlB", "moduleB/testpkg2mdlB");
@@ -184,11 +223,29 @@
     }
 
     /**
+     * Test generated module summary page.
+     */
+    @Test
+    void testModuleSummary_html4() {
+        javadoc("-d", "out-moduleSummary-html4",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
+                "--module-source-path", testSrc,
+                "--module", "moduleA,moduleB",
+                "testpkgmdlA", "testpkgmdlB", "moduleB/testpkg2mdlB");
+        checkExit(Exit.OK);
+        checkModuleSummary_html4();
+        checkNegatedModuleSummary_html4();
+    }
+
+    /**
      * Test generated module summary page of an aggregating module.
      */
     @Test
     void testAggregatorModuleSummary() {
-        javadoc("-d", "out-aggregatorModuleSummary", "-use",
+        javadoc("-d", "out-aggregatorModuleSummary",
+                "-use",
                 "--module-source-path", testSrc,
                 "--expand-requires", "transitive",
                 "--module", "moduleT");
@@ -201,7 +258,8 @@
      */
     @Test
     void testModuleFilesAndLinks() {
-        javadoc("-d", "out-modulelinks", "-Xdoclint:none",
+        javadoc("-d", "out-modulelinks",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "testpkgmdlA", "testpkgmdlB");
@@ -215,7 +273,8 @@
      */
     @Test
     void testModuleDeprecation() {
-        javadoc("-d", "out-moduledepr", "-Xdoclint:none",
+        javadoc("-d", "out-moduledepr",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -230,7 +289,8 @@
      */
     @Test
     void testModuleAnnotation() {
-        javadoc("-d", "out-moduleanno", "-Xdoclint:none",
+        javadoc("-d", "out-moduleanno",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "testpkgmdlA", "testpkgmdlB");
@@ -239,11 +299,31 @@
     }
 
     /**
+     * Test annotations on modules.
+     */
+    @Test
+    void testModuleAnnotation_html4() {
+        javadoc("-d", "out-moduleanno-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "--module-source-path", testSrc,
+                "--module", "moduleA,moduleB",
+                "testpkgmdlA", "testpkgmdlB");
+        checkExit(Exit.OK);
+        checkModuleAnnotation_html4();
+    }
+
+    /**
      * Test module summary pages in "api" mode.
      */
     @Test
     void testApiMode() {
-        javadoc("-d", "out-api", "-use", "--show-module-contents=api", "-author", "-version", "-Xdoclint:none",
+        javadoc("-d", "out-api",
+                "-use",
+                "--show-module-contents=api",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -262,7 +342,12 @@
      */
     @Test
     void testAllMode() {
-        javadoc("-d", "out-all", "-use", "--show-module-contents=all", "-author", "-version", "-Xdoclint:none",
+        javadoc("-d", "out-all",
+                "-use",
+                "--show-module-contents=all",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -277,11 +362,35 @@
     }
 
     /**
+     * Test module summary pages in "all" mode.
+     */
+    @Test
+    void testAllModeHtml4() {
+        javadoc("-d", "out-all-html4",
+                "-html4",
+                "-use",
+                "--show-module-contents=all",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
+                "-tag", "regular:a:Regular Tag:",
+                "-tag", "moduletag:s:Module Tag:",
+                "--module-source-path", testSrc,
+                "--module", "moduleA,moduleB,moduleC,moduletags",
+                "testpkgmdlA", "moduleA/concealedpkgmdlA", "testpkgmdlB", "testpkg2mdlB", "testpkgmdlC", "testpkgmdltags");
+        checkExit(Exit.OK);
+        checkModuleModeCommon_html4();
+        checkModuleModeApi_html4(false);
+    }
+
+    /**
      * Test generated module summary page of a module with no exported package.
      */
     @Test
     void testModuleSummaryNoExportedPkgAll() {
-        javadoc("-d", "out-ModuleSummaryNoExportedPkgAll", "-use", "--show-module-contents=all",
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgAll",
+                "-use",
+                "--show-module-contents=all",
                 "-sourcepath", testSrc + "/moduleNoExport",
                 "--module", "moduleNoExport",
                 "testpkgmdlNoExport");
@@ -293,8 +402,25 @@
      * Test generated module summary page of a module with no exported package.
      */
     @Test
+    void testModuleSummaryNoExportedPkgAll_html4() {
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgAll-html4",
+                "-html4",
+                "-use",
+                "--show-module-contents=all",
+                "-sourcepath", testSrc + "/moduleNoExport",
+                "--module", "moduleNoExport",
+                "testpkgmdlNoExport");
+        checkExit(Exit.OK);
+        checkModuleSummaryNoExported_html4(true);
+    }
+
+    /**
+     * Test generated module summary page of a module with no exported package.
+     */
+    @Test
     void testModuleSummaryNoExportedPkgApi() {
-        javadoc("-d", "out-ModuleSummaryNoExportedPkgApi", "-use",
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgApi",
+                "-use",
                 "-sourcepath", testSrc + "/moduleNoExport",
                 "--module", "moduleNoExport",
                 "testpkgmdlNoExport");
@@ -303,6 +429,21 @@
     }
 
     /**
+     * Test generated module summary page of a module with no exported package.
+     */
+    @Test
+    void testModuleSummaryNoExportedPkgApi_html4() {
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgApi-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc + "/moduleNoExport",
+                "--module", "moduleNoExport",
+                "testpkgmdlNoExport");
+        checkExit(Exit.OK);
+        checkModuleSummaryNoExported_html4(false);
+    }
+
+    /**
      * Test generated module pages for javadoc run for a single module having a single package.
      */
     @Test
@@ -320,7 +461,9 @@
      */
     @Test
     void testSingleModuleMultiplePkg() {
-        javadoc("-d", "out-singlemodmultiplepkg", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-singlemodmultiplepkg",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleB",
                 "testpkg2mdlB", "testpkgmdlB");
@@ -333,7 +476,9 @@
      */
     @Test
     void testGroupOption() {
-        javadoc("-d", "out-group", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-group",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -348,13 +493,37 @@
     }
 
     /**
+     * Test -group option for modules. The overview-summary.html page should group the modules accordingly.
+     */
+    @Test
+    void testGroupOption_html4() {
+        javadoc("-d", "out-group-html4",
+                "-html4",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
+                "-tag", "regular:a:Regular Tag:",
+                "-tag", "moduletag:s:Module Tag:",
+                "--module-source-path", testSrc,
+                "-group", "Module Group A", "moduleA*",
+                "-group", "Module Group B & C", "moduleB*:moduleC*",
+                "-group", "Java SE Modules", "java*",
+                "--module", "moduleA,moduleB,moduleC,moduletags",
+                "moduleA/concealedpkgmdlA", "testpkgmdlA", "testpkg2mdlB", "testpkgmdlB", "testpkgmdlC",
+                "testpkgmdltags");
+        checkExit(Exit.OK);
+        checkGroupOption_html4();
+    }
+
+    /**
      * Test -group option for modules and the ordering of module groups.
      * The overview-summary.html page should group the modules accordingly and display the group tabs in
      * the order it was provided on the command-line.
      */
     @Test
     void testGroupOptionOrdering() {
-        javadoc("-d", "out-groupOrder", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-groupOrder",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -374,7 +543,9 @@
      */
     @Test
     void testUnnamedModuleGroupOption() {
-        javadoc("-d", "out-groupnomodule", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-groupnomodule",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "-group", "Package Group 0", "testpkgnomodule",
@@ -385,13 +556,33 @@
     }
 
     /**
+     * Test -group option for unnamed modules. The overview-summary.html page should group the packages accordingly.
+     */
+    @Test
+    void testUnnamedModuleGroupOption_html4() {
+        javadoc("-d", "out-groupnomodule-html4",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc,
+                "-group", "Package Group 0", "testpkgnomodule",
+                "-group", "Package Group 1", "testpkgnomodule1",
+                "testpkgnomodule", "testpkgnomodule1");
+        checkExit(Exit.OK);
+        checkUnnamedModuleGroupOption_html4();
+    }
+
+    /**
      * Test -group option for unnamed modules and the ordering of package groups.
      * The overview-summary.html page should group the packages accordingly and display the group tabs in
      * the order it was provided on the command-line.
      */
     @Test
     void testGroupOptionPackageOrdering() {
-        javadoc("-d", "out-groupPkgOrder", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-groupPkgOrder",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "-group", "Z Group", "testpkgnomodule",
@@ -406,7 +597,9 @@
      */
     @Test
     void testGroupOptionSingleModule() {
-        javadoc("-d", "out-groupsinglemodule", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-groupsinglemodule",
+                "-use",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "-group", "Module Group B", "moduleB*",
                 "--module", "moduleB",
@@ -419,8 +612,27 @@
      * Test -group option for a single module.
      */
     @Test
+    void testGroupOptionSingleModule_html4() {
+        javadoc("-d", "out-groupsinglemodule-html4",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
+                "--module-source-path", testSrc,
+                "-group", "Module Group B", "moduleB*",
+                "--module", "moduleB",
+                "testpkg2mdlB", "testpkgmdlB");
+        checkExit(Exit.OK);
+        checkGroupOptionSingleModule_html4();
+    }
+
+    /**
+     * Test -group option for a single module.
+     */
+    @Test
     void testModuleName() {
-        javadoc("-d", "out-modulename", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-modulename",
+                "-use",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleB,test.moduleFullName",
                 "testpkg2mdlB", "testpkgmdlB", "testpkgmdlfullname");
@@ -434,7 +646,10 @@
     @Test
     void testLinkOffline() {
         String url = "https://docs.oracle.com/javase/9/docs/api/";
-        javadoc("-d", "out-linkoffline", "-use", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-linkoffline",
+                "-use",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "-linkoffline", url, testSrc + "/jdk",
@@ -589,7 +804,7 @@
                 "Type Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html\" title=\"class in "
                 + "testpkgmdltags\"><code>TestClassInModuleTags</code></a>.",
                 "Member Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html#"
-                + "testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.",
+                + "testMethod(java.lang.String)\"><code>testMethod(String)</code></a>.",
                 "Package Link: <a href=\"testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.",
                 "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>JDK 9</dd>",
@@ -610,6 +825,12 @@
                 + "<dd>Just a simple module tag.</dd>");
     }
 
+    void checkModuleTags_html4() {
+        checkOutput("moduletags/module-summary.html", true,
+                "Member Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html#"
+                + "testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.");
+    }
+
     void checkOverviewSummaryModules() {
         checkOutput("overview-summary.html", true,
                 "<table class=\"overviewSummary\" summary=\"Module Summary table, listing modules, and an explanation\">\n"
@@ -724,7 +945,7 @@
                 + "Packages</a>&nbsp;|&nbsp;Services</li>\n"
                 + "</ul>",
                 "<!-- ============ MODULES SUMMARY =========== -->\n"
-                + "<a name=\"modules.summary\">\n"
+                + "<a id=\"modules.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\" id=\"i0\">\n"
@@ -732,7 +953,7 @@
                 + "<td class=\"colLast\">&nbsp;</td>\n"
                 + "</tr>",
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\">\n"
@@ -747,7 +968,7 @@
                 + "<a href=\"#packages.summary\">Packages</a>&nbsp;|&nbsp;<a href=\"#services.summary\">"
                 + "Services</a></li>",
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\" id=\"i0\">\n"
@@ -755,11 +976,11 @@
                 + "<td class=\"colLast\">&nbsp;</td>\n"
                 + "</tr>",
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<!-- ============ SERVICES SUMMARY =========== -->\n"
-                + "<a name=\"services.summary\">\n"
+                + "<a id=\"services.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\">\n"
@@ -784,6 +1005,31 @@
                 + "</tr>");
     }
 
+    void checkModuleSummary_html4() {
+        checkOutput("moduleA/module-summary.html", true,
+                "<!-- ============ MODULES SUMMARY =========== -->\n"
+                + "<a name=\"modules.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+        checkOutput("moduleB/module-summary.html", true,
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ============ SERVICES SUMMARY =========== -->\n"
+                + "<a name=\"services.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
     void checkAggregatorModuleSummary() {
         checkOutput("moduleT/module-summary.html", true,
                 "<div class=\"header\">\n"
@@ -814,6 +1060,14 @@
     void checkNegatedModuleSummary() {
         checkOutput("moduleA/module-summary.html", false,
                 "<!-- ============ SERVICES SUMMARY =========== -->\n"
+                + "<a id=\"services.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    void checkNegatedModuleSummary_html4() {
+        checkOutput("moduleA/module-summary.html", false,
+                "<!-- ============ SERVICES SUMMARY =========== -->\n"
                 + "<a name=\"services.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>");
@@ -922,7 +1176,7 @@
                 + "<td class=\"colLast\">\n"
                 + "<div class=\"block\">This is a test description for the moduletags module.<br>\n"
                 + " Type Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html\" title=\"class in testpkgmdltags\"><code>TestClassInModuleTags</code></a>.<br>\n"
-                + " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.<br>\n"
+                + " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod(java.lang.String)\"><code>testMethod(String)</code></a>.<br>\n"
                 + " Package Link: <a href=\"moduletags/testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.<br></div>\n"
                 + "</td>");
         checkOutput("moduleA/module-summary.html", true,
@@ -937,14 +1191,14 @@
         checkOutput("moduletags/module-summary.html", true,
                 "<li><a href=\"#module.description\">Description</a>&nbsp;|&nbsp;<a href=\"#modules.summary\">Modules"
                 + "</a>&nbsp;|&nbsp;<a href=\"#packages.summary\">Packages</a>&nbsp;|&nbsp;Services</li>",
-                "<table class=\"requiresSummary\" summary=\"Indirect Requires table, listing modules, and an explanation\">\n"
+                "<table class=\"requiresSummary\">\n"
                 + "<caption><span>Indirect Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<td class=\"colFirst\">transitive</td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
                 + "<td class=\"colLast\">\n"
                 + "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
                 + "</td>",
-                "<table class=\"packagesSummary\" summary=\"Indirect Exports table, listing modules, and packages\">\n"
+                "<table class=\"packagesSummary\">\n"
                 + "<caption><span>Indirect Exports</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<td class=\"colFirst\">transitive static</td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleA/module-summary.html\">moduleA</a></th>\n"
@@ -952,6 +1206,42 @@
                 + "<div class=\"block\">This is a test description for the moduleA module with a Search "
                 + "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>\n"
                 + "</td>",
+                "<table class=\"requiresSummary\">\n"
+                + "<caption><span>Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Modifier</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Module</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>",
+                "<table class=\"requiresSummary\">\n"
+                + "<caption><span>Indirect Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Modifier</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Module</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>",
+                "<table class=\"packagesSummary\">\n"
+                + "<caption><span>Indirect Opens</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
+                + "</tr>\n",
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
+                + "<td class=\"colLast\"><a href=\"../moduleB/testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
+    }
+
+    void checkModuleModeCommon_html4() {
+        checkOutput("overview-summary.html", true,
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"moduletags/module-summary.html\">moduletags</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"block\">This is a test description for the moduletags module.<br>\n"
+                + " Type Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html\" title=\"class in testpkgmdltags\"><code>TestClassInModuleTags</code></a>.<br>\n"
+                + " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.<br>\n"
+                + " Package Link: <a href=\"moduletags/testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.<br></div>\n"
+                + "</td>");
+        checkOutput("moduletags/module-summary.html", true,
+                "<table class=\"requiresSummary\" summary=\"Indirect Requires table, listing modules, and an explanation\">\n"
+                + "<caption><span>Indirect Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>",
+                "<table class=\"packagesSummary\" summary=\"Indirect Exports table, listing modules, and packages\">\n"
+                + "<caption><span>Indirect Exports</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<table class=\"requiresSummary\" summary=\"Requires table, listing modules, and an explanation\">\n"
                 + "<caption><span>Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
@@ -969,9 +1259,7 @@
                 + "<tr>\n"
                 + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
                 + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
-                + "</tr>\n",
-                "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
-                + "<td class=\"colLast\"><a href=\"../moduleB/testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
+                + "</tr>\n");
     }
 
     void checkModuleModeApi(boolean found) {
@@ -983,7 +1271,7 @@
                 + "<a href=\"#packages.summary\">Packages</a>&nbsp;|&nbsp;<a href=\"#services.summary\">Services</a></li>",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>",
-                "<table class=\"packagesSummary\" summary=\"Packages table, listing packages, and an explanation\">\n"
+                "<table class=\"packagesSummary\">\n"
                 + "<caption><span>Opens</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
                 + "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
@@ -1001,6 +1289,23 @@
                 + "<td class=\"colLast\">&nbsp;</td>");
     }
 
+    void checkModuleModeApi_html4(boolean found) {
+        checkOutput("moduleB/module-summary.html", found,
+                "<table class=\"packagesSummary\" summary=\"Packages table, listing packages, and an explanation\">\n"
+                + "<caption><span>Opens</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\" id=\"i0\">\n"
+                + "<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>");
+    }
+
     void checkModuleModeAll(boolean found) {
         checkOutput("moduleA/module-summary.html", found,
                 "<td class=\"colFirst\"> </td>\n"
@@ -1084,11 +1389,18 @@
 
     void checkModuleAnnotation() {
         checkOutput("moduleB/module-summary.html", true,
+                "<p><a href=\"testpkgmdlB/AnnotationType.html\" title=\"annotation in testpkgmdlB\">@AnnotationType</a>(<a href=\"testpkgmdlB/AnnotationType.html#optional()\">optional</a>=\"Module Annotation\",\n"
+                + "                <a href=\"testpkgmdlB/AnnotationType.html#required()\">required</a>=2016)\n"
+                + "</p>");
+        checkOutput("moduleB/module-summary.html", false,
+                "@AnnotationTypeUndocumented");
+    }
+
+    void checkModuleAnnotation_html4() {
+        checkOutput("moduleB/module-summary.html", true,
                 "<p><a href=\"testpkgmdlB/AnnotationType.html\" title=\"annotation in testpkgmdlB\">@AnnotationType</a>(<a href=\"testpkgmdlB/AnnotationType.html#optional--\">optional</a>=\"Module Annotation\",\n"
                 + "                <a href=\"testpkgmdlB/AnnotationType.html#required--\">required</a>=2016)\n"
                 + "</p>");
-        checkOutput("moduleB/module-summary.html", false,
-                "@AnnotationTypeUndocumented");
     }
 
     void checkOverviewFrame(boolean found) {
@@ -1101,15 +1413,45 @@
     void checkModuleSummaryNoExported(boolean found) {
         checkOutput("moduleNoExport/module-summary.html", found,
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<caption><span>Concealed</span><span class=\"tabEnd\">&nbsp;</span></caption>");
     }
 
+    void checkModuleSummaryNoExported_html4(boolean found) {
+        checkOutput("moduleNoExport/module-summary.html", found,
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
     void checkGroupOption() {
         checkOutput("overview-summary.html", true,
                 "<div class=\"contentContainer\">\n"
+                + "<table class=\"overviewSummary\">\n"
+                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Modules</span><span class=\"tabEnd\">&nbsp;"
+                + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
+                + "Module Group A</a></span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t2\" class=\"tableTab\">"
+                + "<span><a href=\"javascript:showGroups(2);\">Module Group B &amp; C</a></span><span class=\"tabEnd\">"
+                + "&nbsp;</span></span><span id=\"t4\" class=\"tableTab\"><span><a href=\"javascript:showGroups(4);\">"
+                + "Other Modules</a></span><span class=\"tabEnd\">&nbsp;</span></span></caption>",
+                "var groups = {\"i0\":1,\"i1\":2,\"i2\":2,\"i3\":4};\n"
+                + "var tabs = {65535:[\"t0\",\"All Modules\"],1:[\"t1\",\"Module Group A\"],2:[\"t2\",\"Module Group B & C\"],4:[\"t4\",\"Other Modules\"]};\n"
+                + "var altColor = \"altColor\";\n"
+                + "var rowColor = \"rowColor\";\n"
+                + "var tableTab = \"tableTab\";\n"
+                + "var activeTableTab = \"activeTableTab\";");
+        checkOutput("overview-summary.html", false,
+                "<table class=\"overviewSummary\">\n"
+                + "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>",
+                "Java SE Modules");
+    }
+
+    void checkGroupOption_html4() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"contentContainer\">\n"
                 + "<table class=\"overviewSummary\" summary=\"Module Summary table, listing modules, and an explanation\">\n"
                 + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Modules</span><span class=\"tabEnd\">&nbsp;"
                 + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
@@ -1159,7 +1501,7 @@
                 + "<div class=\"block\">The overview summary page header.</div>\n"
                 + "</div>\n"
                 + "<div class=\"contentContainer\">\n"
-                + "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">\n"
+                + "<table class=\"overviewSummary\">\n"
                 + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span class=\"tabEnd\">&nbsp;"
                 + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
                 + "Package Group 0</a></span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t2\" "
@@ -1173,6 +1515,20 @@
                 + "var activeTableTab = \"activeTableTab\";");
     }
 
+    void checkUnnamedModuleGroupOption_html4() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"contentContainer\">\n"
+                + "<div class=\"block\">The overview summary page header.</div>\n"
+                + "</div>\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">\n"
+                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span class=\"tabEnd\">&nbsp;"
+                + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
+                + "Package Group 0</a></span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t2\" "
+                + "class=\"tableTab\"><span><a href=\"javascript:showGroups(2);\">Package Group 1</a></span>"
+                + "<span class=\"tabEnd\">&nbsp;</span></span></caption>");
+    }
+
     void checkGroupOptionPackageOrdering() {
         checkOutput("overview-summary.html", true,
                 "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span "
@@ -1186,6 +1542,16 @@
     void checkGroupOptionSingleModule() {
         checkOutput("overview-summary.html", true,
                 "<div class=\"contentContainer\">\n"
+                + "<table class=\"overviewSummary\">\n"
+                + "<caption><span>Module Group B</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+        checkOutput("overview-summary.html", false,
+                "<table class=\"overviewSummary\">\n"
+                + "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+    }
+
+    void checkGroupOptionSingleModule_html4() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"contentContainer\">\n"
                 + "<table class=\"overviewSummary\" summary=\"Module Summary table, listing modules, and an explanation\">\n"
                 + "<caption><span>Module Group B</span><span class=\"tabEnd\">&nbsp;</span></caption>");
         checkOutput("overview-summary.html", false,
--- a/test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4131628 4664607 7025314 8023700 7198273 8025633 8026567 8081854 8150188 8151743 8196027
+ * @bug      4131628 4664607 7025314 8023700 7198273 8025633 8026567 8081854 8150188 8151743 8196027 8182765
  * @summary  Make sure the Next/Prev Class links iterate through all types.
  *           Make sure the navagation is 2 columns, not 3.
  * @author   jamieh
@@ -42,7 +42,8 @@
 
     @Test
     void test() {
-        javadoc("-d", "out", "-overview", testSrc("overview.html"),
+        javadoc("-d", "out",
+                "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
@@ -62,7 +63,7 @@
         checkOutput("pkg/I.html", true,
                 // 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>",
                 "<li><a href=\"../overview-summary.html\">Overview</a></li>");
@@ -76,6 +77,49 @@
                 + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
                 + "//-->\n"
                 + "</script>\n"
+                + "</nav>\n"
+                + "</header>\n"
+                + "<!-- ======== START OF CLASS DATA ======== -->");
+
+        checkOutput("pkg/package-summary.html", true,
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "</div>\n"
+                + "<div class=\"navPadding\">&nbsp;</div>\n"
+                + "<script type=\"text/javascript\"><!--\n"
+                + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
+                + "//-->\n"
+                + "</script>\n"
+                + "</nav>\n"
+                + "</header>\n"
+                + "<main role=\"main\">\n"
+                + "<div class=\"header\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/I.html", true,
+                // 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"
+                + "<!--   -->\n"
+                + "</a>");
+
+        // Remaining tests check for additional padding to offset the fixed navigation bar.
+        checkOutput("pkg/A.html", true,
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "</div>\n"
+                + "<div class=\"navPadding\">&nbsp;</div>\n"
+                + "<script type=\"text/javascript\"><!--\n"
+                + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
+                + "//-->\n"
+                + "</script>\n"
                 + "<!-- ======== START OF CLASS DATA ======== -->");
 
         checkOutput("pkg/package-summary.html", true,
@@ -92,7 +136,8 @@
     // Test for checking additional padding to offset the fixed navigation bar in HTML5.
     @Test
     void test1() {
-        javadoc("-d", "out-1", "-html5",
+        javadoc("-d", "out-1",
+                "-html5",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
@@ -123,7 +168,8 @@
     // Test to make sure that no extra padding for nav bar gets generated if -nonavbar is specified for HTML4.
     @Test
     void test2() {
-        javadoc("-d", "out-2", "-nonavbar",
+        javadoc("-d", "out-2",
+                "-nonavbar",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
@@ -152,7 +198,9 @@
     // Test to make sure that no extra padding for nav bar gets generated if -nonavbar is specified for HTML5.
     @Test
     void test3() {
-        javadoc("-d", "out-3", "-html5", "-nonavbar",
+        javadoc("-d", "out-3",
+                "-html5",
+                "-nonavbar",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
--- a/test/langtools/jdk/javadoc/doclet/testNestedGenerics/TestNestedGenerics.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testNestedGenerics/TestNestedGenerics.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      6758050 8025633
+ * @bug      6758050 8025633 8182765
  * @summary  Test HTML output for nested generic types.
  * @author   bpatel
  * @library  ../lib
@@ -48,6 +48,20 @@
 
         checkOutput("pkg/NestedGenerics.html", true,
             "<div class=\"block\">Contains <a " +
+            "href=\"#foo(java.util.Map)\"><code>foo" +
+            "(java.util.Map&lt;A, java.util.Map&lt;A, A&gt;&gt;)</code></a></div>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/NestedGenerics.html", true,
+            "<div class=\"block\">Contains <a " +
             "href=\"#foo-java.util.Map-\"><code>foo" +
             "(java.util.Map&lt;A, java.util.Map&lt;A, A&gt;&gt;)</code></a></div>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4789689 4905985 4927164 4827184 4993906 5004549 7025314 7010344 8025633 8026567 8162363
- *           8175200 8186332
+ *           8175200 8186332 8182765
  * @summary  Run Javadoc on a set of source files that demonstrate new
  *           language features.  Check the output to ensure that the new
  *           language features are properly documented.
@@ -46,8 +46,8 @@
     void test() {
         javadoc("-Xdoclint:none",
                 "-d", "out",
-                "-use", "-sourcepath",
-                testSrc,
+                "-use",
+                "-sourcepath", testSrc,
                 "pkg", "pkg1", "pkg2");
         checkExit(Exit.OK);
 
@@ -57,6 +57,21 @@
         checkAnnotationTypeUsage();
     }
 
+    @Test
+    void test_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc,
+                "pkg", "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkTypeParameters_html4();
+        checkVarArgs_html4();
+        checkAnnotationTypeUsage_html4();
+    }
+
     //=================================
     // ENUM TESTING
     //=================================
@@ -136,7 +151,7 @@
                 "<td class=\"colFirst\"><code><a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#methodThatReturnsTypeParameterA-E:A-\">"
+                + "<a href=\"#methodThatReturnsTypeParameterA(E%5B%5D)\">"
                 + "methodThatReturnsTypeParameterA</a></span>&#8203;(<a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</code>",
                 "<pre>public&nbsp;<a href=\"TypeParameters.html\" "
@@ -146,7 +161,7 @@
                 "<td class=\"colFirst\"><code>&lt;T extends java.lang.Object &amp; java.lang.Comparable&lt;? super T&gt;&gt;"
                 + "<br>T</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#methodtThatReturnsTypeParametersB-java.util.Collection-\">"
+                + "<a href=\"#methodtThatReturnsTypeParametersB(java.util.Collection)\">"
                 + "methodtThatReturnsTypeParametersB</a></span>&#8203;(java.util.Collection&lt;? extends T&gt;&nbsp;coll)</code>",
                 "<div class=\"block\">Returns TypeParameters</div>\n",
                 // Method takes a TypeVariable
@@ -154,7 +169,7 @@
                 + "<a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">E</a>"
                 + "</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#orElseThrow-java.util.function.Supplier-\">"
+                + "<a href=\"#orElseThrow(java.util.function.Supplier)\">"
                 + "orElseThrow</a></span>&#8203;(java.util.function.Supplier&lt;? extends X&gt;&nbsp;exceptionSupplier)</code>"
                 );
 
@@ -231,7 +246,7 @@
                 + "pkg2\">Foo</a></span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest1."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "ClassUseTest1.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>",
                 "<caption><span>Fields in <a href=\"../"
                 + "package-summary.html\">pkg2</a> with type parameters of "
@@ -272,7 +287,7 @@
                 + "</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">"
                 + "ClassUseTest1.</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "ClassUseTest1.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>"
         );
 
@@ -295,7 +310,7 @@
                 + "&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "ClassUseTest2.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>",
                 "<caption><span>Fields in <a href=\"../"
                 + "package-summary.html\">pkg2</a> declared as <a href=\"../"
@@ -336,7 +351,7 @@
                 + "</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "ClassUseTest2.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>",
                 "<caption><span>Methods in <a href=\"../"
                 + "package-summary.html\">pkg2</a> that return types with "
@@ -371,7 +386,7 @@
                 + "&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3"
                 + ".</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
-                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code></th>",
+                + "html#method(T)\">method</a></span>&#8203;(T&nbsp;t)</code></th>",
                 "<td class=\"colFirst\"><code>&lt;T extends <a href=\"../"
                 + "ParamTest2.html\" title=\"class in pkg2\">"
                 + "ParamTest2</a>&lt;java.util.List&lt;? extends <a href=\".."
@@ -400,7 +415,7 @@
                 + "pkg2\">Foo4</a></span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
-                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code>"
+                + "html#method(T)\">method</a></span>&#8203;(T&nbsp;t)</code>"
                 + "</th>",
                 "<caption><span>Methods in <a href=\"../"
                 + "package-summary.html\">pkg2</a> that return types with "
@@ -434,7 +449,7 @@
                 + "<td class=\"colFirst\"><code>void</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
-                + "html#method-java.util.Set-\">method</a></span>&#8203;(java."
+                + "html#method(java.util.Set)\">method</a></span>&#8203;(java."
                 + "util.Set&lt;<a href=\"../Foo4.html\" title=\""
                 + "class in pkg2\">Foo4</a>&gt;&nbsp;p)</code></th>",
                 "<caption><span>Constructor parameters in <a href=\"../"
@@ -448,6 +463,129 @@
         // TYPE PARAMETER IN INDEX
         //=================================
         checkOutput("index-all.html", true,
+                "<span class=\"memberNameLink\"><a href=\"pkg2/Foo.html#method(java.util.Vector)\">"
+                + "method(Vector&lt;Object&gt;)</a></span>"
+        );
+
+        // TODO: duplicate of previous case; left in delibarately for now to simplify comparison testing
+        //=================================
+        // TYPE PARAMETER IN INDEX
+        //=================================
+        checkOutput("index-all.html", true,
+                "<span class=\"memberNameLink\"><a href=\"pkg2/Foo.html#method(java.util.Vector)\">"
+                + "method(Vector&lt;Object&gt;)</a></span>"
+        );
+
+        // No type parameters in class frame.
+        checkOutput("allclasses-frame.html", false,
+                "<a href=\"../pkg/TypeParameters.html\" title=\"class in pkg\">"
+                + "TypeParameters</a>&lt;<a href=\"../pkg/TypeParameters.html\" "
+                + "title=\"type parameter in TypeParameters\">E</a>&gt;"
+        );
+
+    }
+
+    //=================================
+    // TYPE PARAMETER TESTING
+    //=================================
+
+    void checkTypeParameters_html4() {
+        checkOutput("pkg/TypeParameters.html", true,
+                // Make sure the header is correct.
+                "<td class=\"colFirst\"><code><a href=\"TypeParameters.html\" "
+                + "title=\"type parameter in TypeParameters\">E</a>[]</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodThatReturnsTypeParameterA-E:A-\">"
+                + "methodThatReturnsTypeParameterA</a></span>&#8203;(<a href=\"TypeParameters.html\" "
+                + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</code>",
+                "<td class=\"colFirst\"><code>&lt;T extends java.lang.Object &amp; java.lang.Comparable&lt;? super T&gt;&gt;"
+                + "<br>T</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodtThatReturnsTypeParametersB-java.util.Collection-\">"
+                + "methodtThatReturnsTypeParametersB</a></span>&#8203;(java.util.Collection&lt;? extends T&gt;&nbsp;coll)</code>",
+                "<div class=\"block\">Returns TypeParameters</div>\n",
+                // Method takes a TypeVariable
+                "<td class=\"colFirst\"><code>&lt;X extends java.lang.Throwable&gt;<br>"
+                + "<a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">E</a>"
+                + "</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#orElseThrow-java.util.function.Supplier-\">"
+                + "orElseThrow</a></span>&#8203;(java.util.function.Supplier&lt;? extends X&gt;&nbsp;exceptionSupplier)</code>"
+                );
+
+        //==============================================================
+        // Test Class-Use Documentation for Type Parameters.
+        //==============================================================
+        // ClassUseTest1: <T extends Foo & Foo2>
+        checkOutput("pkg2/class-use/Foo.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest1."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        checkOutput("pkg2/class-use/Foo2.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">"
+                + "ClassUseTest1.</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        // ClassUseTest2: <T extends ParamTest<Foo3>>
+        checkOutput("pkg2/class-use/ParamTest.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        checkOutput("pkg2/class-use/Foo3.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        // ClassUseTest3: <T extends ParamTest2<List<? extends Foo4>>>
+        checkOutput("pkg2/class-use/ParamTest2.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3"
+                + ".</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
+                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        checkOutput("pkg2/class-use/Foo4.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
+                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code>"
+                + "</th>"
+        );
+
+        // Type parameters in constructor and method args
+        checkOutput("pkg2/class-use/Foo4.html", true,
+                "<caption><span>Method parameters in <a href=\"../"
+                + "package-summary.html\">pkg2</a> with type arguments of "
+                + "type <a href=\"../Foo4.html\" title=\"class in "
+                + "pkg2\">Foo4</a></span><span class=\"tabEnd\">&nbsp;"
+                + "</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Modifier and Type</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Method</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code>void</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
+                + "html#method-java.util.Set-\">method</a></span>&#8203;(java."
+                + "util.Set&lt;<a href=\"../Foo4.html\" title=\""
+                + "class in pkg2\">Foo4</a>&gt;&nbsp;p)</code></th>"
+        );
+
+        //=================================
+        // TYPE PARAMETER IN INDEX
+        //=================================
+        checkOutput("index-all.html", true,
                 "<span class=\"memberNameLink\"><a href=\"pkg2/Foo.html#method-java.util.Vector-\">"
                 + "method(Vector&lt;Object&gt;)</a></span>"
         );
@@ -461,13 +599,6 @@
                 + "method(Vector&lt;Object&gt;)</a></span>"
         );
 
-        // No type parameters in class frame.
-        checkOutput("allclasses-frame.html", false,
-                "<a href=\"../pkg/TypeParameters.html\" title=\"class in pkg\">"
-                + "TypeParameters</a>&lt;<a href=\"../pkg/TypeParameters.html\" "
-                + "title=\"type parameter in TypeParameters\">E</a>&gt;"
-        );
-
     }
 
     //=================================
@@ -477,6 +608,18 @@
         checkOutput("pkg/VarArgs.html", true,
                 "(int...&nbsp;i)",
                 "(int[][]...&nbsp;i)",
+                "(int[]...)",
+                "<a href=\"TypeParameters.html\" title=\"class in pkg\">"
+                + "TypeParameters</a>...&nbsp;t");
+    }
+
+    //=================================
+    // VAR ARG TESTING
+    //=================================
+    void checkVarArgs_html4() {
+        checkOutput("pkg/VarArgs.html", true,
+                "(int...&nbsp;i)",
+                "(int[][]...&nbsp;i)",
                 "-int:A...-",
                 "<a href=\"TypeParameters.html\" title=\"class in pkg\">"
                 + "TypeParameters</a>...&nbsp;t");
@@ -520,16 +663,16 @@
     void checkAnnotationTypeUsage() {
         checkOutput("pkg/package-summary.html", true,
                 // PACKAGE
-                "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">optional</a>=\"Package Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">required</a>=1994)");
+                "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">optional</a>=\"Package Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required()\">required</a>=1994)");
 
         checkOutput("pkg/AnnotationTypeUsage.html", true,
                 // CLASS
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Class Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public class <span class=\"typeNameLabel\">"
                 + "AnnotationTypeUsage</span>\n"
@@ -537,41 +680,41 @@
                 // FIELD
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Field Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public&nbsp;int field</pre>",
                 // CONSTRUCTOR
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Constructor Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public&nbsp;AnnotationTypeUsage()</pre>",
                 // METHOD
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Method Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public&nbsp;void&nbsp;method()</pre>",
                 // METHOD PARAMS
                 "<pre>public&nbsp;void&nbsp;methodWithParams&#8203;("
                 + "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
-                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
                 + "optional</a>=\"Parameter Annotation\",<a "
-                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "href=\"AnnotationType.html#required()\">required</a>=1994)\n"
                 + "                             int&nbsp;documented,\n"
                 + "                             int&nbsp;undocmented)</pre>",
                 // CONSTRUCTOR PARAMS
                 "<pre>public&nbsp;AnnotationTypeUsage&#8203;(<a "
                 + "href=\"AnnotationType.html\" title=\"annotation in pkg\">"
-                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
                 + "optional</a>=\"Constructor Param Annotation\",<a "
-                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "href=\"AnnotationType.html#required()\">required</a>=1994)\n"
                 + "                           int&nbsp;documented,\n"
                 + "                           int&nbsp;undocmented)</pre>");
 
@@ -648,6 +791,101 @@
         //=================================
         checkOutput("pkg1/B.html", true,
                 // Integer
+                "<a href=\"A.html#d()\">d</a>=3.14,",
+                // Double
+                "<a href=\"A.html#d()\">d</a>=3.14,",
+                // Boolean
+                "<a href=\"A.html#b()\">b</a>=true,",
+                // String
+                "<a href=\"A.html#s()\">s</a>=\"sigh\",",
+                // Class
+                "<a href=\"A.html#c()\">c</a>=<a href=\"../pkg2/Foo.html\" title=\"class in pkg2\">Foo.class</a>,",
+                // Bounded Class
+                "<a href=\"A.html#w()\">w</a>=<a href=\"../pkg/TypeParameterSubClass.html\" title=\"class in pkg\">TypeParameterSubClass.class</a>,",
+                // Enum
+                "<a href=\"A.html#e()\">e</a>=<a href=\"../pkg/Coin.html#Penny\">Penny</a>,",
+                // Annotation Type
+                "<a href=\"A.html#a()\">a</a>=<a href=\"../pkg/AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"../pkg/AnnotationType.html#optional()\">optional</a>=\"foo\",<a href=\"../pkg/AnnotationType.html#required()\">required</a>=1994),",
+                // String Array
+                "<a href=\"A.html#sa()\">sa</a>={\"up\",\"down\"},",
+                // Primitive
+                "<a href=\"A.html#primitiveClassTest()\">primitiveClassTest</a>=boolean.class,");
+
+        // XXX:  Add array test case after this if fixed:
+        //5020899: Incorrect internal representation of class-valued annotation elements
+        // Make sure that annotations are surrounded by <pre> and </pre>
+        checkOutput("pkg1/B.html", true,
+                "<pre><a href=\"A.html\" title=\"annotation in pkg1\">@A</a>",
+                "public interface <span class=\"typeNameLabel\">B</span></pre>");
+
+    }
+
+    //=================================
+    // ANNOTATION TYPE USAGE TESTING
+    //=================================
+    void checkAnnotationTypeUsage_html4() {
+        checkOutput("pkg/package-summary.html", true,
+                // PACKAGE
+                "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">optional</a>=\"Package Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">required</a>=1994)");
+
+        checkOutput("pkg/AnnotationTypeUsage.html", true,
+                // CLASS
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Class Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public class <span class=\"typeNameLabel\">"
+                + "AnnotationTypeUsage</span>\n"
+                + "extends java.lang.Object</pre>",
+                // FIELD
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Field Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public&nbsp;int field</pre>",
+                // CONSTRUCTOR
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Constructor Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public&nbsp;AnnotationTypeUsage()</pre>",
+                // METHOD
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Method Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public&nbsp;void&nbsp;method()</pre>",
+                // METHOD PARAMS
+                "<pre>public&nbsp;void&nbsp;methodWithParams&#8203;("
+                + "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "optional</a>=\"Parameter Annotation\",<a "
+                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "                             int&nbsp;documented,\n"
+                + "                             int&nbsp;undocmented)</pre>",
+                // CONSTRUCTOR PARAMS
+                "<pre>public&nbsp;AnnotationTypeUsage&#8203;(<a "
+                + "href=\"AnnotationType.html\" title=\"annotation in pkg\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "optional</a>=\"Constructor Param Annotation\",<a "
+                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "                           int&nbsp;documented,\n"
+                + "                           int&nbsp;undocmented)</pre>");
+
+        //=================================
+        // ANNOTATION TYPE USAGE TESTING (All Different Types).
+        //=================================
+        checkOutput("pkg1/B.html", true,
+                // Integer
                 "<a href=\"A.html#d--\">d</a>=3.14,",
                 // Double
                 "<a href=\"A.html#d--\">d</a>=3.14,",
@@ -667,14 +905,5 @@
                 "<a href=\"A.html#sa--\">sa</a>={\"up\",\"down\"},",
                 // Primitive
                 "<a href=\"A.html#primitiveClassTest--\">primitiveClassTest</a>=boolean.class,");
-
-        // XXX:  Add array test case after this if fixed:
-        //5020899: Incorrect internal representation of class-valued annotation elements
-        // Make sure that annotations are surrounded by <pre> and </pre>
-        checkOutput("pkg1/B.html", true,
-                "<pre><a href=\"A.html\" title=\"annotation in pkg1\">@A</a>",
-                "public interface <span class=\"typeNameLabel\">B</span></pre>");
-
     }
-
 }
--- a/test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8048628 8174715
+ * @bug      8048628 8174715 8182765
  * @summary  Verify html inline tags are removed correctly in the first sentence.
  * @library  ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -43,7 +43,11 @@
         javadoc("-d", "out1",
                 "-sourcepath", testSrc,
                 testSrc("C.java"));
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: compact",
+                "attribute not supported in HTML5: type");
 
         checkOutput("C.html", true,
                 "<div class=\"block\">case1   end of sentence.</div>",
@@ -60,6 +64,15 @@
     }
 
     @Test
+    void testPositive_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                testSrc("C.java"));
+        checkExit(Exit.OK);
+    }
+
+    @Test
     void testNegative() {
         javadoc("-d", "out2",
                 "-sourcepath", testSrc,
--- a/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4749567 8071982 8175200 8186332 8185371
+ * @bug      4749567 8071982 8175200 8186332 8185371 8182765
  * @summary  Test the output for -header, -footer, -nooverview, -nodeprecatedlist, -nonavbar, -notree,
  *           -stylesheetfile, --main-stylesheet, --add-stylesheet options.
  * @author   Bhavesh Patel
@@ -198,7 +198,7 @@
 
         checkOutput("src-html/linksource/AnnotationTypeField.html", true,
                 "<title>Source code</title>",
-                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">"
+                "<span class=\"sourceLineNo\">031</span><a id=\"line.31\">"
                 + "@Documented public @interface AnnotationTypeField {</a>");
 
         checkOutput("linksource/Properties.html", true,
@@ -211,7 +211,7 @@
 
         checkOutput("src-html/linksource/Properties.html", true,
                 "<title>Source code</title>",
-                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                "<span class=\"sourceLineNo\">031</span><a id=\"line.31\">    "
                 + "public Object someProperty() {</a>");
 
         checkOutput("linksource/SomeClass.html", true,
@@ -226,13 +226,13 @@
 
         checkOutput("src-html/linksource/SomeClass.html", true,
                 "<title>Source code</title>",
-                "<span class=\"sourceLineNo\">029</span><a name=\"line.29\">"
+                "<span class=\"sourceLineNo\">029</span><a id=\"line.29\">"
                 + "public class SomeClass {</a>",
-                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                "<span class=\"sourceLineNo\">031</span><a id=\"line.31\">    "
                 + "public int field;</a>",
-                "<span class=\"sourceLineNo\">033</span><a name=\"line.33\">    "
+                "<span class=\"sourceLineNo\">033</span><a id=\"line.33\">    "
                 + "public SomeClass() {</a>",
-                "<span class=\"sourceLineNo\">036</span><a name=\"line.36\">    "
+                "<span class=\"sourceLineNo\">036</span><a id=\"line.36\">    "
                 + "public int method() {</a>");
 
         checkOutput("linksource/SomeEnum.html", true,
@@ -244,6 +244,40 @@
                 + "\"../src-html/linksource/SomeEnum.html#line.30\">VALUE2</a></pre>");
 
         checkOutput("src-html/linksource/SomeEnum.html", true,
+                "<span class=\"sourceLineNo\">029</span><a id=\"line.29\">    VALUE1,</a>",
+                "<span class=\"sourceLineNo\">030</span><a id=\"line.30\">    VALUE2</a>");
+    }
+
+    @Test
+    void testLinkSource_html4() {
+        javadoc("-d", "out-9-html4",
+                "-html4",
+                "-linksource",
+                "-javafx",
+                "-sourcepath", testSrc,
+                "-package",
+                "linksource");
+        checkExit(Exit.OK);
+
+        checkOutput("src-html/linksource/AnnotationTypeField.html", true,
+                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">"
+                + "@Documented public @interface AnnotationTypeField {</a>");
+
+        checkOutput("src-html/linksource/Properties.html", true,
+                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                + "public Object someProperty() {</a>");
+
+        checkOutput("src-html/linksource/SomeClass.html", true,
+                "<span class=\"sourceLineNo\">029</span><a name=\"line.29\">"
+                + "public class SomeClass {</a>",
+                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                + "public int field;</a>",
+                "<span class=\"sourceLineNo\">033</span><a name=\"line.33\">    "
+                + "public SomeClass() {</a>",
+                "<span class=\"sourceLineNo\">036</span><a name=\"line.36\">    "
+                + "public int method() {</a>");
+
+        checkOutput("src-html/linksource/SomeEnum.html", true,
                 "<span class=\"sourceLineNo\">029</span><a name=\"line.29\">    VALUE1,</a>",
                 "<span class=\"sourceLineNo\">030</span><a name=\"line.30\">    VALUE2</a>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8039410 8042601 8042829 8049393 8050031 8155061 8155995 8167967 8169813
+ * @bug 8039410 8042601 8042829 8049393 8050031 8155061 8155995 8167967 8169813 8182765
  * @summary test to determine if members are ordered correctly
  * @library ../lib/
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -93,9 +93,9 @@
             String contents = tester.readFile(usePage);
             // check constructors
             tester.checking("constructors");
-            int idx1 = contents.indexOf("C.html#C-UsedInC");
-            int idx2 = contents.indexOf("C.html#C-UsedInC-int");
-            int idx3 = contents.indexOf("C.html#C-UsedInC-java.lang.String");
+            int idx1 = contents.indexOf("C.html#%3Cinit%3E(UsedInC");
+            int idx2 = contents.indexOf("C.html#%3Cinit%3E(UsedInC,int");
+            int idx3 = contents.indexOf("C.html#%3Cinit%3E(UsedInC,java.lang.String");
             if (idx1 == -1 || idx2 == -1 || idx3 == -1) {
                 tester.failed("ctor strings not found");
             } else if (idx1 > idx2 || idx2 > idx3 || idx1 > idx3) {
@@ -106,8 +106,8 @@
 
             // check methods
             tester.checking("methods");
-            idx1 = contents.indexOf("C.html#ymethod-int");
-            idx2 = contents.indexOf("C.html#ymethod-java.lang.String");
+            idx1 = contents.indexOf("C.html#ymethod(int");
+            idx2 = contents.indexOf("C.html#ymethod(java.lang.String");
             if (idx1 == -1 || idx2 == -1) {
                 tester.failed("#ymethod strings not found");
             } else if (idx1 > idx2) {
@@ -135,42 +135,42 @@
             checkClassUseOrdering("pkg1/class-use/UsedClass.html");
 
             tester.checkOrder("pkg1/class-use/UsedClass.html",
-                    "../MethodOrder.html#m--",
-                    "../MethodOrder.html#m-byte:A-",
-                    "../MethodOrder.html#m-double-",
-                    "../MethodOrder.html#m-double-double-",
-                    "../MethodOrder.html#m-double-java.lang.Double-",
-                    "../MethodOrder.html#m-int-",
-                    "../MethodOrder.html#m-int-int-",
-                    "../MethodOrder.html#m-int-java.lang.Integer-",
-                    "../MethodOrder.html#m-long-",
-                    "../MethodOrder.html#m-long-long-",
-                    "../MethodOrder.html#m-long-java.lang.Long-",
-                    "../MethodOrder.html#m-long-java.lang.Long...-",
-                    "../MethodOrder.html#m-java.lang.Double-",
-                    "../MethodOrder.html#m-java.lang.Double-double-",
-                    "../MethodOrder.html#m-java.lang.Double-java.lang.Double-",
-                    "../MethodOrder.html#m-java.lang.Integer-",
-                    "../MethodOrder.html#m-java.lang.Integer-int-",
-                    "../MethodOrder.html#m-java.lang.Integer-java.lang.Integer-",
-                    "../MethodOrder.html#m-java.lang.Object:A-",
-                    "../MethodOrder.html#m-java.util.ArrayList-",
-                    "../MethodOrder.html#m-java.util.Collection-",
-                    "../MethodOrder.html#m-java.util.List-");
+                    "../MethodOrder.html#m()",
+                    "../MethodOrder.html#m(byte%5B%5D)",
+                    "../MethodOrder.html#m(double)",
+                    "../MethodOrder.html#m(double,double)",
+                    "../MethodOrder.html#m(double,java.lang.Double)",
+                    "../MethodOrder.html#m(int)",
+                    "../MethodOrder.html#m(int,int)",
+                    "../MethodOrder.html#m(int,java.lang.Integer)",
+                    "../MethodOrder.html#m(long)",
+                    "../MethodOrder.html#m(long,long)",
+                    "../MethodOrder.html#m(long,java.lang.Long)",
+                    "../MethodOrder.html#m(long,java.lang.Long...)",
+                    "../MethodOrder.html#m(java.lang.Double)",
+                    "../MethodOrder.html#m(java.lang.Double,double)",
+                    "../MethodOrder.html#m(java.lang.Double,java.lang.Double)",
+                    "../MethodOrder.html#m(java.lang.Integer)",
+                    "../MethodOrder.html#m(java.lang.Integer,int)",
+                    "../MethodOrder.html#m(java.lang.Integer,java.lang.Integer)",
+                    "../MethodOrder.html#m(java.lang.Object%5B%5D)",
+                    "../MethodOrder.html#m(java.util.ArrayList)",
+                    "../MethodOrder.html#m(java.util.Collection)",
+                    "../MethodOrder.html#m(java.util.List)");
 
             tester.checkOrder("pkg1/class-use/UsedClass.html",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-pkg1.UsedClass-",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-pkg1.UsedClass:A-",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-java.lang.String-");
+                    "../MethodOrder.html#tpm(pkg1.UsedClass)",
+                    "../MethodOrder.html#tpm(pkg1.UsedClass,pkg1.UsedClass)",
+                    "../MethodOrder.html#tpm(pkg1.UsedClass,pkg1.UsedClass%5B%5D)",
+                    "../MethodOrder.html#tpm(pkg1.UsedClass,java.lang.String)");
 
             tester.checkOrder("pkg1/class-use/UsedClass.html",
-                    "../A.html#A-pkg1.UsedClass-",
-                    "../B.A.html#A-pkg1.UsedClass-",
-                    "../B.html#B-pkg1.UsedClass-",
-                    "../A.C.html#C-pkg1.UsedClass-java.lang.Object:A-",
-                    "../A.C.html#C-pkg1.UsedClass-java.util.Collection-",
-                    "../A.C.html#C-pkg1.UsedClass-java.util.List-");
+                    "../A.html#%3Cinit%3E(pkg1.UsedClass)",
+                    "../B.A.html#%3Cinit%3E(pkg1.UsedClass)",
+                    "../B.html#%3Cinit%3E(pkg1.UsedClass)",
+                    "../A.C.html#%3Cinit%3E(pkg1.UsedClass,java.lang.Object%5B%5D)",
+                    "../A.C.html#%3Cinit%3E(pkg1.UsedClass,java.util.Collection)",
+                    "../A.C.html#%3Cinit%3E(pkg1.UsedClass,java.util.List)");
 
             tester.checkOrder("pkg1/ImplementsOrdering.html",
                     "<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>",
@@ -213,7 +213,7 @@
         void checkClassUseOrdering(String usePage) {
             checkClassUseOrdering(usePage, "C#ITERATION#.html#zfield");
             checkClassUseOrdering(usePage, "C#ITERATION#.html#fieldInC#ITERATION#");
-            checkClassUseOrdering(usePage, "C#ITERATION#.html#zmethod-pkg1.UsedClass");
+            checkClassUseOrdering(usePage, "C#ITERATION#.html#zmethod(pkg1.UsedClass");
             checkClassUseOrdering(usePage, "C#ITERATION#.html#methodInC#ITERATION#");
         }
 
@@ -346,17 +346,17 @@
         };
 
         static String expectedMethodOrdering[] = {
-            "Add.html#add--",
-            "Add.html#add-double-",
-            "Add.html#add-double-byte-",
-            "Add.html#add-double-double-",
-            "Add.html#add-double-java.lang.Double-",
-            "Add.html#add-float-",
-            "Add.html#add-float-int-",
-            "Add.html#add-int-",
-            "Add.html#add-int-float-",
-            "Add.html#add-java.lang.Double-",
-            "Add.html#add-java.lang.Integer-"
+            "Add.html#add()",
+            "Add.html#add(double)",
+            "Add.html#add(double,byte)",
+            "Add.html#add(double,double)",
+            "Add.html#add(double,java.lang.Double)",
+            "Add.html#add(float)",
+            "Add.html#add(float,int)",
+            "Add.html#add(int)",
+            "Add.html#add(int,float)",
+            "Add.html#add(java.lang.Double)",
+            "Add.html#add(java.lang.Integer)"
         };
 
         static String expectedPackageOrdering[] = {
@@ -593,10 +593,10 @@
 
             tester.checkOrder("pkg5/AnnoOptionalTest.html",
                     "<h3>Optional Element Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Element Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -605,10 +605,10 @@
 
             tester.checkOrder("pkg5/AnnoRequiredTest.html",
                     "<h3>Required Element Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Element Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -617,15 +617,15 @@
 
             tester.checkOrder("pkg5/CtorTest.html",
                     "<h3>Constructor Summary</h3>",
-                    "<a href=\"#CtorTest-int-\"",
-                    "<a href=\"#CtorTest-int-int-\"",
-                    "<a href=\"#CtorTest-int-int-int-\"",
-                    "<a href=\"#CtorTest-int-int-int-int-\"",
+                    "<a href=\"#%3Cinit%3E(int)\"",
+                    "<a href=\"#%3Cinit%3E(int,int)\"",
+                    "<a href=\"#%3Cinit%3E(int,int,int)\"",
+                    "<a href=\"#%3Cinit%3E(int,int,int,int)\"",
                     "<h3>Constructor Detail</h3>",
-                    "<a name=\"CtorTest-int-int-int-int-\">",
-                    "<a name=\"CtorTest-int-int-int-\">",
-                    "<a name=\"CtorTest-int-int-\">",
-                    "<a name=\"CtorTest-int-\">");
+                    "<a id=\"&lt;init&gt;(int,int,int,int)\">",
+                    "<a id=\"&lt;init&gt;(int,int,int)\">",
+                    "<a id=\"&lt;init&gt;(int,int)\">",
+                    "<a id=\"&lt;init&gt;(int)\">");
 
             tester.checkOrder("pkg5/EnumTest.html",
                     "<h3>Enum Constant Summary</h3>",
@@ -653,10 +653,10 @@
 
             tester.checkOrder("pkg5/IntfTest.html",
                     "<h3>Method Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Method Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -665,10 +665,10 @@
 
             tester.checkOrder("pkg5/MethodTest.html",
                     "<h3>Method Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Method Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -686,6 +686,25 @@
                     "<h4>twoProperty</h4>",
                     "<h4>threeProperty</h4>",
                     "<h4>fourProperty</h4>");
+
+            tester.javadoc("-d", "out-5-html4",
+                    "-html4",
+                    "-javafx",
+                    "-sourcepath", tester.testSrc(new File(".").getPath()),
+                    "pkg5"
+            );
+
+            tester.checkExit(Exit.OK);
+
+            tester.checkOrder("pkg5/CtorTest.html",
+                    "<a href=\"#CtorTest-int-\"",
+                    "<a href=\"#CtorTest-int-int-\"",
+                    "<a href=\"#CtorTest-int-int-int-\"",
+                    "<a href=\"#CtorTest-int-int-int-int-\"",
+                    "<a name=\"CtorTest-int-int-int-int-\">",
+                    "<a name=\"CtorTest-int-int-int-\">",
+                    "<a name=\"CtorTest-int-int-\">",
+                    "<a name=\"CtorTest-int-\">");
         }
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenMethodDocCopy.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenMethodDocCopy.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4368820 8025633 8026567
+ * @bug      4368820 8025633 8026567 8182765
  * @summary  Inherited comment should link directly to member, not just
  *           class
  * @author   jamieh
@@ -53,6 +53,20 @@
 
         checkOutput("pkg1/SubClass.html", true,
                 "<span class=\"descfrmTypeLabel\">Description copied from class:&nbsp;<code>"
+                + "<a href=\"BaseClass.html#overridenMethodWithDocsToCopy()\">"
+                + "BaseClass</a></code></span>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/SubClass.html", true,
+                "<span class=\"descfrmTypeLabel\">Description copied from class:&nbsp;<code>"
                 + "<a href=\"BaseClass.html#overridenMethodWithDocsToCopy--\">"
                 + "BaseClass</a></code></span>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4634891 8025633 8026567
+ * @bug 4634891 8025633 8026567 8182765
  * @summary Determine if overridden methods are properly documented when
  * -protected (default) visibility flag is used.
  * @author jamieh
@@ -51,6 +51,54 @@
         // The public method should be overridden
         checkOutput("pkg1/SubClass.html", true,
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#publicMethod()\">"
+                + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The public method in different package should be overridden
+        checkOutput("pkg2/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod()\">"
+                + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The package private method should be overridden since the base and sub class are in the same
+        // package.
+        checkOutput("pkg1/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#packagePrivateMethod()\">"
+                + "packagePrivateMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The private method in should not be overridden
+        checkOutput("pkg1/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#privateMethod--\">");
+
+        // The private method in different package should not be overridden
+        checkOutput("pkg2/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod--\">");
+
+        // The package private method should not be overridden since the base and sub class are in
+        // different packages.
+        checkOutput("pkg2/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod--\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        // The public method should be overridden
+        checkOutput("pkg1/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
                 + "<dd><code><a href=\"BaseClass.html#publicMethod--\">"
                 + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverrideMethods.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverrideMethods.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8157000 8192850
+ * @bug 8157000 8192850 8182765
  * @summary  test the behavior of --override-methods option
  * @library  ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -94,11 +94,11 @@
                 // Check method summary
                 "Method Summary",
                 "void",
-                "#m1--\">m1",
+                "#m1()\">m1",
                 "A modified method",
 
                 "void",
-                "#m4-java.lang.String-java.lang.String-\">m4",
+                "#m4(java.lang.String,java.lang.String)\">m4",
                 "java.lang.String&nbsp;k,",
                 "java.lang.String",
                 "&nbsp;v)",
@@ -106,12 +106,12 @@
                 // Check footnotes
                 "Methods declared in class&nbsp;pkg5.<a href=\"Classes.GP.html",
                 "Classes.GP",
-                "Classes.GP.html#m0--\">m0",
+                "Classes.GP.html#m0()\">m0",
 
                 // Check method details for override
                 "overrideSpecifyLabel",
                 "Overrides:",
-                "Classes.GP.html#m7--\">m7",
+                "Classes.GP.html#m7()\">m7",
                 "in class",
                 "Classes.GP.html",
                 "Classes.GP"
@@ -120,47 +120,47 @@
         checkOrder("pkg5/Classes.C.html",
                 // Check footnotes 2
                 "Methods declared in class&nbsp;pkg5.",
-                "Classes.P.html#getRate--\">getRate",
-                "Classes.P.html#m2--\">m2",
-                "Classes.P.html#m3--\">m3",
-                "Classes.P.html#m4-K-V-\">m4",
-                "Classes.P.html#rateProperty--\">rateProperty",
-                "Classes.P.html#setRate-double-\">setRate",
+                "Classes.P.html#getRate()\">getRate",
+                "Classes.P.html#m2()\">m2",
+                "Classes.P.html#m3()\">m3",
+                "Classes.P.html#m4(K,V)\">m4",
+                "Classes.P.html#rateProperty()\">rateProperty",
+                "Classes.P.html#setRate(double)\">setRate",
 
                 // Check @link
                 "A test of links to the methods in this class. <p>\n",
-                "Classes.GP.html#m0--",
+                "Classes.GP.html#m0()",
                 "Classes.GP.m0()",
-                "#m1--",
+                "#m1()",
                 "m1()",
-                "Classes.P.html#m2--",
+                "Classes.P.html#m2()",
                 "Classes.P.m2()",
-                "Classes.P.html#m3--",
+                "Classes.P.html#m3()",
                 "Classes.P.m3()",
                 "m4(java.lang.String,java.lang.String)",
-                "Classes.P.html#m5--",
+                "Classes.P.html#m5()",
                 "Classes.P.m5()",
-                "#m6--",
+                "#m6()",
                 "m6()",
-                "#m7--",
+                "#m7()",
                 "m7()",
                 "End of links",
 
                 // Check @see
                 "See Also:",
-                "Classes.GP.html#m0--",
+                "Classes.GP.html#m0()",
                 "Classes.GP.m0()",
-                "#m1--",
+                "#m1()",
                 "m1()",
-                "Classes.P.html#m2--",
+                "Classes.P.html#m2()",
                 "Classes.P.m2()",
-                "Classes.P.html#m3--",
+                "Classes.P.html#m3()",
                 "Classes.P.m3()",
-                "#m4-java.lang.String-java.lang.String-",
+                "#m4(java.lang.String,java.lang.String)",
                 "m4(String k, String v)",
-                "Classes.P.html#m5--\"><code>Classes.P.m5()",
-                "#m6--\"><code>m6()",
-                "#m7--\"><code>m7()"
+                "Classes.P.html#m5()\"><code>Classes.P.m5()",
+                "#m6()\"><code>m6()",
+                "#m7()\"><code>m7()"
         );
 
         // Tests for interfaces
@@ -172,24 +172,24 @@
 
         checkOrder("pkg5/Interfaces.D.html",
                 "Start of links <p>",
-                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
-                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
-                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
-                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
-                "#m--\"><code>m()",
-                "#n--\"><code>n()",
-                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "Interfaces.A.html#m0()\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1()\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2()\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3()\"><code>Interfaces.A.m3()",
+                "#m()\"><code>m()",
+                "#n()\"><code>n()",
+                "Interfaces.C.html#o()\"><code>Interfaces.C.o()",
                 "End of links",
 
                 // Check @see links
                 "See Also:",
-                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
-                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
-                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
-                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
-                "#m--\"><code>m()",
-                "#n--\"><code>n()",
-                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "Interfaces.A.html#m0()\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1()\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2()\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3()\"><code>Interfaces.A.m3()",
+                "#m()\"><code>m()",
+                "#n()\"><code>n()",
+                "Interfaces.C.html#o()\"><code>Interfaces.C.o()",
 
                 // Check properties
                 "Properties declared in interface&nbsp;pkg5.<a href=\"Interfaces.A.html\" "
@@ -209,24 +209,128 @@
 
                 // Check Method Summary
                 "Method Summary",
-                "#m--\">m",
-                "#n--\">n",
+                "#m()\">m",
+                "#n()\">n",
 
                 // Check footnotes
                 "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.A.html",
+                "Interfaces.A.html#getRate()\">getRate",
+                "Interfaces.A.html#rateProperty()\">rateProperty",
+                "Interfaces.A.html#setRate(double)",
+                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.B.html",
+                "Interfaces.B.html#m1()\">m1",
+                "Interfaces.B.html#m3()\">m3",
+                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.C.html",
+                "<a href=\"Interfaces.C.html#o()\">o</a>"
+        );
+
+        // Test synthetic values and valuesof of an enum.
+        checkOrder("index-all.html",
+                "<h2 class=\"title\">M</h2>",
+                "<a href=\"pkg5/Interfaces.C.html#m()\">m()",
+                "<a href=\"pkg5/Interfaces.D.html#m()\">m()</a>",
+                "<a href=\"pkg5/Classes.GP.html#m0()\">m0()",
+                "<a href=\"pkg5/Interfaces.A.html#m0()\">m0()</a>",
+                "<a href=\"pkg5/Classes.C.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Classes.P.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Interfaces.A.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Interfaces.B.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Classes.P.html#m2()\">m2()</a>",
+                "<a href=\"pkg5/Interfaces.A.html#m2()\">m2()</a>",
+                "<a href=\"pkg5/Classes.P.html#m3()\">m3()</a>",
+                "<a href=\"pkg5/Interfaces.A.html#m3()\">m3()</a>",
+                "<a href=\"pkg5/Interfaces.B.html#m3()\">m3()</a>",
+                "<a href=\"pkg5/Classes.C.html#m4(java.lang.String,java.lang.String)\">m4(String, String)</a>",
+                "<a href=\"pkg5/Classes.P.html#m4(K,V)\">m4(K, V)</a>",
+                "<a href=\"pkg5/Classes.P.html#m5()\">m5()</a>",
+                "<a href=\"pkg5/Classes.C.html#m6()\">m6()</a>",
+                "<a href=\"pkg5/Classes.P.html#m6()\">m6()</a>",
+                "<a href=\"pkg5/Classes.C.html#m7()\">m7()</a>",
+                "<a href=\"pkg5/Classes.GP.html#m7()\">m7()</a>",
+                "Returns the enum constant of this type with the specified name.",
+                "Returns an array containing the constants of this enum type, in\n" +
+                        "the order they are declared."
+        );
+    }
+
+    @Test
+    void testSummary_html4() {
+        javadoc("-d", "out-summary-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "--override-methods=summary",
+                "pkg5");
+
+        checkExit(Exit.OK);
+
+        checkOrder("pkg5/Classes.C.html",
+                "#m1--\">m1",
+                "#m4-java.lang.String-java.lang.String-\">m4",
+                "Classes.GP.html#m0--\">m0",
+                "Classes.GP.html#m7--\">m7"
+        );
+
+        checkOrder("pkg5/Classes.C.html",
+                // Check footnotes 2
+                "Classes.P.html#getRate--\">getRate",
+                "Classes.P.html#m2--\">m2",
+                "Classes.P.html#m3--\">m3",
+                "Classes.P.html#m4-K-V-\">m4",
+                "Classes.P.html#rateProperty--\">rateProperty",
+                "Classes.P.html#setRate-double-\">setRate",
+
+                // Check @link
+                "Classes.GP.html#m0--",
+                "#m1--",
+                "Classes.P.html#m2--",
+                "Classes.P.html#m3--",
+                "Classes.P.html#m5--",
+                "#m6--",
+                "#m7--",
+
+                // Check @see
+                "Classes.GP.html#m0--",
+                "#m1--",
+                "Classes.P.html#m2--",
+                "Classes.P.html#m3--",
+                "#m4-java.lang.String-java.lang.String-",
+                "Classes.P.html#m5--\"><code>Classes.P.m5()",
+                "#m6--\"><code>m6()",
+                "#m7--\"><code>m7()"
+        );
+
+        // Tests for interfaces
+
+        // Make sure the static methods in the super interface
+        // do not make it to this interface
+        checkOrder("pkg5/Interfaces.D.html",
+                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
+                "#m--\"><code>m()",
+                "#n--\"><code>n()",
+                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
+                "#m--\"><code>m()",
+                "#n--\"><code>n()",
+                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "#m--\">m",
+                "#n--\">n",
                 "Interfaces.A.html#getRate--\">getRate",
                 "Interfaces.A.html#rateProperty--\">rateProperty",
                 "Interfaces.A.html#setRate-double-",
-                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.B.html",
                 "Interfaces.B.html#m1--\">m1",
                 "Interfaces.B.html#m3--\">m3",
-                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.C.html",
                 "<a href=\"Interfaces.C.html#o--\">o</a>"
         );
 
         // Test synthetic values and valuesof of an enum.
         checkOrder("index-all.html",
-                "<h2 class=\"title\">M</h2>",
                 "<a href=\"pkg5/Interfaces.C.html#m--\">m()",
                 "<a href=\"pkg5/Interfaces.D.html#m--\">m()</a>",
                 "<a href=\"pkg5/Classes.GP.html#m0--\">m0()",
@@ -246,10 +350,7 @@
                 "<a href=\"pkg5/Classes.C.html#m6--\">m6()</a>",
                 "<a href=\"pkg5/Classes.P.html#m6--\">m6()</a>",
                 "<a href=\"pkg5/Classes.C.html#m7--\">m7()</a>",
-                "<a href=\"pkg5/Classes.GP.html#m7--\">m7()</a>",
-                "Returns the enum constant of this type with the specified name.",
-                "Returns an array containing the constants of this enum type, in\n" +
-                        "the order they are declared."
+                "<a href=\"pkg5/Classes.GP.html#m7--\">m7()</a>"
         );
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 8173302
+ * @bug 8173302 8182765
  * @summary make sure the overview-summary and module-summary pages don't
  *          don't have the See link, and the overview is copied correctly.
  * @library ../lib
@@ -48,15 +48,20 @@
                     "-sourcepath", testSrc("src"),
                     "p1", "p2");
         checkExit(Exit.OK);
-        checkOutput("overview-summary.html", true,
-                "<div class=\"header\">\n"
-                + "<h1 class=\"title\">Document Title</h1>\n"
-                + "</div>\n"
-                + "<div class=\"contentContainer\">\n"
-                + "<div class=\"block\">This is line1. This is line 2.</div>\n"
-                + "</div>\n"
-                + "<div class=\"contentContainer\">"
-        );
+        checkOverview();
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-doctitle", "Document Title",
+                "-windowtitle", "Window Title",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc("src"),
+                "p1", "p2");
+        checkExit(Exit.OK);
+        checkOverview_html4();
     }
 
     @Test
@@ -68,6 +73,35 @@
                     "-sourcepath", testSrc("msrc"),
                     "p1", "p2");
         checkExit(Exit.OK);
+        checkOverview();
+    }
+
+    @Test
+    void test2_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-doctitle", "Document Title",
+                "-windowtitle", "Window Title",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc("msrc"),
+                "p1", "p2");
+        checkExit(Exit.OK);
+        checkOverview_html4();
+    }
+
+    void checkOverview() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"header\">\n"
+                + "<h1 class=\"title\">Document Title</h1>\n"
+                + "</div>\n"
+                + "<main role=\"main\">\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<div class=\"block\">This is line1. This is line 2.</div>\n"
+                + "</div>\n"
+                + "<div class=\"contentContainer\">");
+    }
+
+    void checkOverview_html4() {
         checkOutput("overview-summary.html", true,
                 "<div class=\"header\">\n"
                 + "<h1 class=\"title\">Document Title</h1>\n"
@@ -75,7 +109,6 @@
                 + "<div class=\"contentContainer\">\n"
                 + "<div class=\"block\">This is line1. This is line 2.</div>\n"
                 + "</div>\n"
-                + "<div class=\"contentContainer\">"
-        );
+                + "<div class=\"contentContainer\">");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testPackageDescription/TestPackageDescription.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testPackageDescription/TestPackageDescription.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug      8185194
+ * @bug      8185194 8182765
  * @summary  Test anchor for package description in package summary page
   * @library  ../lib/
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -42,8 +42,7 @@
     void test1() {
         javadoc("-d", "out",
                 "-sourcepath", testSrc,
-                "pkg",
-                "-html5");
+                "pkg");
         checkExit(Exit.OK);
 
         checkOutput("pkg/package-summary.html", true,
@@ -56,6 +55,7 @@
     @Test
     void test2() {
         javadoc("-d", "out-2",
+                "-html4",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
--- a/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4780441 4874845 4978816 8014017 8016328 8025633 8026567 8175200
+ * @bug      4780441 4874845 4978816 8014017 8016328 8025633 8026567 8175200 8182765
  * @summary  Make sure that when the -private flag is not used, members
  *           inherited from package private class are documented in the child.
  *
@@ -42,7 +42,6 @@
  * @build    JavadocTester
  * @run main TestPrivateClasses
  */
-
 public class TestPrivateClasses extends JavadocTester {
 
     public static void main(String... args) throws Exception {
@@ -62,7 +61,7 @@
                 "<a href=\"#fieldInheritedFromParent\">"
                 + "fieldInheritedFromParent</a>",
                 // Method inheritance from non-public superclass.
-                "<a href=\"#methodInheritedFromParent-int-\">"
+                "<a href=\"#methodInheritedFromParent(int)\">"
                 + "methodInheritedFromParent</a>",
                 // private class does not show up in tree
                 "<ul class=\"inheritance\">\n"
@@ -94,15 +93,15 @@
 
         checkOutput("pkg/PublicChild.html", false,
                 // Should not document comments from private inherited interfaces
-                "<td class=\"colLast\"><code><span class=\"memberNameLink\">" +
-                "<a href=\"#methodInterface-int-\">" +
-                "methodInterface</a></span>&#8203;(int&nbsp;p1)</code>\n" +
-                "<div class=\"block\">Comment from interface.</div>\n</td>",
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface(int)\">"
+                + "methodInterface</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>",
                 // and similarly one more
-                "<td class=\"colLast\"><code><span class=\"memberNameLink\">" +
-                "<a href=\"#methodInterface2-int-\">" +
-                "methodInterface2</a></span>&#8203;(int&nbsp;p1)</code>\n" +
-                "<div class=\"block\">Comment from interface.</div>\n</td>"
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface2(int)\">"
+                + "methodInterface2</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>"
         );
 
         checkOutput("pkg/PublicInterface.html", true,
@@ -110,7 +109,7 @@
                 "<a href=\"#fieldInheritedFromInterface\">"
                 + "fieldInheritedFromInterface</a>",
                 // Method inheritance from non-public superinterface.
-                "<a href=\"#methodInterface-int-\">"
+                "<a href=\"#methodInterface(int)\">"
                 + "methodInterface</a>",
                 //Make sure implemented interfaces from private superclass are inherited
                 "<dl>\n"
@@ -132,7 +131,7 @@
         checkOutput("pkg2/C.html", false,
                 //Do not inherit private interface method with generic parameters.
                 //This method has been implemented.
-                "<span class=\"memberNameLink\"><a href=\"I.html#hello-T-\">hello</a></span>");
+                "<span class=\"memberNameLink\"><a href=\"I.html#hello(T)\">hello</a></span>");
 
         checkOutput("constant-values.html", false,
                 // Make inherited constant are documented correctly.
@@ -140,6 +139,42 @@
     }
 
     @Test
+    void testDefault_html4() {
+        javadoc("-d", "out-default-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/PublicChild.html", true,
+                // Method inheritance from non-public superclass.
+                "<a href=\"#methodInheritedFromParent-int-\">");
+
+        checkOutput("pkg/PublicChild.html", false,
+                // Should not document comments from private inherited interfaces
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface-int-\">"
+                + "methodInterface</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>",
+                // and similarly one more
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface2-int-\">"
+                + "methodInterface2</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>"
+        );
+
+        checkOutput("pkg/PublicInterface.html", true,
+                // Method inheritance from non-public superinterface.
+                "<a href=\"#methodInterface-int-\">"
+                + "methodInterface</a>");
+
+        checkOutput("pkg2/C.html", false,
+                //Do not inherit private interface method with generic parameters.
+                //This method has been implemented.
+                "<span class=\"memberNameLink\"><a href=\"I.html#hello-T-\">hello</a></span>");
+    }
+
+    @Test
     void testPrivate() {
         javadoc("-d", "out-private",
                 "-sourcepath", testSrc,
@@ -158,17 +193,17 @@
                 "Methods inherited from class&nbsp;pkg."
                 + "<a href=\"PrivateParent.html\" title=\"class in pkg\">"
                 + "PrivateParent</a>",
-                "<a href=\"PrivateParent.html#methodInheritedFromParent-int-\">"
+                "<a href=\"PrivateParent.html#methodInheritedFromParent(int)\">"
                 + "methodInheritedFromParent</a>",
                 // Should document that a method overrides method from private class.
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
-                + "<dd><code><a href=\"PrivateParent.html#methodOverridenFromParent-char:A-int-T-V-java.util.List-\">"
+                + "<dd><code><a href=\"PrivateParent.html#methodOverridenFromParent(char%5B%5D,int,T,V,java.util.List)\">"
                 + "methodOverridenFromParent</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"PrivateParent.html\" title=\"class in pkg\">"
                 + "PrivateParent</a></code></dd>",
                 // Should document that a method is specified by private interface.
                 "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
-                + "<dd><code><a href=\"PrivateInterface.html#methodInterface-int-\">"
+                + "<dd><code><a href=\"PrivateInterface.html#methodInterface(int)\">"
                 + "methodInterface</a></code>&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"PrivateInterface.html\" title=\"interface in pkg\">"
                 + "PrivateInterface</a></code></dd>",
@@ -209,6 +244,56 @@
                 + "</dl>");
 
         checkOutput("pkg/PrivateInterface.html", true,
+                "<a href=\"#methodInterface(int)\">"
+                + "methodInterface</a>"
+        );
+
+        checkOutput("pkg2/C.html", true,
+                //Since private flag is used, we can document that private interface method
+                //with generic parameters has been implemented.
+                "<span class=\"descfrmTypeLabel\">Description copied from interface:&nbsp;<code>"
+                + "<a href=\"I.html#hello(T)\">I</a></code></span>",
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"I.html#hello(T)\">hello</a></code>"
+                + "&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"I.html\" title=\"interface in pkg2\">I</a>"
+                + "&lt;java.lang.String&gt;</code></dd>");
+
+        checkOutput("pkg/PrivateParent.html", true,
+                //Make sure when no modifier appear in the class signature, the
+                //signature is displayed correctly without extra space at the beginning.
+                "<pre>class <span class=\"typeNameLabel\">PrivateParent</span>");
+
+        checkOutput("pkg/PrivateParent.html", false,
+                "<pre> class <span class=\"typeNameLabel\">PrivateParent</span>");
+    }
+
+    @Test
+    void testPrivate_html4() {
+        javadoc("-d", "out-private-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-private",
+                "pkg", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/PublicChild.html", true,
+                "<a href=\"PrivateParent.html#methodInheritedFromParent-int-\">"
+                + "methodInheritedFromParent</a>",
+                // Should document that a method overrides method from private class.
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"PrivateParent.html#methodOverridenFromParent-char:A-int-T-V-java.util.List-\">"
+                + "methodOverridenFromParent</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"PrivateParent.html\" title=\"class in pkg\">"
+                + "PrivateParent</a></code></dd>",
+                // Should document that a method is specified by private interface.
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"PrivateInterface.html#methodInterface-int-\">"
+                + "methodInterface</a></code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"PrivateInterface.html\" title=\"interface in pkg\">"
+                + "PrivateInterface</a></code></dd>");
+
+        checkOutput("pkg/PrivateInterface.html", true,
                 "<a href=\"#methodInterface-int-\">"
                 + "methodInterface</a>"
         );
@@ -223,13 +308,5 @@
                 + "&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"I.html\" title=\"interface in pkg2\">I</a>"
                 + "&lt;java.lang.String&gt;</code></dd>");
-
-        checkOutput("pkg/PrivateParent.html", true,
-                //Make sure when no modifier appear in the class signature, the
-                //signature is displayed correctly without extra space at the beginning.
-                "<pre>class <span class=\"typeNameLabel\">PrivateParent</span>");
-
-        checkOutput("pkg/PrivateParent.html", false,
-                "<pre> class <span class=\"typeNameLabel\">PrivateParent</span>");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8176231 8189843
+ * @bug      8176231 8189843 8182765
  * @summary  Test JavaFX property.
  * @library  ../lib/
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -55,6 +55,77 @@
                 + "Object is a single Object.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getGood()\"><code>getGood()</code></a>, \n"
+                + "<a href=\"#setGood(pkg.MyObj)\">"
+                + "<code>setGood(MyObj)</code></a></dd>\n"
+                + "</dl>",
+
+                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>"
+                + "&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>[]&gt; badProperty</pre>\n"
+                + "<div class=\"block\">This is an Object property where the "
+                + "Object is an array.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getBad()\"><code>getBad()</code></a>, \n"
+                + "<a href=\"#setBad(pkg.MyObj%5B%5D)\">"
+                + "<code>setBad(MyObj[])</code></a></dd>\n"
+                + "</dl>",
+
+                // id should not be used in the property table
+                "<tr class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>[]&gt;</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#badProperty\">bad</a></span></code></th>",
+
+                // id should be used in the method table
+                "<tr id=\"i0\" class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>[]&gt;</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#badProperty()\">badProperty</a></span>()</code></th>"
+        );
+
+        checkOutput("pkg/MyClassT.html", true,
+                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>"
+                + "&lt;java.util.List&lt;<a href=\"MyClassT.html\" "
+                + "title=\"type parameter in MyClassT\">T</a>&gt;&gt; "
+                + "listProperty</pre>\n"
+                + "<div class=\"block\">This is an Object property where the "
+                + "Object is a single <code>List&lt;T&gt;</code>.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getList()\">"
+                + "<code>getList()</code></a>, \n"
+                + "<a href=\"#setList(java.util.List)\">"
+                + "<code>setList(List)</code></a></dd>\n"
+                + "</dl>"
+        );
+    }
+
+    @Test
+    void testArrays_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-javafx",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/MyClass.html", true,
+                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>"
+                + "&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>&gt; goodProperty</pre>\n"
+                + "<div class=\"block\">This is an Object property where the "
+                + "Object is a single Object.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"#getGood--\"><code>getGood()</code></a>, \n"
                 + "<a href=\"#setGood-pkg.MyObj-\">"
                 + "<code>setGood(MyObj)</code></a></dd>\n"
@@ -73,14 +144,6 @@
                 + "<code>setBad(MyObj[])</code></a></dd>\n"
                 + "</dl>",
 
-                // id should not be used in the property table
-                "<tr class=\"altColor\">\n"
-                + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
-                + "title=\"class in pkg\">ObjectProperty</a>&lt;<a href=\"MyObj.html\" "
-                + "title=\"class in pkg\">MyObj</a>[]&gt;</code></td>\n"
-                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#badProperty\">bad</a></span></code></th>",
-
                 // id should be used in the method table
                 "<tr id=\"i0\" class=\"altColor\">\n"
                 + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
--- a/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4460354 8014636 8043186 8195805
+ * @bug      4460354 8014636 8043186 8195805 8182765
  * @summary  Test to make sure that relative paths are redirected in the
  *           output so that they are not broken.
  * @author   jamieh
@@ -46,7 +46,10 @@
                 "-use",
                 "-sourcepath", testSrc,
                 "pkg", "pkg2");
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: name");
 
         // These relative paths should stay relative because they appear
         // in the right places.
@@ -91,4 +94,14 @@
         checkOutput("overview-summary.html", true,
             "<a href=\"./pkg/relative-package-link.html\">relative package link</a>");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc,
+                "pkg", "pkg2");
+        checkExit(Exit.OK);
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testRepeatedAnnotations/TestRepeatedAnnotations.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testRepeatedAnnotations/TestRepeatedAnnotations.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8005092 6469562
+ * @bug      8005092 6469562 8182765
  * @summary  Test repeated annotations output.
  * @author   bpatel
  * @library  ../lib
@@ -65,6 +65,86 @@
 
         checkOutput("pkg/D.html", true,
                 "<a href=\"RegDoc.html\" title=\"annotation in pkg\">@RegDoc</a>"
+                + "(<a href=\"RegDoc.html#x()\">x</a>=1)",
+                "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
+                + "(<a href=\"RegArryDoc.html#y()\">y</a>=1)",
+                "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
+                + "(<a href=\"RegArryDoc.html#y()\">y</a>={1,2})",
+                "<a href=\"NonSynthDocContainer.html\" "
+                + "title=\"annotation in pkg\">@NonSynthDocContainer</a>"
+                + "("
+                + "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
+                + "(<a href=\"RegArryDoc.html#y()\">y</a>=1))");
+
+        checkOutput("pkg1/C.html", true,
+                "<a href=\"RegContainerValDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContainerValDoc</a>"
+                + "(<a href=\"RegContainerValDoc.html#value()\">value</a>={"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>,"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>},"
+                + "<a href=\"RegContainerValDoc.html#y()\">y</a>=3)",
+                "<a href=\"ContainerValDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContainerValDoc</a>"
+                + "(<a href=\"ContainerValDoc.html#value()\">value</a>={"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>,"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>},"
+                + "<a href=\"ContainerValDoc.html#x()\">x</a>=1)");
+
+        checkOutput("pkg/C.html", false,
+                "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeDoc</a> "
+                + "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeDoc</a>",
+                "<a href=\"RegContainerNotDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContainerNotDoc</a>"
+                + "(<a href=\"RegContainerNotDoc.html#value()\">value</a>={"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>,"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})");
+
+        checkOutput("pkg1/C.html", false,
+                "<a href=\"ContaineeSynthDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a> "
+                + "<a href=\"ContaineeSynthDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>",
+                "<a href=\"RegContainerValNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContainerValNotDoc</a>"
+                + "(<a href=\"RegContainerValNotDoc.html#value()\">value</a>={"
+                + "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeDoc</a>,"
+                + "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeDoc</a>},"
+                + "<a href=\"RegContainerValNotDoc.html#y()\">y</a>=4)",
+                "<a href=\"ContainerValNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContainerValNotDoc</a>"
+                + "(<a href=\"ContainerValNotDoc.html#value()\">value</a>={"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>,"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>},"
+                + "<a href=\"ContainerValNotDoc.html#x()\">x</a>=2)",
+                "<a href=\"ContainerSynthNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContainerSynthNotDoc</a>("
+                + "<a href=\"ContainerSynthNotDoc.html#value()\">value</a>="
+                + "<a href=\"ContaineeSynthDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>)");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/D.html", true,
+                "<a href=\"RegDoc.html\" title=\"annotation in pkg\">@RegDoc</a>"
                 + "(<a href=\"RegDoc.html#x--\">x</a>=1)",
                 "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
                 + "(<a href=\"RegArryDoc.html#y--\">y</a>=1)",
@@ -95,10 +175,6 @@
                 + "<a href=\"ContainerValDoc.html#x--\">x</a>=1)");
 
         checkOutput("pkg/C.html", false,
-                "<a href=\"RegContaineeDoc.html\" "
-                + "title=\"annotation in pkg\">@RegContaineeDoc</a> "
-                + "<a href=\"RegContaineeDoc.html\" "
-                + "title=\"annotation in pkg\">@RegContaineeDoc</a>",
                 "<a href=\"RegContainerNotDoc.html\" "
                 + "title=\"annotation in pkg\">@RegContainerNotDoc</a>"
                 + "(<a href=\"RegContainerNotDoc.html#value--\">value</a>={"
@@ -108,10 +184,6 @@
                 + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})");
 
         checkOutput("pkg1/C.html", false,
-                "<a href=\"ContaineeSynthDoc.html\" "
-                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a> "
-                + "<a href=\"ContaineeSynthDoc.html\" "
-                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>",
                 "<a href=\"RegContainerValNotDoc.html\" "
                 + "title=\"annotation in pkg1\">@RegContainerValNotDoc</a>"
                 + "(<a href=\"RegContainerValNotDoc.html#value--\">value</a>={"
--- a/test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 8141492 8071982 8141636 8147890 8166175 8168965 8176794 8175218 8147881
- *      8181622 8182263 8074407 8187521 8198522
+ *      8181622 8182263 8074407 8187521 8198522 8182765
  * @summary Test the search feature of javadoc.
  * @author bpatel
  * @library ../lib
@@ -41,7 +41,10 @@
 
     @Test
     void test1() {
-        javadoc("-d", "out-1", "-sourcepath", "-use", testSrc("UnnamedPkgClass.java"));
+        javadoc("-d", "out-1",
+                "-sourcepath",
+                "-use",
+                testSrc("UnnamedPkgClass.java"));
         checkExit(Exit.OK);
         checkSearchOutput("UnnamedPkgClass.html", true, true);
         checkJqueryAndImageFiles(true);
@@ -60,12 +63,15 @@
 
     @Test
     void test2() {
-        javadoc("-d", "out-2", "-Xdoclint:none", "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+        javadoc("-d", "out-2",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkInvalidUsageIndexTag();
         checkSearchOutput(true);
-        checkSingleIndex(true, false);
+        checkSingleIndex(true, true);
         checkSingleIndexSearchTagDuplication();
         checkJqueryAndImageFiles(true);
         checkSearchJS();
@@ -81,13 +87,28 @@
     }
 
     @Test
+    void test2_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkExit(Exit.OK);
+        checkSingleIndex(true, false);
+    }
+
+    @Test
     void test2a() {
-        javadoc("-d", "out-2a", "-Xdoclint:all", "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+        javadoc("-d", "out-2a",
+                "-Xdoclint:all",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.ERROR);
         checkDocLintErrors();
         checkSearchOutput(true);
-        checkSingleIndex(true, false);
+        checkSingleIndex(true, true);
         checkSingleIndexSearchTagDuplication();
         checkJqueryAndImageFiles(true);
         checkSearchJS();
@@ -103,10 +124,24 @@
     }
 
     @Test
+    void test2a_html4() {
+        javadoc("-d", "out-2a-html4",
+                "-html4",
+                "-Xdoclint:all",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkSingleIndex(true, false);
+    }
+
+    @Test
     void test3() {
-        javadoc("-d", "out-3", "-noindex", "-Xdoclint:none",
+        javadoc("-d", "out-3",
+                "-noindex",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(false);
         checkJqueryAndImageFiles(false);
@@ -124,9 +159,12 @@
 
     @Test
     void test4() {
-        javadoc("-d", "out-4", "-html5", "-Xdoclint:none",
+        javadoc("-d", "out-4",
+                "-html5",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkSingleIndex(true, true);
@@ -146,9 +184,13 @@
 
     @Test
     void test5() {
-        javadoc("-d", "out-5", "-noindex", "-html5", "-Xdoclint:none",
+        javadoc("-d", "out-5",
+                "-html5",
+                "-noindex",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(false);
         checkJqueryAndImageFiles(false);
@@ -166,9 +208,12 @@
 
     @Test
     void test6() {
-        javadoc("-d", "out-6", "-nocomment", "-Xdoclint:none",
+        javadoc("-d", "out-6",
+                "-nocomment",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkIndexNoComment();
@@ -187,9 +232,12 @@
 
     @Test
     void test7() {
-        javadoc("-d", "out-7", "-nodeprecated", "-Xdoclint:none",
+        javadoc("-d", "out-7",
+                "-nodeprecated",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkIndexNoDeprecated();
@@ -208,8 +256,12 @@
 
     @Test
     void test8() {
-        javadoc("-d", "out-8", "-splitindex", "-Xdoclint:none", "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+        javadoc("-d", "out-8",
+                "-splitindex",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkInvalidUsageIndexTag();
         checkSearchOutput(true);
@@ -230,8 +282,12 @@
 
     @Test
     void test9() {
-        javadoc("-d", "out-9", "-sourcepath", testSrc, "-javafx", "-package",
-                "-use", "pkgfx", "pkg3");
+        javadoc("-d", "out-9",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "-package",
+                "-use",
+                "pkgfx", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkJavaFXOutput();
@@ -386,7 +442,7 @@
                 + "Search tag in pkg.AnotherClass.ModalExclusionType.NO_EXCLUDE</dt>");
         checkOutput("index-files/index-5.html", true,
                 "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.ModalExclusionType.html"
-                + "#html-span-see-/span-\">html &lt;span&gt; see &lt;/span&gt;</a></span> - Search "
+                + "#html%3Cspan%3Esee%3C/span%3E\">html &lt;span&gt; see &lt;/span&gt;</a></span> - Search "
                 + "tag in pkg.AnotherClass.ModalExclusionType.APPLICATION_EXCLUDE</dt>");
         checkOutput("index-files/index-11.html", true,
                 "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.html#quoted\">quoted</a>"
--- a/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8017191
+ * @bug      8017191 8182765
  * @summary  Javadoc is confused by at-link to imported classes outside of the set of generated packages
  * @author   jjg
  * @library  ../lib
@@ -50,10 +50,10 @@
             "<code>List</code>",
             "<dl>\n"
             + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
-            + "<dd><a href=\"Test.InnerOne.html#foo--\"><code>Test.InnerOne.foo()</code></a>, \n"
-            + "<a href=\"Test.InnerOne.html#bar-java.lang.Object-\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
+            + "<dd><a href=\"Test.InnerOne.html#foo()\"><code>Test.InnerOne.foo()</code></a>, \n"
+            + "<a href=\"Test.InnerOne.html#bar(java.lang.Object)\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
             + "<a href=\"http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see\">Javadoc</a>, \n"
-            + "<a href=\"Test.InnerOne.html#baz-float-\"><code>something</code></a></dd>\n"
+            + "<a href=\"Test.InnerOne.html#baz(float)\"><code>something</code></a></dd>\n"
             + "</dl>");
 
         checkOutput("pkg/Test.html", false,
@@ -65,4 +65,23 @@
         checkOutput("pkg/Test2.html", false,
            ">Serialized Form<");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/Test.html", true,
+            "<code>List</code>",
+            "<dl>\n"
+            + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+            + "<dd><a href=\"Test.InnerOne.html#foo--\"><code>Test.InnerOne.foo()</code></a>, \n"
+            + "<a href=\"Test.InnerOne.html#bar-java.lang.Object-\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
+            + "<a href=\"http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see\">Javadoc</a>, \n"
+            + "<a href=\"Test.InnerOne.html#baz-float-\"><code>something</code></a></dd>\n"
+            + "</dl>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +23,7 @@
 
 /*
  * @test
- * @bug 6802694 8025633 8026567 8183511 8074407
+ * @bug 6802694 8025633 8026567 8183511 8074407 8182765
  * @summary This test verifies deprecation info in serialized-form.html.
  * @author Bhavesh Patel
  * @library ../lib
@@ -96,12 +96,12 @@
                 + "java.io.IOException</code> - on error</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span>"
                 + "</dt>\n"
-                + "<dd><a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
                 "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "<div class=\"block\">This field indicates whether the C1 "
@@ -112,12 +112,12 @@
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span>"
                 + "</dt>\n"
-                + "<dd><a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
                 "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "<div class=\"block\">Reads the object stream.</div>\n"
@@ -140,7 +140,7 @@
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">"
                 + "As of JDK version 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\"><code>"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\"><code>"
                 + "setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "</li>",
@@ -148,7 +148,7 @@
                 + "Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version"
                 + " 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "</li>");
--- a/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461 8154261 8162363 8160196 8151743 8177417
- *           8175218 8176452 8181215 8182263 8183511 8169819 8183037 8185369
+ *           8175218 8176452 8181215 8182263 8183511 8169819 8183037 8185369 8182765
  * @summary  Run tests on doclet stylesheet.
  * @author   jamieh
  * @library  ../lib
@@ -45,7 +45,10 @@
         javadoc("-d", "out",
                 "-sourcepath", testSrc,
                 "pkg");
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: name");
 
         // TODO: most of this test seems a bit silly, since javadoc is simply
         // copying in the stylesheet from the source directory
@@ -251,4 +254,13 @@
                 + "    font-weight:bold;\n"
                 + "}");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * 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,7 @@
 
 /*
  * @test
- * @bug      8173425 8186332
+ * @bug      8173425 8186332 8182765
  * @summary  tests for the summary tag behavior
  * @library  ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -49,6 +49,63 @@
 
         checkOutput("index-all.html", true,
             "<dl>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m()\">m()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence</div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/B.html#m()\">m()"
+            + "</a></span> - Method in class p1.<a href=\"p1/B.html\" title=\"class in p1\">B</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence</div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m1()\">m1()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\"> First sentence </div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m2()\">m2()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">Some html &lt;foo&gt; &nbsp; codes</div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m3()\">m3()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence </div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m4()\">m4()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence i.e. the first sentence</div>\n"
+            + "</dd>\n"
+            + "</dl>\n",
+            "<div class=\"block\">The first... line</div>\n"
+        );
+
+        // make sure the second @summary's content is displayed correctly
+        checkOutput("p1/A.html", true,
+             "<li class=\"blockList\">\n"
+             + "<h4>m3</h4>\n"
+             + "<pre>public&nbsp;void&nbsp;m3()</pre>\n"
+             + "<div class=\"block\">First sentence  some text maybe second sentence.</div>\n"
+             + "</li>\n"
+        );
+
+        checkOutput("p1/package-summary.html", true,
+                "<div class=\"block\">The first... line second from ...</div>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "p1");
+        checkExit(Exit.OK);
+
+        checkOutput("index-all.html", true,
+            "<dl>\n"
             + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m--\">m()"
             + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
             + "<dd>\n"
@@ -79,22 +136,10 @@
             + "<dd>\n"
             + "<div class=\"block\">First sentence i.e. the first sentence</div>\n"
             + "</dd>\n"
-            + "</dl>\n",
-            "<div class=\"block\">The first... line</div>\n"
+            + "</dl>\n"
         );
+    }
 
-        // make sure the second @summary's content is displayed correctly
-        checkOutput("p1/A.html", true,
-             "<li class=\"blockList\">\n"
-             + "<h4>m3</h4>\n"
-             + "<pre>public&nbsp;void&nbsp;m3()</pre>\n"
-             + "<div class=\"block\">First sentence  some text maybe second sentence.</div>\n"
-             + "</li>\n"
-        );
-
-        checkOutput("p1/package-summary.html", true,
-                "<div class=\"block\">The first... line second from ...</div>");
-    }
     @Test
     void test2() {
         javadoc("-d", "out2",
--- a/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8005091 8009686 8025633 8026567 6469562 8071982 8071984 8162363 8175200 8186332
+ * @bug      8005091 8009686 8025633 8026567 6469562 8071982 8071984 8162363 8175200 8186332 8182765
  * @summary  Make sure that type annotations are displayed correctly
  * @author   Bhavesh Patel
  * @library  ../lib
@@ -438,16 +438,13 @@
         );
 
         checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true,
-                "<code><span class=\"memberNameLink\"><a href=\""
-                + "#Inner-java.lang.String-java.lang.String...-\">Inner</a></span>"
-                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
-                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
-                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
-                + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
-                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
-                + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E(java.lang.String,"
+                + "java.lang.String...)\">Inner</a></span>&#8203;(java.lang.String&nbsp;parameter,\n"
+                + "     java.lang.String <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseB</a> ...&nbsp;vararg)</code>",
-
                 "Inner&#8203;(<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
                 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
@@ -574,7 +571,7 @@
         checkOutput("typeannos/RepeatingOnMethod.html", true,
                 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
                 + "<code><span class=\"memberNameLink\"><a href="
-                + "\"#test1--\">test1</a></span>()</code>",
+                + "\"#test1()\">test1</a></span>()</code>",
 
                 "<code>(package private) <a href=\"RepTypeUseA.html\" "
                 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
@@ -583,7 +580,7 @@
                 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
                 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#test2--\">test2</a>"
+                + "<a href=\"#test2()\">test2</a>"
                 + "</span>()</code>",
 
                 "<code>(package private) <a href=\"RepTypeUseA.html\" "
@@ -593,7 +590,7 @@
                 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
                 + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
                 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#test3--\">test3</a>"
+                + "<a href=\"#test3()\">test3</a>"
                 + "</span>()</code>",
 
                 "<code>(package private) <a href=\"RepAllContextsA.html\" "
@@ -604,10 +601,10 @@
                 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
                 + "@RepAllContextsB</a> java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
                 + "<code><span class=\"memberNameLink\"><a href=\""
-                + "#test4--\">test4</a></span>()</code>",
+                + "#test4()\">test4</a></span>()</code>",
 
                 "<code><span class=\"memberNameLink\"><a href=\""
-                + "#test5-java.lang.String-java.lang.String...-\">test5</a></span>"
+                + "#test5(java.lang.String,java.lang.String...)\">test5</a></span>"
                 + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
                 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
@@ -684,12 +681,12 @@
                 "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
                 + "\"#"
-                + "genericMethod-T-\">genericMethod</a></span>&#8203;(T&nbsp;t)</code>",
+                + "genericMethod(T)\">genericMethod</a></span>&#8203;(T&nbsp;t)</code>",
 
                 "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
                 + "\"#"
-                + "genericMethod2-T-\">genericMethod2</a></span>&#8203;(<a href=\"RepTypeUseA.html"
+                + "genericMethod2(T)\">genericMethod2</a></span>&#8203;(<a href=\"RepTypeUseA.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
@@ -697,7 +694,7 @@
 
                 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\"><code>"
                 + "<span class=\"memberNameLink\"><a href=\"#"
-                + "test--\">test</a></span>()</code>",
+                + "test()\">test</a></span>()</code>",
 
                 "java.lang.String&nbsp;test&#8203;(<a href=\"RepTypeUseA.html\" "
                 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
@@ -720,4 +717,89 @@
                 + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
                 + "@RepMethodB</a>\nvoid&nbsp;test()");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-private",
+                "typeannos");
+        checkExit(Exit.OK);
+
+        checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\""
+                + "#Inner-java.lang.String-java.lang.String...-\">Inner</a></span>"
+                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
+                + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)</code>");
+
+        checkOutput("typeannos/RepeatingOnMethod.html", true,
+                "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
+                + "<code><span class=\"memberNameLink\"><a href="
+                + "\"#test1--\">test1</a></span>()</code>",
+
+                "<code>(package private) <a href=\"RepTypeUseA.html\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
+                + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#test2--\">test2</a>"
+                + "</span>()</code>",
+
+                "<code>(package private) <a href=\"RepTypeUseA.html\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
+                + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#test3--\">test3</a>"
+                + "</span>()</code>",
+
+                "<code>(package private) <a href=\"RepAllContextsA.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
+                + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
+                + "@RepAllContextsA</a> <a href=\"RepAllContextsB.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsB</a> <a href="
+                + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
+                + "@RepAllContextsB</a> java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
+                + "<code><span class=\"memberNameLink\"><a href=\""
+                + "#test4--\">test4</a></span>()</code>",
+
+                "<code><span class=\"memberNameLink\"><a href=\""
+                + "#test5-java.lang.String-java.lang.String...-\">test5</a></span>"
+                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
+                + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)</code>");
+
+        checkOutput("typeannos/RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod.html", true,
+                "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
+                + "\"#"
+                + "genericMethod-T-\">genericMethod</a></span>&#8203;(T&nbsp;t)</code>",
+
+                "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
+                + "\"#"
+                + "genericMethod2-T-\">genericMethod2</a></span>&#8203;(<a href=\"RepTypeUseA.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> T&nbsp;t)</code>",
+
+                "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\"><code>"
+                + "<span class=\"memberNameLink\"><a href=\"#"
+                + "test--\">test</a></span>()</code>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4927167 4974929 7010344 8025633 8081854
+ * @bug      4927167 4974929 7010344 8025633 8081854 8182765
  * @summary  When the type parameters are more than 10 characters in length,
  *           make sure there is a line break between type params and return type
  *           in member summary. Also, test for type parameter links in package-summary and
@@ -68,12 +68,27 @@
 
         // Nested type parameters
         checkOutput("pkg/C.html", true,
+                "<a id=\"formatDetails(java.util.Collection,java.util.Collection)\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        // Nested type parameters
+        checkOutput("pkg/C.html", true,
                 "<a name=\"formatDetails-java.util.Collection-java.util.Collection-\">\n"
                 + "<!--   -->\n"
                 + "</a>");
     }
 
-
     @Test
     void test2() {
         javadoc("-d", "out-2",
--- a/test/langtools/jdk/javadoc/doclet/testTypeVariableLinks/TestTypeVariableLinks.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testTypeVariableLinks/TestTypeVariableLinks.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8174805
+ * @bug 8174805 8182765
  * @summary JavacTrees should use Types.skipTypeVars() to get the upper bound of type variables
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -40,7 +40,10 @@
 
     @Test
     void test1() {
-        javadoc("-d", "out", "-sourcepath", testSrc, "-package", "pkg1");
+        javadoc("-d", "out",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1");
         checkExit(Exit.OK);
 
         checkOutput("pkg1/C.html", true,
@@ -48,6 +51,21 @@
         checkOutput("pkg1/C.html", true,
                 "<div class=\"block\">Linking to List.clear() <code>List.clear()</code></div>");
         checkOutput("pkg1/C.html", true,
+                "<div class=\"block\">Linking to Additional.doAction() <a href=\"Additional.html#doAction()\"><code>Additional.doAction()</code></a></div>");
+        checkOutput("pkg1/C.html", true,
+                "<div class=\"block\">Linking to I.abstractAction() <a href=\"I.html#abstractAction()\"><code>I.abstractAction()</code></a></div>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/C.html", true,
                 "<div class=\"block\">Linking to Additional.doAction() <a href=\"Additional.html#doAction--\"><code>Additional.doAction()</code></a></div>");
         checkOutput("pkg1/C.html", true,
                 "<div class=\"block\">Linking to I.abstractAction() <a href=\"I.html#abstractAction--\"><code>I.abstractAction()</code></a></div>");
--- a/test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java	Thu Mar 08 10:18:28 2018 -0800
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4496290 4985072 7006178 7068595 8016328 8050031 8048351 8081854 8071982 8162363 8175200 8186332
+ *      8182765
  * @summary A simple test to ensure class-use files are correct.
  * @author jamieh
  * @library ../lib
@@ -84,7 +85,7 @@
           "that return types with arguments of type"
         );
         checkOutput("pkg1/class-use/UsedClass.html", true,
-          "<a href=\"../C1.html#methodInC1ReturningType--\">methodInC1ReturningType</a>"
+          "<a href=\"../C1.html#methodInC1ReturningType()\">methodInC1ReturningType</a>"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
           "Classes in <a href=\"../package-summary.html\">pkg1</a> that implement " +
@@ -101,16 +102,62 @@
            "<a href=\"../AnAbstract.html\" title=\"class in pkg1\">AnAbstract</a>"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "../C10.html#withReturningTypeParameters()"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "../C10.html#withTypeParametersOfType(java.lang.Class)"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "\"../package-summary.html\">pkg1</a> that return " +
+            "<a href=\"../UsedInterface.html\" title=\"interface in pkg1\""
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "<a href=\"../C10.html#addAll(pkg1.UsedInterface...)\">addAll</a>"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "<a href=\"../C10.html#create(pkg1.UsedInterfaceA,pkg1." +
+            "UsedInterface,java.lang.String)\">"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "<a href=\"../C10.html#withTypeParametersOfType(java.lang.Class)\">" +
+            "withTypeParametersOfType</a>"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "Subinterfaces of <a href=\"../UsedInterface.html\" title=\"interface in pkg1\">"
+            + "UsedInterface</a> in <a href=\"../package-summary.html\">pkg1",
+            "<td class=\"colFirst\"><code>interface&nbsp;</code></td>\n<th class=\"colSecond\" scope=\"row\">"
+            + "<code><span class=\"memberNameLink\"><a href=\"../SubInterface.html\" "
+            + "title=\"interface in pkg1\">SubInterface</a>&lt;T&gt;</span></code></th>"
+        );
+        checkOutput("pkg1/class-use/UsedThrowable.html", true,
+            "Methods in <a href=\"../package-summary.html\">pkg1</a> that throw "
+            + "<a href=\"../UsedThrowable.html\" title=\"class in pkg1\">UsedThrowable</a>",
+            "<td class=\"colFirst\"><code>void</code></td>\n<th class=\"colSecond\" scope=\"row\"><span class="
+            + "\"typeNameLabel\">C1.</span><code><span class=\"memberNameLink\">"
+            + "<a href=\"../C1.html#methodInC1ThrowsThrowable()\">methodInC1ThrowsThrowable"
+            + "</a></span>()</code></th>"
+        );
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/class-use/UsedClass.html", true,
+          "<a href=\"../C1.html#methodInC1ReturningType--\">methodInC1ReturningType</a>"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
             "../C10.html#withReturningTypeParameters--"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
             "../C10.html#withTypeParametersOfType-java.lang.Class-"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
-            "\"../package-summary.html\">pkg1</a> that return " +
-            "<a href=\"../UsedInterface.html\" title=\"interface in pkg1\""
-        );
-        checkOutput("pkg1/class-use/UsedInterface.html", true,
             "<a href=\"../C10.html#addAll-pkg1.UsedInterface...-\">addAll</a>"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
@@ -121,13 +168,6 @@
             "<a href=\"../C10.html#withTypeParametersOfType-java.lang.Class-\">" +
             "withTypeParametersOfType</a>"
         );
-        checkOutput("pkg1/class-use/UsedInterface.html", true,
-            "Subinterfaces of <a href=\"../UsedInterface.html\" title=\"interface in pkg1\">"
-            + "UsedInterface</a> in <a href=\"../package-summary.html\">pkg1",
-            "<td class=\"colFirst\"><code>interface&nbsp;</code></td>\n<th class=\"colSecond\" scope=\"row\">"
-            + "<code><span class=\"memberNameLink\"><a href=\"../SubInterface.html\" "
-            + "title=\"interface in pkg1\">SubInterface</a>&lt;T&gt;</span></code></th>"
-        );
         checkOutput("pkg1/class-use/UsedThrowable.html", true,
             "Methods in <a href=\"../package-summary.html\">pkg1</a> that throw "
             + "<a href=\"../UsedThrowable.html\" title=\"class in pkg1\">UsedThrowable</a>",
@@ -151,11 +191,30 @@
                 + "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\">\n"
+                + "<section role=\"region\"><a id=\"unnamed.package\">"
         );
         checkOutput("package-use.html", true,
                 "<th class=\"colFirst\" scope=\"row\">"
                 + "<a href=\"class-use/UsedInC.html#unnamed.package\">UsedInC</a></th>",
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"#%3CUnnamed%3E\">&lt;Unnamed&gt;</a></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>"
+        );
+    }
+
+    @Test
+    void test2_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                testSrc("C.java"), testSrc("UsedInC.java"), "pkg3");
+        checkExit(Exit.OK);
+
+        checkOutput("class-use/UsedInC.html", true,
+                "<li class=\"blockList\"><a name=\"unnamed.package\">"
+        );
+        checkOutput("package-use.html", true,
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"#-Unnamed-\">&lt;Unnamed&gt;</a></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>"
         );
@@ -169,6 +228,21 @@
                 "-package", "unique");
         checkExit(Exit.OK);
         checkUnique("unique/class-use/UseMe.html",
+                "<a href=\"../C1.html#umethod1(unique.UseMe,unique.UseMe%5B%5D)\">",
+                "<a href=\"../C1.html#umethod2(unique.UseMe,unique.UseMe)\">",
+                "<a href=\"../C1.html#umethod3(unique.UseMe,unique.UseMe)\">",
+                "<a href=\"../C1.html#%3Cinit%3E(unique.UseMe,unique.UseMe)\">");
+    }
+
+    @Test
+    void test3_html4() {
+        javadoc("-d", "out-3-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "-package", "unique");
+        checkExit(Exit.OK);
+        checkUnique("unique/class-use/UseMe.html",
                 "<a href=\"../C1.html#umethod1-unique.UseMe-unique.UseMe:A-\">",
                 "<a href=\"../C1.html#umethod2-unique.UseMe-unique.UseMe-\">",
                 "<a href=\"../C1.html#umethod3-unique.UseMe-unique.UseMe-\">",
--- a/test/langtools/jdk/javadoc/doclet/testWarnings/TestWarnings.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testWarnings/TestWarnings.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4515705 4804296 4702454 4697036 8025633
+ * @bug      4515705 4804296 4702454 4697036 8025633 8182765
  * @summary  Make sure that first sentence warning only appears once.
  *           Make sure that only warnings/errors are printed when quiet is used.
  *           Make sure that links to private/unincluded methods do not cause
@@ -78,8 +78,22 @@
         checkExit(Exit.ERROR);
 
         checkOutput("pkg/X.html", true,
-            "<a href=\"#m--\"><code>m()</code></a><br/>",
-            "<a href=\"#X--\"><code>X()</code></a><br/>",
+            "<a href=\"#m()\"><code>m()</code></a><br/>",
+            "<a href=\"#%3Cinit%3E()\"><code>X()</code></a><br/>",
             "<a href=\"#f\"><code>f</code></a><br/>");
     }
+
+    @Test
+    void testPrivate_html4() {
+        javadoc("-d", "out-private-html4",
+                "-html4",
+                "-private",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.ERROR);
+
+        checkOutput("pkg/X.html", true,
+            "<a href=\"#m--\"><code>m()</code></a><br/>",
+            "<a href=\"#X--\"><code>X()</code></a><br/>");
 }
+}
--- a/test/langtools/jdk/javadoc/tool/6958836/Test.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/tool/6958836/Test.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6958836 8002168
+ * @bug 6958836 8002168 8182765
  * @summary javadoc should support -Xmaxerrs and -Xmaxwarns
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
  */
@@ -63,7 +63,6 @@
         // For some reason, this must be the first option when used.
         opts.addAll(list("-locale", "en_US"));
         opts.add("-Xdoclint:none");
-        opts.add("-html4");
         opts.addAll(list("-classpath", System.getProperty("test.src")));
         opts.addAll(list("-d", testOutDir.getPath()));
         opts.addAll(testOpts);
--- a/test/langtools/jdk/javadoc/tool/6964914/Test.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/tool/6964914/Test.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6964914
+ * @bug 6964914 8182765
  * @summary javadoc does not output number of warnings using user written doclet
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
  */
@@ -47,7 +47,6 @@
         File testSrc = new File(System.getProperty("test.src"));
         String[] args = {
             "-Xdoclint:none",
-            "-html4",
             "-source", "8",
             "-classpath", ".",
             "-package",
--- a/test/langtools/jdk/javadoc/tool/6964914/TestStdDoclet.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/tool/6964914/TestStdDoclet.java	Thu Mar 08 10:18:28 2018 -0800
@@ -58,7 +58,6 @@
         cmdArgs.addAll(Arrays.asList(
                 "-classpath", ".", // insulates us from ambient classpath
                 "-Xdoclint:none",
-                "-html4",
                 "-package",
                 new File(testSrc, thisClassName + ".java").getPath()
         ));
--- a/test/langtools/jdk/javadoc/tool/MaxWarns.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/tool/MaxWarns.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8005644
+ * @bug 8005644 8182765
  * @summary set default max errs and max warns
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
  */
@@ -75,7 +75,7 @@
     String javadoc(File f) {
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
-        String[] args = { "-Xdoclint:none", "-html4", "-d", "api", f.getPath() };
+        String[] args = { "-Xdoclint:none", "-d", "api", f.getPath() };
         int rc = jdk.javadoc.internal.tool.Main.execute(args, pw);
         pw.flush();
         return sw.toString();
--- a/test/langtools/jdk/javadoc/tool/QuietOption.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/tool/QuietOption.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8035473
+ * @bug 8035473 8182765
  * @summary make sure tool is quiet when told to, and chatty otherwise
  */
 
@@ -62,7 +62,6 @@
     void run1() throws Exception {
         List<String> output = doTest(javadoc.getPath(),
                 "-classpath", ".", // insulates us from ambient classpath
-                "-html4",
                 "-quiet",
                 new File(testSrc, thisClassName + ".java").getPath());
 
--- a/test/langtools/jdk/javadoc/tool/doclint/DocLintTest.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/jdk/javadoc/tool/doclint/DocLintTest.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8004834 8007610 8129909
+ * @bug 8004834 8007610 8129909 8182765
  * @summary Add doclint support into javadoc
  * @modules jdk.compiler/com.sun.tools.javac.main
  */
@@ -92,7 +92,7 @@
         /* 05 */    "}\n";
 
     private final String rawDiags = "-XDrawDiagnostics";
-    private final String htmlVersion = "-html4";
+    private final String htmlVersion = "-html5";
 
     private enum Message {
         // doclint messages
--- a/test/langtools/tools/javac/var_implicit_lambda/VarInImplicitLambdaNegTest01.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/tools/javac/var_implicit_lambda/VarInImplicitLambdaNegTest01.java	Thu Mar 08 10:18:28 2018 -0800
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8198512
+ * @bug 8198512 8199327
  * @summary compiler support for local-variable syntax for lambda parameters
  * @compile/fail/ref=VarInImplicitLambdaNegTest01.out -XDrawDiagnostics VarInImplicitLambdaNegTest01.java
  */
@@ -14,5 +14,8 @@
     IntBinaryOperator f4 = (int x, y) -> x + y;                              // error explicit and implicit
 
     BiFunction<String[], String, String> f5 = (var s1[], var s2) -> s2;      // error var and array
+
+    // correct use
+    IntBinaryOperator f6 = (var x, var y) -> x + y;                          // ok
     BiFunction<Function<String, String>, String, String> f = (Function<String, String> s1, String s2) -> s2; // ok
 }
--- a/test/langtools/tools/javadoc/6964914/TestStdDoclet.java	Thu Mar 08 14:31:54 2018 +0530
+++ b/test/langtools/tools/javadoc/6964914/TestStdDoclet.java	Thu Mar 08 10:18:28 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6964914
+ * @bug 6964914 8182765
  * @summary javadoc does not output number of warnings using user written doclet
  */
 
@@ -57,7 +57,6 @@
         cmdArgs.add(javadoc.getPath());
         cmdArgs.addAll(Arrays.asList(
                 "-classpath", ".", // insulates us from ambient classpath
-                "-html4",
                 "-Xdoclint:none",
                 "-package",
                 new File(testSrc, thisClassName + ".java").getPath()