Merge
authorpsadhukhan
Wed, 25 Sep 2019 13:40:36 +0530
changeset 58329 483f14c3e0a2
parent 58328 fe46ee1d42ee (diff)
parent 58311 88fce7eea1f6 (current diff)
child 58330 de8e08015d51
Merge
src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp
src/java.desktop/share/classes/java/awt/Window.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java
src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java
--- a/src/java.desktop/macosx/classes/sun/java2d/opengl/CGLGraphicsConfig.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/macosx/classes/sun/java2d/opengl/CGLGraphicsConfig.java	Wed Sep 25 13:40:36 2019 +0530
@@ -75,7 +75,7 @@
     private BufferCapabilities bufferCaps;
     private long pConfigInfo;
     private ContextCapabilities oglCaps;
-    private OGLContext context;
+    private final OGLContext context;
     private final Object disposerReferent = new Object();
     private final int maxTextureSize;
 
@@ -105,7 +105,7 @@
         this.pConfigInfo = configInfo;
         this.oglCaps = oglCaps;
         this.maxTextureSize = maxTextureSize;
-        context = new OGLContext(OGLRenderQueue.getInstance(), this);
+        context = new OGLContext(OGLRenderQueue.getInstance());
 
         // add a record to the Disposer so that we destroy the native
         // CGLGraphicsConfigInfo data when this object goes away
--- a/src/java.desktop/macosx/classes/sun/java2d/opengl/CGLSurfaceData.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/macosx/classes/sun/java2d/opengl/CGLSurfaceData.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,8 +48,9 @@
 
     native void validate(int xoff, int yoff, int width, int height, boolean isOpaque);
 
-    private native void initOps(long pConfigInfo, long pPeerData, long layerPtr,
-                                int xoff, int yoff, boolean isOpaque);
+    private native void initOps(OGLGraphicsConfig gc, long pConfigInfo,
+                                long pPeerData, long layerPtr, int xoff,
+                                int yoff, boolean isOpaque);
 
     protected CGLSurfaceData(CGLGraphicsConfig gc, ColorModel cm, int type,
                              int width, int height) {
@@ -74,7 +75,7 @@
             pPeerData = pView.getAWTView();
             isOpaque = pView.isOpaque();
         }
-        initOps(pConfigInfo, pPeerData, 0, 0, 0, isOpaque);
+        initOps(gc, pConfigInfo, pPeerData, 0, 0, 0, isOpaque);
     }
 
     protected CGLSurfaceData(CGLLayer layer, CGLGraphicsConfig gc,
@@ -90,7 +91,7 @@
             layerPtr = layer.getPointer();
             isOpaque = layer.isOpaque();
         }
-        initOps(pConfigInfo, 0, layerPtr, 0, 0, isOpaque);
+        initOps(gc, pConfigInfo, 0, layerPtr, 0, 0, isOpaque);
     }
 
     @Override //SurfaceData
--- a/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m	Wed Sep 25 13:40:36 2019 +0530
@@ -1408,10 +1408,8 @@
     JNF_COCOA_ENTER(env);
 
     NSView *view = (NSView *)jlong_to_ptr(viewPtr);
-    NSWindow *window = [view window];
-
     [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
-
+        NSWindow *window = [view window];
         ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
     }];
 
--- a/src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLSurfaceData.m	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLSurfaceData.m	Wed Sep 25 13:40:36 2019 +0530
@@ -131,31 +131,6 @@
 }
 
 /**
- * Returns a pointer (as a jlong) to the native CGLGraphicsConfigInfo
- * associated with the given OGLSDOps.  This method can be called from
- * shared code to retrieve the native GraphicsConfig data in a platform-
- * independent manner.
- */
-jlong
-OGLSD_GetNativeConfigInfo(OGLSDOps *oglsdo)
-{
-    J2dTraceLn(J2D_TRACE_INFO, "OGLSD_GetNativeConfigInfo");
-
-    if (oglsdo == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR, "OGLSD_GetNativeConfigInfo: ops are null");
-        return 0L;
-    }
-
-    CGLSDOps *cglsdo = (CGLSDOps *)oglsdo->privOps;
-    if (cglsdo == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR, "OGLSD_GetNativeConfigInfo: cgl ops are null");
-        return 0L;
-    }
-
-    return ptr_to_jlong(cglsdo->configInfo);
-}
-
-/**
  * Makes the given GraphicsConfig's context current to its associated
  * "scratch" surface.  If there is a problem making the context current,
  * this method will return NULL; otherwise, returns a pointer to the
@@ -359,7 +334,7 @@
 
 JNIEXPORT void JNICALL
 Java_sun_java2d_opengl_CGLSurfaceData_initOps
-    (JNIEnv *env, jobject cglsd,
+    (JNIEnv *env, jobject cglsd, jobject gc,
      jlong pConfigInfo, jlong pPeerData, jlong layerPtr,
      jint xoff, jint yoff, jboolean isOpaque)
 {
@@ -367,8 +342,22 @@
     J2dTraceLn1(J2D_TRACE_INFO, "  pPeerData=%p", jlong_to_ptr(pPeerData));
     J2dTraceLn2(J2D_TRACE_INFO, "  xoff=%d, yoff=%d", (int)xoff, (int)yoff);
 
+    gc = (*env)->NewGlobalRef(env, gc);
+    if (gc == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
+        return;
+    }
+
     OGLSDOps *oglsdo = (OGLSDOps *)
         SurfaceData_InitOps(env, cglsd, sizeof(OGLSDOps));
+    if (oglsdo == NULL) {
+        (*env)->DeleteGlobalRef(env, gc);
+        JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
+        return;
+    }
+    // later the graphicsConfig will be used for deallocation of oglsdo
+    oglsdo->graphicsConfig = gc;
+
     CGLSDOps *cglsdo = (CGLSDOps *)malloc(sizeof(CGLSDOps));
     if (cglsdo == NULL) {
         JNU_ThrowOutOfMemoryError(env, "creating native cgl ops");
--- a/src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp	Wed Sep 25 13:40:36 2019 +0530
@@ -414,11 +414,18 @@
                                AudioControl **audioControls, int offset, int len) {
     void *jControl = NULL;
     PortControl *control = (PortControl *)calloc(1, sizeof(PortControl));
+    if (control == NULL) {
+        return NULL;
+    }
     float precision = 0.01;
 
     control->type = type;
     control->controlCount = len;
     control->audioControls = (AudioControl **)malloc(len * sizeof(AudioControl *));
+    if (control->audioControls == NULL) {
+        free(control);
+        return NULL;
+    }
     memcpy(control->audioControls, audioControls + offset, len * sizeof(AudioControl *));
 
     switch (control->type) {
@@ -482,6 +489,9 @@
                 OS_ERROR1(err, "PORT_GetControls (portIndex = %d) get OwnedObject values", portIndex);
             } else {
                 mixer->deviceControls = (AudioControl *)calloc(mixer->deviceControlCount, sizeof(AudioControl));
+                if (mixer->deviceControls == NULL) {
+                    return;
+                }
 
                 for (int i = 0; i < mixer->deviceControlCount; i++) {
                     AudioControl *control = &mixer->deviceControls[i];
@@ -615,10 +625,16 @@
                 if (err == noErr) {
                     CFIndex length = CFStringGetLength(cfname) + 1;
                     channelName = (char *)malloc(length);
+                    if (channelName == NULL) {
+                        return;
+                    }
                     CFStringGetCString(cfname, channelName, length, kCFStringEncodingUTF8);
                     CFRelease(cfname);
                 } else {
                     channelName = (char *)malloc(16);
+                    if (channelName == NULL) {
+                        return;
+                    }
                     sprintf(channelName, "Ch %d", ch);
                 }
 
--- a/src/java.desktop/share/classes/java/awt/BorderLayout.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/BorderLayout.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * 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,11 +92,10 @@
  * Here is an example of five buttons in an applet laid out using
  * the {@code BorderLayout} layout manager:
  * <p>
- * <img src="doc-files/BorderLayout-1.gif"
- * alt="Diagram of an applet demonstrating BorderLayout.
- *      Each section of the BorderLayout contains a Button corresponding to its position in the layout, one of:
- *      North, West, Center, East, or South."
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/BorderLayout-1.gif" alt="Diagram of an applet
+ * demonstrating BorderLayout. Each section of the BorderLayout contains a
+ * Button corresponding to its position in the layout, one of: North, West,
+ * Center, East, or South." style="margin: 7px 10px;">
  * <p>
  * The code for this applet is as follows:
  *
--- a/src/java.desktop/share/classes/java/awt/Button.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Button.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,8 +40,8 @@
  * depicts three views of a "{@code Quit}" button as it appears
  * under the Solaris operating system:
  * <p>
- * <img src="doc-files/Button-1.gif" alt="The following context describes the graphic"
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/Button-1.gif" alt="The following context describes the
+ * graphic" style="margin: 7px 10px;">
  * <p>
  * The first view shows the button as it appears normally.
  * The second view shows the button
--- a/src/java.desktop/share/classes/java/awt/Checkbox.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Checkbox.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -52,8 +52,8 @@
  * This image depicts the check boxes and grid layout
  * created by this code example:
  * <p>
- * <img src="doc-files/Checkbox-1.gif" alt="The following context describes the graphic."
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/Checkbox-1.gif" alt="The following context describes the
+ * graphic." style="margin: 7px 10px;">
  * <p>
  * The button labeled {@code one} is in the "on" state, and the
  * other two are in the "off" state. In this example, which uses the
--- a/src/java.desktop/share/classes/java/awt/CheckboxGroup.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/CheckboxGroup.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,9 +46,9 @@
  * <p>
  * This image depicts the check box group created by this example:
  * <p>
- * <img src="doc-files/CheckboxGroup-1.gif"
- * alt="Shows three checkboxes, arranged vertically, labeled one, two, and three. Checkbox one is in the on state."
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/CheckboxGroup-1.gif" alt="Shows three checkboxes,
+ * arranged vertically, labeled one, two, and three. Checkbox one is in the on
+ * state." style="margin: 7px 10px;">
  *
  * @author      Sami Shaio
  * @see         java.awt.Checkbox
--- a/src/java.desktop/share/classes/java/awt/CheckboxMenuItem.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/CheckboxMenuItem.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,7 @@
  * <img src="doc-files/MenuBar-1.gif"
  * alt="Menu labeled Examples, containing items Basic, Simple, Check, and More
  * Examples. The Check item is a CheckBoxMenuItem instance, in the off state."
- * style="float:center; margin: 7px 10px;">
+ * style="margin: 7px 10px;">
  * <p>
  * The item labeled {@code Check} shows a check box menu item
  * in its "off" state.
--- a/src/java.desktop/share/classes/java/awt/Choice.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Choice.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,8 +51,8 @@
  * After this choice menu has been added to a panel,
  * it appears as follows in its normal state:
  * <p>
- * <img src="doc-files/Choice-1.gif" alt="The following text describes the graphic"
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/Choice-1.gif" alt="The following text describes the
+ * graphic" style="margin: 7px 10px;">
  * <p>
  * In the picture, {@code "Green"} is the current choice.
  * Pushing the mouse button down on the object causes a menu to
--- a/src/java.desktop/share/classes/java/awt/FlowLayout.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/FlowLayout.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,7 +54,7 @@
  * <p>
  * <img src="doc-files/FlowLayout-1.gif"
  * ALT="Graphic of Layout for Three Buttons"
- * style="float:center; margin: 7px 10px;">
+ * style="margin: 7px 10px;">
  * <p>
  * Here is the code for this applet:
  *
--- a/src/java.desktop/share/classes/java/awt/Frame.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Frame.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -83,10 +83,10 @@
  * of the primary screen in the virtual device, negative coordinates
  * are possible, as shown in the following figure.
  * <p>
- * <img src="doc-files/MultiScreen.gif"
- * alt="Diagram of virtual device encompassing three physical screens and one primary physical screen. The primary physical screen
- * shows (0,0) coords while a different physical screen shows (-80,-100) coords."
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/MultiScreen.gif" alt="Diagram of virtual device
+ * encompassing three physical screens and one primary physical screen. The
+ * primary physical screen shows (0,0) coords while a different physical screen
+ * shows (-80,-100) coords." style="margin: 7px 10px;">
  * <p>
  * In such an environment, when calling {@code setLocation},
  * you must pass a virtual coordinate to this method.  Similarly,
--- a/src/java.desktop/share/classes/java/awt/GridBagLayout.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/GridBagLayout.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -116,64 +116,49 @@
  * <dt>{@link GridBagConstraints#anchor}
  * <dd>Specifies where the component should be positioned in its display area.
  * There are three kinds of possible values: absolute, orientation-relative,
- * and baseline-relative
+ * and baseline-relative.
  * Orientation relative values are interpreted relative to the container's
  * {@code ComponentOrientation} property while absolute values
  * are not.  Baseline relative values are calculated relative to the
  * baseline.  Valid values are:
  *
- * <table class="striped" style="margin: 0px auto">
- * <caption>Absolute, relative and baseline values as described above</caption>
- * <thead>
- * <tr>
- * <th><p style="text-align:center">Absolute Values</th>
- * <th><p style="text-align:center">Orientation Relative Values</th>
- * <th><p style="text-align:center">Baseline Relative Values</th>
- * </tr>
- * </thead>
- * <tbody>
- * <tr>
- * <td>
- * <ul style="list-style-type:none">
- * <li>{@code GridBagConstraints.NORTH}</li>
- * <li>{@code GridBagConstraints.SOUTH}</li>
- * <li>{@code GridBagConstraints.WEST}</li>
- * <li>{@code GridBagConstraints.EAST}</li>
- * <li>{@code GridBagConstraints.NORTHWEST}</li>
- * <li>{@code GridBagConstraints.NORTHEAST}</li>
- * <li>{@code GridBagConstraints.SOUTHWEST}</li>
- * <li>{@code GridBagConstraints.SOUTHEAST}</li>
- * <li>{@code GridBagConstraints.CENTER} (the default)</li>
+ * <ul>
+ *   <li>Absolute Values:
+ *     <ul>
+ *       <li>{@code GridBagConstraints.NORTH}
+ *       <li>{@code GridBagConstraints.SOUTH}
+ *       <li>{@code GridBagConstraints.WEST}
+ *       <li>{@code GridBagConstraints.EAST}
+ *       <li>{@code GridBagConstraints.NORTHWEST}
+ *       <li>{@code GridBagConstraints.NORTHEAST}
+ *       <li>{@code GridBagConstraints.SOUTHWEST}
+ *       <li>{@code GridBagConstraints.SOUTHEAST}
+ *       <li>{@code GridBagConstraints.CENTER} (the default)
+ *     </ul>
+ *   <li>Orientation Relative Values:
+ *     <ul >
+ *       <li>{@code GridBagConstraints.PAGE_START}
+ *       <li>{@code GridBagConstraints.PAGE_END}
+ *       <li>{@code GridBagConstraints.LINE_START}
+ *       <li>{@code GridBagConstraints.LINE_END}
+ *       <li>{@code GridBagConstraints.FIRST_LINE_START}
+ *       <li>{@code GridBagConstraints.FIRST_LINE_END}
+ *       <li>{@code GridBagConstraints.LAST_LINE_START}
+ *       <li>{@code GridBagConstraints.LAST_LINE_END}
+ *     </ul>
+ *   <li>Baseline Relative Values:
+ *     <ul>
+ *       <li>{@code GridBagConstraints.BASELINE}
+ *       <li>{@code GridBagConstraints.BASELINE_LEADING}
+ *       <li>{@code GridBagConstraints.BASELINE_TRAILING}
+ *       <li>{@code GridBagConstraints.ABOVE_BASELINE}
+ *       <li>{@code GridBagConstraints.ABOVE_BASELINE_LEADING}
+ *       <li>{@code GridBagConstraints.ABOVE_BASELINE_TRAILING}
+ *       <li>{@code GridBagConstraints.BELOW_BASELINE}
+ *       <li>{@code GridBagConstraints.BELOW_BASELINE_LEADING}
+ *       <li>{@code GridBagConstraints.BELOW_BASELINE_TRAILING}
+ *     </ul>
  * </ul>
- * </td>
- * <td>
- * <ul style="list-style-type:none">
- * <li>{@code GridBagConstraints.PAGE_START}</li>
- * <li>{@code GridBagConstraints.PAGE_END}</li>
- * <li>{@code GridBagConstraints.LINE_START}</li>
- * <li>{@code GridBagConstraints.LINE_END}</li>
- * <li>{@code GridBagConstraints.FIRST_LINE_START}</li>
- * <li>{@code GridBagConstraints.FIRST_LINE_END}</li>
- * <li>{@code GridBagConstraints.LAST_LINE_START}</li>
- * <li>{@code GridBagConstraints.LAST_LINE_END}</li>
- * </ul>
- * </td>
- * <td>
- * <ul style="list-style-type:none">
- * <li>{@code GridBagConstraints.BASELINE}</li>
- * <li>{@code GridBagConstraints.BASELINE_LEADING}</li>
- * <li>{@code GridBagConstraints.BASELINE_TRAILING}</li>
- * <li>{@code GridBagConstraints.ABOVE_BASELINE}</li>
- * <li>{@code GridBagConstraints.ABOVE_BASELINE_LEADING}</li>
- * <li>{@code GridBagConstraints.ABOVE_BASELINE_TRAILING}</li>
- * <li>{@code GridBagConstraints.BELOW_BASELINE}</li>
- * <li>{@code GridBagConstraints.BELOW_BASELINE_LEADING}</li>
- * <li>{@code GridBagConstraints.BELOW_BASELINE_TRAILING}</li>
- * </ul>
- * </td>
- * </tr>
- * </tbody>
- * </table>
  * <dt>{@link GridBagConstraints#weightx},
  * {@link GridBagConstraints#weighty}
  * <dd>Used to determine how to distribute space, which is
@@ -201,14 +186,10 @@
  * <p>
  * The following figure shows a baseline layout and includes a
  * component that spans rows:
- * <table class="borderless" style="margin: 0px auto">
- * <caption>Baseline Layout</caption>
- * <tr style="text-align:center">
- * <td>
- * <img src="doc-files/GridBagLayout-baseline.png"
- *  alt="The following text describes this graphic (Figure 1)." style="float:center">
- * </td>
- * </table>
+ * <p style="text-align: center">
+ *   <img src="doc-files/GridBagLayout-baseline.png"
+ *   alt="The following text describes this graphic (Figure 1).">
+ * </p>
  * This layout consists of three components:
  * <ul><li>A panel that starts in row 0 and ends in row 1.  The panel
  *   has a baseline-resize behavior of {@code CONSTANT_DESCENT} and has
@@ -257,20 +238,21 @@
  * left-to-right container and Figure 3 shows the layout for a horizontal,
  * right-to-left container.
  *
- * <table class="borderless" style="margin: 0px auto">
- * <caption style="width:600;display:none">Figures</caption>
- * <tr style="text-align:center">
- * <td>
- * <img src="doc-files/GridBagLayout-1.gif" alt="The preceding text describes this graphic (Figure 1)." style="float:center; margin: 7px 10px;">
- * </td>
- * <td>
- * <img src="doc-files/GridBagLayout-2.gif" alt="The preceding text describes this graphic (Figure 2)." style="float:center; margin: 7px 10px;">
- * </td>
- * <tr style="text-align:center">
- * <td>Figure 2: Horizontal, Left-to-Right</td>
- * <td>Figure 3: Horizontal, Right-to-Left</td>
- * </tr>
- * </table>
+ * <div style="margin:0 auto;width:680px;text-align:center;font-weight:bold">
+ *   <div style="float:left">
+ *     <p><img src="doc-files/GridBagLayout-1.gif"
+ *        alt="The preceding text describes this graphic (Figure 2)."
+ *        style="margin: 7px 10px;">
+ *     <p>Figure 2: Horizontal, Left-to-Right
+ *   </div>
+ *   <div style="float:right">
+ *     <p><img src="doc-files/GridBagLayout-2.gif"
+ *        alt="The preceding text describes this graphic (Figure 3)."
+ *        style="margin: 7px 10px;">
+ *     <p>Figure 3: Horizontal, Right-to-Left
+ *   </div>
+ *   <br style="clear:both;">
+ * </div>
  * <p>
  * Each of the ten components has the {@code fill} field
  * of its associated {@code GridBagConstraints} object
--- a/src/java.desktop/share/classes/java/awt/GridLayout.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/GridLayout.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,26 +55,21 @@
  * If the container's {@code ComponentOrientation} property is horizontal
  * and right-to-left, the example produces the output shown in Figure 2.
  *
- * <table style="float:center;width:600">
- * <caption style="display:none">Figures</caption>
- * <tr style="text-align:center">
- * <td><img SRC="doc-files/GridLayout-1.gif"
- *      alt="Shows 6 buttons in rows of 2. Row 1 shows buttons 1 then 2.
- * Row 2 shows buttons 3 then 4. Row 3 shows buttons 5 then 6.">
- * </td>
- *
- * <td style="text-align:center"><img SRC="doc-files/GridLayout-2.gif"
- *              alt="Shows 6 buttons in rows of 2. Row 1 shows buttons 2 then 1.
- * Row 2 shows buttons 4 then 3. Row 3 shows buttons 6 then 5.">
- * </td>
- * </tr>
- *
- * <tr style="text-align:center">
- * <td>Figure 1: Horizontal, Left-to-Right</td>
- *
- * <td>Figure 2: Horizontal, Right-to-Left</td>
- * </tr>
- * </table>
+ * <div style="margin:0 auto;width:600px;text-align:center;font-weight:bold">
+ *   <div style="float:left">
+ *     <p><img SRC="doc-files/GridLayout-1.gif"
+ *        alt="Shows 6 buttons in rows of 2. Row 1 shows buttons 1 then 2.
+ *        Row 2 shows buttons 3 then 4. Row 3 shows buttons 5 then 6.">
+ *     <p>Figure 1: Horizontal, Left-to-Right
+ *   </div>
+ *   <div style="float:right">
+ *     <p><img SRC="doc-files/GridLayout-2.gif"
+ *        alt="Shows 6 buttons in rows of 2. Row 1 shows buttons 2 then 1.
+ *        Row 2 shows buttons 4 then 3. Row 3 shows buttons 6 then 5.">
+ *     <p>Figure 2: Horizontal, Right-to-Left
+ *   </div>
+ *   <br style="clear:both;">
+ * </div>
  * <p>
  * When both the number of rows and the number of columns have
  * been set to non-zero values, either by a constructor or
--- a/src/java.desktop/share/classes/java/awt/Label.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Label.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,8 +45,8 @@
  * <p>
  * produces the following labels:
  * <p>
- * <img src="doc-files/Label-1.gif" alt="Two labels: 'Hi There!' and 'Another label'"
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/Label-1.gif" alt="Two labels: 'Hi There!' and
+ * 'Another label'" style="margin: 7px 10px;">
  *
  * @author      Sami Shaio
  * @since       1.0
--- a/src/java.desktop/share/classes/java/awt/List.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/List.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,8 @@
  * scrolling list:
  * <p>
  * <img src="doc-files/List-1.gif"
- * alt="Shows a list containing: Venus, Earth, JavaSoft, and Mars. Javasoft is selected." style="float:center; margin: 7px 10px;">
+ * alt="Shows a list containing: Venus, Earth, JavaSoft, and Mars. Javasoft is
+ * selected." style="margin: 7px 10px;">
  * <p>
  * If the List allows multiple selections, then clicking on
  * an item that is already selected deselects it. In the preceding
--- a/src/java.desktop/share/classes/java/awt/MenuBar.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/MenuBar.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,9 +50,9 @@
  * This is what a menu bar might look like:
  * <p>
  * <img src="doc-files/MenuBar-1.gif"
- * alt="Diagram of MenuBar containing 2 menus: Examples and Options.
- * Examples menu is expanded showing items: Basic, Simple, Check, and More Examples."
- * style="float:center; margin: 7px 10px;">
+ * alt="Diagram of MenuBar containing 2 menus: Examples and Options. Examples
+ * menu is expanded showing items: Basic, Simple, Check, and More Examples."
+ * style="margin: 7px 10px;">
  * <p>
  * A menu bar handles keyboard shortcuts for menu items, passing them
  * along to its child menus.
--- a/src/java.desktop/share/classes/java/awt/MenuItem.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/MenuItem.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,8 +51,8 @@
  * a simple labeled menu item.
  * <p>
  * This picture of a menu bar shows five menu items:
- * <IMG SRC="doc-files/MenuBar-1.gif" alt="The following text describes this graphic."
- * style="float:center; margin: 7px 10px;">
+ * <IMG SRC="doc-files/MenuBar-1.gif" alt="The following text describes this
+ * graphic." style="margin: 7px 10px;">
  * <br style="clear:left;">
  * The first two items are simple menu items, labeled
  * {@code "Basic"} and {@code "Simple"}.
--- a/src/java.desktop/share/classes/java/awt/Scrollbar.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Scrollbar.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,8 +41,8 @@
  * scroll bars could be used as slider controls to pick
  * the red, green, and blue components of a color:
  * <p>
- * <img src="doc-files/Scrollbar-1.gif" alt="Image shows 3 vertical sliders, side-by-side."
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/Scrollbar-1.gif" alt="Image shows 3 vertical sliders,
+ * side-by-side." style="margin: 7px 10px;">
  * <p>
  * Each scroll bar in this example could be created with
  * code similar to the following:
@@ -59,8 +59,8 @@
  * Here is an example of a scroll bar that represents a range:
  * <p>
  * <img src="doc-files/Scrollbar-2.gif"
- * alt="Image shows horizontal slider with starting range of 0 and ending range of 300. The slider thumb is labeled 60."
- * style="float:center; margin: 7px 10px;">
+ * alt="Image shows horizontal slider with starting range of 0 and ending range
+ * of 300. The slider thumb is labeled 60." style="margin: 7px 10px;">
  * <p>
  * The value range represented by the bubble in this example
  * is the <em>visible amount</em>. The horizontal scroll bar
--- a/src/java.desktop/share/classes/java/awt/TextArea.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/TextArea.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,8 +41,8 @@
  * <p>
  * The following image shows the appearance of a text area:
  * <p>
- * <img src="doc-files/TextArea-1.gif" alt="A TextArea showing the word 'Hello!'"
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/TextArea-1.gif" alt="A TextArea showing the word
+ * 'Hello!'" style="margin: 7px 10px;">
  * <p>
  * This text area could be created by the following line of code:
  *
--- a/src/java.desktop/share/classes/java/awt/TextField.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/TextField.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,8 +41,8 @@
  * text fields of varying widths. Two of these text fields
  * display the predefined text {@code "Hello"}.
  * <p>
- * <img src="doc-files/TextField-1.gif" alt="The preceding text describes this image."
- * style="float:center; margin: 7px 10px;">
+ * <img src="doc-files/TextField-1.gif" alt="The preceding text describes this
+ * image." style="margin: 7px 10px;">
  * <p>
  * Here is the code that produces these four text fields:
  *
--- a/src/java.desktop/share/classes/java/awt/Window.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/Window.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -96,8 +96,9 @@
  * possible, as shown in the following figure.
  * <p>
  * <img src="doc-files/MultiScreen.gif"
- * alt="Diagram shows virtual device containing 4 physical screens. Primary physical screen shows coords (0,0), other screen shows (-80,-100)."
- * style="float:center; margin: 7px 10px;">
+ * alt="Diagram shows virtual device containing 4 physical screens. Primary
+ * physical screen shows coords (0,0), other screen shows (-80,-100)."
+ * style="margin: 7px 10px;">
  * <p>
  * In such an environment, when calling {@code setLocation},
  * you must pass a virtual coordinate to this method.  Similarly,
--- a/src/java.desktop/share/classes/java/awt/doc-files/DesktopProperties.html	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/doc-files/DesktopProperties.html	Wed Sep 25 13:40:36 2019 +0530
@@ -5,7 +5,7 @@
   <title>AWT Desktop Properties</title>
 </head>
 <!--
- Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
  This code is free software; you can redistribute it and/or modify it
@@ -57,22 +57,26 @@
 The following table summarizes the desktop properties documented
 here, and their value types.
 <br><br>
-<table>
-<tr bgcolor="#ccccff">
-<th>Property Name</th>
-<th>Value Type</th>
-<th>Summary Description</th>
+<table border=1>
+<thead>
+<tr>
+<th scope="col">Property Name</th>
+<th scope="col">Value Type</th>
+<th scope="col">Summary Description</th>
 </tr>
+</thead>
+<tbody>
 <tr>
-<td><A href="#awt.font.desktophints">awt.font.desktophints</A></td>
+<th scope="row"><A href="#awt.font.desktophints">awt.font.desktophints</A></th>
 <td>{@link java.util.Map java.util.Map}</td>
 <td>Font smoothing (text antialiasing) settings.</td>
 </tr>
 <tr>
-<td><A href="#sun.awt.enableExtraMouseButtons">sun.awt.enableExtraMouseButtons</A></td>
+<th scope="row"><A href="#sun.awt.enableExtraMouseButtons">sun.awt.enableExtraMouseButtons</A></th>
 <td>{@link java.lang.Boolean java.lang.Boolean}</td>
 <td>Controls if mouse events from extra buttons are to be generated or not</td>
 </tr>
+</tbody>
 </table>
 
 <h2>Desktop Font Rendering Hints</h2>
--- a/src/java.desktop/share/classes/java/awt/doc-files/Modality.html	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/doc-files/Modality.html	Wed Sep 25 13:40:36 2019 +0530
@@ -9,7 +9,7 @@
   </style>
 </head>
 <!--
- Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
  This code is free software; you can redistribute it and/or modify it
@@ -57,14 +57,14 @@
     <h2>Definitions</h2>
 
     <p>
-      <u>Document</u> - a window without an owner that, together with
+      Document - a window without an owner that, together with
       all its child hierarchy, may be operated on as a single self-contained
       document.
       Every window belongs to some document &mdash; its root can be found as
       the closest ancestor window without an owner.
     </p><p>
       <a id="ModalBlocked"></a>
-      <u>Modal blocked window</u> - a window, that:
+      Modal blocked window - a window, that:
       </p><ul>
         <li>doesn't receive any user input events
         </li><li>doesn't receive input focus
@@ -78,15 +78,15 @@
         <hr>
       </blockquote>
     <p>
-      <u>Modal dialog</u> - a dialog that blocks some windows while it is
+      Modal dialog - a dialog that blocks some windows while it is
       visible. The blocked windows are determined according to the dialog's
       scope of blocking.
     </p><p>
-      <u>Modal excluded window</u> - a window that stays unblocked
+      Modal excluded window - a window that stays unblocked
       while the modal dialog is visible. If a window is modal excluded
       then all its owned windows and child components are also excluded.
     </p><p>
-      <u>Scope of blocking (SB)</u> - the set of windows (instances of
+      Scope of blocking (SB) - the set of windows (instances of
       <code>java.awt.Window</code> and all derived classes) that are blocked by
       the modal dialog while it is visible.
      <blockquote><hr>
@@ -109,20 +109,20 @@
       A dialog is, by default, modeless.  A modal dialog is, by default,
       application-modal.
     <ol>
-      <li><u>Modeless dialogs</u><br>
+      <li>Modeless dialogs<br>
         A modeless dialog doesn't block any windows while visible.
-      </li><li><u>Document-modal dialogs</u><br>
+      </li><li>Document-modal dialogs<br>
         A document-modal dialog blocks all windows from the same
         document except those from its child hierarchy. The document root
         is determined as the closest ancestor window without an
         owner.
-      </li><li><u>Application-modal dialogs</u><br>
+      </li><li>Application-modal dialogs<br>
         An application-modal dialog blocks all windows from the same
         application except for those from its child hierarchy.
         If there are several applets launched in a browser, they can be
         treated either as separate applications or a single application.
 	This behavior is implementation-dependent.
-      </li><li><u>Toolkit-modal dialogs</u><br>
+      </li><li>Toolkit-modal dialogs<br>
         A toolkit-modal dialog blocks all windows that run in the same
         toolkit except those from its child hierarchy. If there
         are several applets launched all of them run with the same toolkit,
@@ -163,13 +163,13 @@
     <h2>Show/hide blocking</h2>
 
     <p>
-      <u>Showing the window or modeless dialog: "F"</u><br>
+      Showing the window or modeless dialog: "F"<br>
       All the visible modal dialogs are looked through &mdash; if F is from the SB
       of one of them, it becomes blocked by it. If there are several such
       dialogs, the first shown is used. If no such dialogs exist, F remains
       unblocked.
     </p><p>
-      <u>Showing the modal dialog: "M"</u><br>
+      Showing the modal dialog: "M"<br>
       When modal dialog M is shown, all the visible windows fall into one of
       three distinct groups:
       <ul>
@@ -188,57 +188,57 @@
       second one become blocked by M, and all the windows from the third group
       remain untouched.
     </p><p>
-      <u>In typical cases</u>, when no child dialogs are shown before their owners,
+      In typical cases, when no child dialogs are shown before their owners,
       this rule can be simplified. (The following, simplified case, may
       leave out some details).
       </p><p>
-      <u>Showing the document-modal dialog: "M"</u><br>
+      Showing the document-modal dialog: "M"<br>
       All the visible application- and toolkit-modal dialogs are looked
       through &mdash; if M is from the SB of one of them,
       it becomes blocked by it. If there are several such dialogs,
       the first shown is used. If no such dialogs exist, M remains unblocked.
       </p><p>
-      <u>Showing the application-modal dialog: "M"</u><br>
+      Showing the application-modal dialog: "M"<br>
       All the visible toolkit-modal dialogs are looked through &mdash;
       if M is from the SB of one of them, it becomes blocked by it.
       If there are several such dialogs, the first shown is used.
       If no such dialogs exist, M remains unblocked.
       </p><p>
-      <u>Showing the toolkit-modal dialog: "M"</u><br>
+      Showing the toolkit-modal dialog: "M"<br>
       M remains unblocked.
 
           <table border="1">
-	  <caption>The Standard Blocking Matrix</caption>
+	        <caption>The Standard Blocking Matrix</caption>
             <tbody><tr>
-              <td>current/shown</td>
-              <td>frame &amp; modeless</td>
-              <td>document</td>
-              <td>application</td>
-              <td>toolkit</td>
+              <th scope="col">current/shown</th>
+              <th scope="col">frame &amp; modeless</th>
+              <th scope="col">document</th>
+              <th scope="col">application</th>
+              <th scope="col">toolkit</th>
             </tr>
             <tr>
-              <td>-</td>
+              <th scope="row">-</th>
               <td>-</td>
               <td>-</td>
               <td>-</td>
               <td>-</td>
             </tr>
             <tr>
-              <td>document</td>
+              <th scope="row">document</th>
               <td>blocked</td>
               <td>-</td>
               <td>-</td>
               <td>-</td>
             </tr>
             <tr>
-              <td>application</td>
+              <th scope="row">application</th>
               <td>blocked</td>
               <td>blocked</td>
               <td>-</td>
               <td>-</td>
             </tr>
             <tr>
-              <td>toolkit</td>
+              <th scope="row">toolkit</th>
               <td>blocked</td>
               <td>blocked</td>
               <td>blocked</td>
@@ -250,11 +250,11 @@
       After the modal dialog is shown, all the windows from its SB are blocked,
       except those that block this modal dialog.
     </p><p>
-      <u>Hiding the window or modeless dialog: "F"</u><br>
+      Hiding the window or modeless dialog: "F"<br>
       If F was blocked by any modal dialog M, it becomes unblocked and is
       removed from M's blocked windows list.
     </p><p>
-      <u>Hiding the modal dialog: "M"</u><br>
+      Hiding the modal dialog: "M"<br>
       If M was blocked by any other modal dialog, for example, "N",
       it becomes unblocked and
       is removed from N's blocked windows list. Then, all the windows and dialogs
@@ -273,11 +273,11 @@
       </li></ul>
       By default, a window's modal exclusion property is turned off.
       <ol>
-        <li><u>Application-modal exclusion</u><br>
+        <li>Application-modal exclusion<br>
           If a window is application-modal excluded, it is not blocked by any
           application-modal dialogs. Also, it is not blocked by document-modal
           dialogs from outside of its child hierarchy.
-        </li><li><u>Toolkit-modal exclusion</u><br>
+        </li><li>Toolkit-modal exclusion<br>
           If a window is toolkit-modal excluded, it is not blocked
           by any application- or toolkit-modal dialogs. Also, it is not
           blocked by document-modal dialogs from outside of their child hierarchy.
@@ -285,19 +285,19 @@
     <blockquote>
       <hr>
         <b>Implementation note</b>: Changing the modal exclusion type for a visible window
-        may have no effect until it is hidden and then shown again.
+        may have no effect until it is hidden and then shown again.<hr>
     </blockquote>
 
     <a id="Related"></a>
     <h2>Related AWT features</h2>
 
     <p>
-      <u>Always-On-Top</u><br>
+      Always-On-Top<br>
       When a modal dialog that is not always-on-top blocks an always-on-top window,
       their relative Z-order is unspecified and platform-dependent.
     </p>
     <p>
-      <u>The <code>toFront()</code> and <code>toBack()</code> methods</u><br>
+      The <code>toFront()</code> and <code>toBack()</code> methods<br>
       A modal dialog should always be above all its blocked windows. Thus, if a blocked
       window is brought to the front, its blocking dialog, if any, is also brought to the
       front and remains above the blocked window. Likewise, if a modal dialog is sent to
@@ -305,7 +305,7 @@
       blocking dialog.
     </p>
     <p>
-      <u>Minimizing, maximizing and closing blocked windows</u><br>
+      Minimizing, maximizing and closing blocked windows<br>
       When a modal dialog blocks a window, the user may not be able to maximize or
       minimize the blocked window&mdash; however, the actual behavior is unspecified
       and platform-dependent. In any case, the user can't close the blocked window
@@ -314,13 +314,13 @@
       window.
     </p>
     <p>
-      <u>Blocked windows activations</u><br>
+      Blocked windows activations<br>
       When the user selects a blocked window, it may be brought to the front, along
       with the blocking modal dialog which would then become the active window&mdash;
       however, the actual behavior is unspecified and platform-dependent.
     </p>
     <p>
-      <u>Hiding a modal dialog</u><br>
+      Hiding a modal dialog<br>
       When the modal dialog that currently has focus is hidden, it is unspecified
       and platform-dependent, which other window will become the active window.
       Any of the following may become the active window:
@@ -378,87 +378,67 @@
     <a id="Examples"></a>
     </p><h2>Examples</h2>
 
-    <table border="0">
-      <tbody><tr>
-        <td style="text-align:left" >
-	<ol>
-          <li>Frame "F" is shown<br>
-          <li>Document-modal dialog "D<sub>i</sub>" is shown<br>
-          <li>F becomes blocked by D<sub>i</sub> &mdash; it's in the same document<br>
-          <li>Document-modal dialog "D<sub>ii</sub>" is shown<br>
-          <li>D<sub>i</sub> becomes blocked by D<sub>ii</sub> &mdash; it's in the
-              same document<br>
-	  </ol>
-          <br>
-        </td>
-        <td>
-          <img src="modal-example1.gif" alt="Example 1">
-          <br>
-        </td>
-      </tr>
-      <tr>
-        <td style="text-align:left">
-	<ol>
-         <li>Frame "F" is shown<br>
-         <li>Document-modal dialog "D<sub>i</sub>" is shown<br>
-         <li>F becomes blocked by D<sub>i</sub> &mdash; it's in the same document<br>
-         <li>Document-modal dialog "D<sub>ii</sub>" is shown<br>
-         <li>D<sub>i</sub> becomes blocked by D<sub>ii</sub> &mdash;
-             it's in the same document<br>
-         <li>D<sub>i</sub> is hidden<br>
-         <li>F becomes blocked by D<sub>ii</sub> &mdash; it's in the same document<br>
-         </ol>
-	 <br>
-        </td>
-        <td>
-          <img src="modal-example2.gif" alt="Example 2">
-          <br>
-        </td>
-      </tr>
-      <tr>
-        <td style="text-align:left">
-	<ol>
-          <li>Frame "F" is shown<br>
-          <li>Toolkit-modal dialog "D<sub>i</sub>" is created, but not shown<br>
-          <li>Document-modal dialog "D<sub>ii</sub>" is shown<br>
-          <li>F becomes blocked by D<sub>ii</sub> &mdash; it's in the same document<br>
-          <li>Application-modal dialog "D<sub>iii</sub>" is shown<br>
-          <li>D<sub>ii</sub> becomes blocked by D<sub>iii</sub> &mdash;
-              it's in the same application<br>
-          <li>D<sub>i</sub> is shown<br>
-          <li>D<sub>i</sub> becomes blocked by D<sub>ii</sub> &mdash; it's its owner<br>
-          <li>D<sub>iii</sub> remains unblocked &mdash; it blocks D<sub>ii</sub> and
-              D<sub>ii</sub> blocks D<sub>i</sub><br>
-	  </ol>
-          <br>
-        </td>
-        <td>
-          <img src="modal-example3.gif" alt="Example 3">
-          <br>
-        </td>
-      </tr>
-      <tr>
-        <td style="text-align:left">
-    <ol>
-          <li>Frame "F" is shown<br>
-          <li>Toolkit-modal dialog "D<sub>i</sub>" is created, but not shown<br>
-          <li>Document-modal dialog "D<sub>ii</sub>" is shown<br>
-          <li>F becomes blocked by D<sub>ii</sub> &mdash; it's in the same document<br>
-          <li>Application-modal dialog "D<sub>iii</sub>" is shown<br>
-          <li>D<sub>ii</sub> becomes blocked by D<sub>iii</sub> &mdash; it's in the
-              same application<br>
-          <li>D<sub>i</sub> is shown<br>
-          <li>D<sub>iii</sub> becomes blocked by D<sub>i</sub> &mdash; D<sub>i</sub>
-              is not blocked<br>
-          <li>D<sub>i</sub> remains unblocked<br>
-	  </ol>
-          <br>
-        </td>
-        <td>
-          <img src="modal-example4.gif" alt="Example 4">
-          <br>
-        </td>
-      </tr>
-    </tbody></table>
+    <h3>Example 1</h3>
+    <ol style="float: left">
+        <li>Frame F is shown<br>
+        <li>Document-modal dialog D<sub>i</sub> is shown<br>
+        <li>F becomes blocked by D<sub>i</sub> &mdash; it's in the same document<br>
+        <li>Document-modal dialog D<sub>ii</sub> is shown<br>
+        <li>D<sub>i</sub> becomes blocked by D<sub>ii</sub> &mdash; it's in the
+            same document<br>
+    </ol>
+    <p style="float: left; margin-left: 1em">
+        <img src="modal-example1.gif" alt="Example 1">
+    </p>
+
+    <h3 style="clear: left">Example 2</h3>
+    <ol style="float: left">
+        <li>Frame F is shown<br>
+        <li>Document-modal dialog D<sub>i</sub> is shown<br>
+        <li>F becomes blocked by D<sub>i</sub> &mdash; it's in the same document<br>
+        <li>Document-modal dialog D<sub>ii</sub> is shown<br>
+        <li>D<sub>i</sub> becomes blocked by D<sub>ii</sub> &mdash; it's in the
+            same document<br>
+    </ol>
+    <p style="float: left; margin-left: 1em">
+        <img src="modal-example2.gif" alt="Example 2">
+    </p>
+
+    <h3 style="clear: left">Example 3</h3>
+    <ol style="float: left">
+        <li>Frame F is shown<br>
+        <li>Toolkit-modal dialog D<sub>i</sub> is created, but not shown<br>
+        <li>Document-modal dialog D<sub>ii</sub> is shown<br>
+        <li>F becomes blocked by D<sub>ii</sub> &mdash; it's in the same document<br>
+        <li>Application-modal dialog D<sub>iii</sub> is shown<br>
+        <li>D<sub>ii</sub> becomes blocked by D<sub>iii</sub> &mdash;
+            it's in the same application<br>
+        <li>D<sub>i</sub> is shown<br>
+        <li>D<sub>i</sub> becomes blocked by D<sub>ii</sub> &mdash; it's its owner<br>
+        <li>D<sub>iii</sub> remains unblocked &mdash; it blocks D<sub>ii</sub> and
+            D<sub>ii</sub> blocks D<sub>i</sub><br>
+    </ol>
+    <p style="float: left; margin-left: 1em">
+        <img src="modal-example3.gif" alt="Example 3">
+    </p>
+
+    <h3 style="clear: left">Example 4</h3>
+    <ol style="float: left">
+        <li>Frame F is shown<br>
+        <li>Toolkit-modal dialog D<sub>i</sub> is created, but not shown<br>
+        <li>Document-modal dialog D<sub>ii</sub> is shown<br>
+        <li>F becomes blocked by D<sub>ii</sub> &mdash; it's in the same document<br>
+        <li>Application-modal dialog D<sub>iii</sub> is shown<br>
+        <li>D<sub>ii</sub> becomes blocked by D<sub>iii</sub> &mdash; it's in the
+            same application<br>
+        <li>D<sub>i</sub> is shown<br>
+        <li>D<sub>iii</sub> becomes blocked by D<sub>i</sub> &mdash; D<sub>i</sub>
+            is not blocked<br>
+        <li>D<sub>i</sub> remains unblocked<br>
+    </ol>
+    <p style="float: left; margin-left: 1em">
+        <img src="modal-example4.gif" alt="Example 4">
+    </p>
+    <br style="clear:both;">
 </main>
 </body></html>
--- a/src/java.desktop/share/classes/java/awt/font/NumericShaper.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/font/NumericShaper.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -116,17 +116,19 @@
  * </thead>
  * <tbody>
  *   <tr>
- *     <th scope="row" rowspan="2">Arabic
+ *     <th scope="rowgroup" rowspan="2">Arabic
  *     <td>{@link NumericShaper#ARABIC NumericShaper.ARABIC}
  *     <br>
  *     {@link NumericShaper#EASTERN_ARABIC NumericShaper.EASTERN_ARABIC}
  *     <td>{@link NumericShaper#EASTERN_ARABIC NumericShaper.EASTERN_ARABIC}
  *   </tr>
  *   <tr>
- *     <th scope="row">{@link NumericShaper.Range#ARABIC}
+ *     <td>{@link NumericShaper.Range#ARABIC}
  *     <br>
  *     {@link NumericShaper.Range#EASTERN_ARABIC}
  *     <td>{@link NumericShaper.Range#EASTERN_ARABIC}
+ * </tbody>
+ * <tbody>
  *   <tr>
  *     <th scope="row">Tai Tham
  *     <td>{@link NumericShaper.Range#TAI_THAM_HORA}
--- a/src/java.desktop/share/classes/java/awt/geom/Path2D.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/java/awt/geom/Path2D.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -892,83 +892,83 @@
          * <caption>Constants</caption>
          * <thead>
          * <tr>
-         * <th>Constant Name</th>
-         * <th>Byte Value</th>
-         * <th>Followed by</th>
-         * <th>Description</th>
+         * <th scope="col">Constant Name</th>
+         * <th scope="col">Byte Value</th>
+         * <th scope="col">Followed by</th>
+         * <th scope="col">Description</th>
          * </tr>
          * </thead>
          * <tbody>
          * <tr>
-         * <td>{@code SERIAL_STORAGE_FLT_ARRAY}</td>
+         * <th scope="row">{@code SERIAL_STORAGE_FLT_ARRAY}</th>
          * <td>0x30</td>
          * <td></td>
          * <td>A hint that the original {@code Path2D} object stored
          * the coordinates in a Java array of floats.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_STORAGE_DBL_ARRAY}</td>
+         * <th scope="row">{@code SERIAL_STORAGE_DBL_ARRAY}</th>
          * <td>0x31</td>
          * <td></td>
          * <td>A hint that the original {@code Path2D} object stored
          * the coordinates in a Java array of doubles.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_MOVETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_MOVETO}</th>
          * <td>0x40</td>
          * <td>2 floats</td>
          * <td>A {@link #moveTo moveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_LINETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_LINETO}</th>
          * <td>0x41</td>
          * <td>2 floats</td>
          * <td>A {@link #lineTo lineTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_QUADTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_QUADTO}</th>
          * <td>0x42</td>
          * <td>4 floats</td>
          * <td>A {@link #quadTo quadTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_CUBICTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_CUBICTO}</th>
          * <td>0x43</td>
          * <td>6 floats</td>
          * <td>A {@link #curveTo curveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_MOVETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_MOVETO}</th>
          * <td>0x50</td>
          * <td>2 doubles</td>
          * <td>A {@link #moveTo moveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_LINETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_LINETO}</th>
          * <td>0x51</td>
          * <td>2 doubles</td>
          * <td>A {@link #lineTo lineTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_QUADTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_QUADTO}</th>
          * <td>0x52</td>
          * <td>4 doubles</td>
          * <td>A {@link #curveTo curveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_CUBICTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_CUBICTO}</th>
          * <td>0x53</td>
          * <td>6 doubles</td>
          * <td>A {@link #curveTo curveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_CLOSE}</td>
+         * <th scope="row">{@code SERIAL_SEG_CLOSE}</th>
          * <td>0x60</td>
          * <td></td>
          * <td>A {@link #closePath closePath} path segment.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_PATH_END}</td>
+         * <th scope="row">{@code SERIAL_PATH_END}</th>
          * <td>0x61</td>
          * <td></td>
          * <td>There are no more path segments following.</td>
@@ -1666,83 +1666,83 @@
          * <caption>Constants</caption>
          * <thead>
          * <tr>
-         * <th>Constant Name</th>
-         * <th>Byte Value</th>
-         * <th>Followed by</th>
-         * <th>Description</th>
+         * <th scope="col">Constant Name</th>
+         * <th scope="col">Byte Value</th>
+         * <th scope="col">Followed by</th>
+         * <th scope="col">Description</th>
          * </tr>
          * </thead>
          * <tbody>
          * <tr>
-         * <td>{@code SERIAL_STORAGE_FLT_ARRAY}</td>
+         * <th scope="row">{@code SERIAL_STORAGE_FLT_ARRAY}</th>
          * <td>0x30</td>
          * <td></td>
          * <td>A hint that the original {@code Path2D} object stored
          * the coordinates in a Java array of floats.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_STORAGE_DBL_ARRAY}</td>
+         * <th scope="row">{@code SERIAL_STORAGE_DBL_ARRAY}</th>
          * <td>0x31</td>
          * <td></td>
          * <td>A hint that the original {@code Path2D} object stored
          * the coordinates in a Java array of doubles.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_MOVETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_MOVETO}</th>
          * <td>0x40</td>
          * <td>2 floats</td>
          * <td>A {@link #moveTo moveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_LINETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_LINETO}</th>
          * <td>0x41</td>
          * <td>2 floats</td>
          * <td>A {@link #lineTo lineTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_QUADTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_QUADTO}</th>
          * <td>0x42</td>
          * <td>4 floats</td>
          * <td>A {@link #quadTo quadTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_FLT_CUBICTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_FLT_CUBICTO}</th>
          * <td>0x43</td>
          * <td>6 floats</td>
          * <td>A {@link #curveTo curveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_MOVETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_MOVETO}</th>
          * <td>0x50</td>
          * <td>2 doubles</td>
          * <td>A {@link #moveTo moveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_LINETO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_LINETO}</th>
          * <td>0x51</td>
          * <td>2 doubles</td>
          * <td>A {@link #lineTo lineTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_QUADTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_QUADTO}</th>
          * <td>0x52</td>
          * <td>4 doubles</td>
          * <td>A {@link #curveTo curveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_DBL_CUBICTO}</td>
+         * <th scope="row">{@code SERIAL_SEG_DBL_CUBICTO}</th>
          * <td>0x53</td>
          * <td>6 doubles</td>
          * <td>A {@link #curveTo curveTo} path segment follows.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_SEG_CLOSE}</td>
+         * <th scope="row">{@code SERIAL_SEG_CLOSE}</th>
          * <td>0x60</td>
          * <td></td>
          * <td>A {@link #closePath closePath} path segment.</td>
          * </tr>
          * <tr>
-         * <td>{@code SERIAL_PATH_END}</td>
+         * <th scope="row">{@code SERIAL_PATH_END}</th>
          * <td>0x61</td>
          * <td></td>
          * <td>There are no more path segments following.</td>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html	Wed Sep 25 13:40:36 2019 +0530
@@ -5,7 +5,7 @@
   <title>GIF Metadata Format Specification</title>
 </head>
 <!--
-Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
 This code is free software; you can redistribute it and/or modify it
@@ -347,92 +347,120 @@
 <a id="mapping"></a>
 <table border=1>
 <caption><b>Mapping of Standard to GIF Native Stream Metadata</b></caption>
+<thead>
 <tr>
-<th>Standard Metadata Component</th>
-<th>GIF Native Stream Metadata Component</th>
+<th scope="col">Index</th>
+<th scope="col">Standard Metadata Component</th>
+<th scope="col">GIF Native Stream Metadata Component</th>
 </tr>
+</thead>
+<tbody>
 <tr>
+<th scope="row">1</th>
 <td>/Chroma/Palette/PaletteEntry@index</td>
 <td>/GlobalColorTable/ColorTableEntry@index</td>
 </tr>
 <tr>
+<th scope="row">2</th>
 <td>/Chroma/Palette/PaletteEntry@red</td>
 <td>/GlobalColorTable/ColorTableEntry@red</td>
 </tr>
 <tr>
+<th scope="row">3</th>
 <td>/Chroma/Palette/PaletteEntry@green</td>
 <td>/GlobalColorTable/ColorTableEntry@green</td>
 </tr>
 <tr>
+<th scope="row">4</th>
 <td>/Chroma/Palette/PaletteEntry@blue</td>
 <td>/GlobalColorTable/ColorTableEntry@blue</td>
 </tr>
 <tr>
+<th scope="row">5</th>
 <td>/Chroma/BackgroundIndex@value</td>
 <td>/GlobalColorTable@backgroundColorIndex</td>
 </tr>
 <tr>
+<th scope="row">6</th>
 <td>/Data/BitsPerSample@value</td>
 <td>/LogicalScreenDescriptor@colorResolution</td>
 </tr>
 <tr>
+<th scope="row">7</th>
 <td>/Dimension/PixelAspectRatio@value</td>
 <td>/LogicalScreenDescriptor@pixelAspectRatio</td>
 </tr>
 <tr>
+<th scope="row">8</th>
 <td>/Dimension/HorizontalScreenSize@value</td>
 <td>/LogicalScreenDescriptor@logicalScreenWidth</td>
 </tr>
 <tr>
+<th scope="row">9</th>
 <td>/Dimension/VerticalScreenSize@value</td>
 <td>/LogicalScreenDescriptor@logicalScreenHeight</td>
 </tr>
 <tr>
+<th scope="row">10</th>
 <td>/Document/FormatVersion@value</td>
 <td>/Version@value</td>
 </tr>
+</tbody>
 </table>
 
 <table border=1>
 <caption><b>Mapping of Standard to GIF Native Image Metadata</b></caption>
+<thead>
 <tr>
-<th>Standard Metadata Component</th>
-<th>GIF Native Image Metadata Component</th>
+<th scope="col">Index</th>
+<th scope="col">Standard Metadata Component</th>
+<th scope="col">GIF Native Image Metadata Component</th>
 </tr>
+</thead>
+<tbody>
 <tr>
+<th scope="row">1</th>
 <td>/Chroma/Palette/PaletteEntry@index</td>
 <td>/LocalColorTable/ColorTableEntry@index</td>
 </tr>
 <tr>
+<th scope="row">2</th>
 <td>/Chroma/Palette/PaletteEntry@red</td>
 <td>/LocalColorTable/ColorTableEntry@red</td>
 </tr>
 <tr>
+<th scope="row">3</th>
 <td>/Chroma/Palette/PaletteEntry@green</td>
 <td>/LocalColorTable/ColorTableEntry@green</td>
 </tr>
 <tr>
+<th scope="row">4</th>
 <td>/Chroma/Palette/PaletteEntry@blue</td>
 <td>/LocalColorTable/ColorTableEntry@blue</td>
 </tr>
 <tr>
+<th scope="row">5</th>
 <td>/Dimension/HorizontalPixelOffset@value</td>
 <td>/ImageDescriptor@imageLeftPosition</td>
 </tr>
 <tr>
+<th scope="row">6</th>
 <td>/Dimension/VerticalPixelOffset@value</td>
 <td>/ImageDescriptor@imageTopPosition</td>
 </tr>
 <tr>
+<th scope="row">7</th>
 <td>/Text/TextEntry@value</td>
 <td>/CommentExtensions/CommentExtension@value</td>
 </tr>
 <tr>
+<th scope="row">8</th>
 <td>/Transparency/TransparentIndex@value</td>
 <td>/GraphicControlExtension@transparentColorIndex
 (/GraphicControlExtension@transparentColorFlag is also set to
 "TRUE")</td>
 </tr>
+</tbody>
 </table>
 </main>
 </body>
--- a/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/tiff_metadata.html	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/doc-files/tiff_metadata.html	Wed Sep 25 13:40:36 2019 +0530
@@ -5,7 +5,7 @@
     <title>TIFF Metadata Format Specification and Usage Notes</title>
 </head>
 <!--
-Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
 This code is free software; you can redistribute it and/or modify it
@@ -235,11 +235,16 @@
 in the following table.
 
 <table border="1">
+<thead>
 <tr>
-<th>Standard Metadata Element</th>
-<th>Derivation from TIFF Fields</th>
+<th scope="col">Index</th>
+<th scope="col">Standard Metadata Element</th>
+<th scope="col">Derivation from TIFF Fields</th>
 </tr>
+</thead>
+<tbody>
 <tr>
+<th scope="row">1</th>
 <td>/Chroma/ColorSpaceType@name</td>
 <td>PhotometricInterpretation: WhiteIsZero, BlackIsZero, TransparencyMask =
 "GRAY"; RGB, PaletteColor =&gt; "RGB"; CMYK =&gt; "CMYK";
@@ -247,18 +252,22 @@
 CIELab, ICCLab =&gt; "Lab".</td>
 </tr>
 <tr>
+<th scope="row">2</th>
 <td>/Chroma/NumChannels@value</td>
 <td>SamplesPerPixel</td>
 </tr>
 <tr>
+<th scope="row">3</th>
 <td>/Chroma/BlackIsZero@value</td>
 <td>"TRUE" &lt;=&gt; PhotometricInterpretation =&gt; WhiteIsZero</td>
 </tr>
 <tr>
+<th scope="row">4</th>
 <td>/Chroma/Palette</td>
 <td>ColorMap</td>
 </tr>
 <tr>
+<th scope="row">5</th>
 <td>/Compression/CompressionTypeName@value</td>
 <td>Compression: Uncompressed =&gt; "none"; CCITT 1D =&gt; "CCITT
 RLE";
@@ -269,14 +278,17 @@
 Deflate =&gt; "Deflate"; Exif JPEG =&gt; "JPEG".</td>
 </tr>
 <tr>
+<th scope="row">6</th>
 <td>/Compression/Lossless@value</td>
 <td>Compression: JPEG or New JPEG =&gt; "FALSE"; otherwise "TRUE".</td>
 </tr>
 <tr>
+<th scope="row">7</th>
 <td>/Data/PlanarConfiguration@value</td>
 <td>Chunky =&gt; "PixelInterleaved"; Planar =&gt; "PlaneInterleaved".</td>
 </tr>
 <tr>
+<th scope="row">8</th>
 <td>/Data/SampleFormat@value</td>
 <td>PhotometricInterpretation PaletteColor =&gt; "Index";
 SampleFormat unsigned integer data =&gt; "UnsignedIntegral";
@@ -286,53 +298,65 @@
 </td>
 </tr>
 <tr>
+<th scope="row">9</th>
 <td>/Data/BitsPerSample@value</td>
 <td>BitsPerSample as a space-separated list.</td>
 </tr>
 <tr>
+<th scope="row">10</th>
 <td>/Data/SampleMSB@value</td>
 <td>FillOrder: left-to-right =&gt; space-separated list of BitsPerSample-1;
 right-to-left =&gt; space-separated list of 0s.</td>
 </tr>
 <tr>
+<th scope="row">11</th>
 <td>/Dimension/PixelAspectRatio@value</td>
 <td>(1/XResolution)/(1/YResolution)</td>
 </tr>
 <tr>
+<th scope="row">12</th>
 <td>/Dimension/ImageOrientation@value</td>
 <td>Orientation</td>
 </tr>
 <tr>
+<th scope="row">13</th>
 <td>/Dimension/HorizontalPixelSize@value</td>
 <td>1/XResolution in millimeters if ResolutionUnit is not None.</td>
 </tr>
 <tr>
+<th scope="row">14</th>
 <td>/Dimension/VerticalPixelSize@value</td>
 <td>1/YResolution in millimeters if ResolutionUnit is not None.</td>
 </tr>
 <tr>
+<th scope="row">15</th>
 <td>/Dimension/HorizontalPosition@value</td>
 <td>XPosition in millimeters if ResolutionUnit is not None.</td>
 </tr>
 <tr>
+<th scope="row">16</th>
 <td>/Dimension/VerticalPosition@value</td>
 <td>YPosition in millimeters if ResolutionUnit is not None.</td>
 </tr>
 <tr>
+<th scope="row">17</th>
 <td>/Document/FormatVersion@value</td>
 <td>6.0</td>
 </tr>
 <tr>
+<th scope="row">18</th>
 <td>/Document/SubimageInterpretation@value</td>
 <td>NewSubFileType: transparency =&gt; "TransparencyMask";
 reduced-resolution =&gt; "ReducedResolution";
 single page =&gt; "SinglePage".</td>
 </tr>
 <tr>
+<th scope="row">19</th>
 <td>/Document/ImageCreationTime@value</td>
 <td>DateTime</td>
 </tr>
 <tr>
+<th scope="row">20</th>
 <td>/Text/TextEntry</td>
 <td>DocumentName, ImageDescription, Make, Model, PageName, Software,
 Artist, HostComputer, InkNames, Copyright:
@@ -343,10 +367,12 @@
 used to create the image.</td>
 </tr>
 <tr>
+<th scope="row">21</th>
 <td>/Transparency/Alpha@value</td>
 <td>ExtraSamples: associated alpha =&gt; "premultiplied";
 unassociated alpha =&gt; "nonpremultiplied".</td>
 </tr>
+</tbody>
 </table>
 
 <h3><a id="ExifRead">Reading Exif Images</a></h3>
@@ -490,40 +516,55 @@
 
 <table border=1>
 <caption><b>Supported Compression Types</b></caption>
-<tr><th>Compression Type</th> <th>Description</th> <th>Reference</th></tr>
+<thead>
 <tr>
+  <th scope="col">Index</th>
+  <th scope="col">Compression Type</th>
+  <th scope="col">Description</th>
+  <th scope="col">Reference</th></tr>
+<tr>
+</thead>
+<tbody>
+<th scope="row">1</th>
 <td>CCITT RLE</td>
 <td>Modified Huffman compression</td>
 <td>TIFF 6.0 Specification, Section 10</td>
 </tr>
 <tr>
+<th scope="row">2</th>
 <td>CCITT T.4</td>
 <td>CCITT T.4 bilevel encoding/Group 3 facsimile compression</td>
 <td>TIFF 6.0 Specification, Section 11</td>
 </tr>
 <tr>
+<th scope="row">3</th>
 <td>CCITT T.6</td>
 <td>CCITT T.6 bilevel encoding/Group 4 facsimile compression</td>
 <td>TIFF 6.0 Specification, Section 11</td></tr>
 <tr>
+<th scope="row">4</th>
 <td>LZW</td>
 <td>LZW compression</td>
 <td>TIFF 6.0 Specification, Section 13</td></tr>
 <tr>
+<th scope="row">5</th>
 <td>JPEG</td>
 <td>"New" JPEG-in-TIFF compression</td>
 <td>TIFF Technical Note #2</td></tr>
 <tr>
+<th scope="row">6</th>
 <td>ZLib</td>
 <td>"Deflate/Inflate" compression (see note following this table)</td>
 <td>Adobe Photoshop&#174; TIFF Technical Notes</td>
 </tr>
 <tr>
+<th scope="row">7</th>
 <td>PackBits</td>
 <td>Byte-oriented, run length compression</td>
 <td>TIFF 6.0 Specification, Section 9</td>
 </tr>
 <tr>
+<th scope="row">8</th>
 <td>Deflate</td>
 <td>"Zip-in-TIFF" compression (see note following this table)</td>
 <td><a href="https://tools.ietf.org/html/rfc1950">
@@ -532,10 +573,12 @@
 DEFLATE Compressed Data Format Specification</a></td>
 </tr>
 <tr>
+<th scope="row">9</th>
 <td>Exif JPEG</td>
 <td>Exif-specific JPEG compression (see note following this table)</td>
 <td><a href="http://www.exif.org/Exif2-2.PDF">Exif 2.2 Specification</a>
 (PDF), section 4.5.5, "Basic Structure of Thumbnail Data"</td>
+</tbody>
 </table>
 
 <p>
@@ -721,11 +764,16 @@
 given in the following table.
 
 <table border="1">
+<thead>
 <tr>
-<th>TIFF Field</th>
-<th>Derivation from Standard Metadata Elements</th>
+<th scope="col">Index</th>
+<th scope="col">TIFF Field</th>
+<th scope="col">Derivation from Standard Metadata Elements</th>
 </tr>
+</thead>
+<tbody>
 <tr>
+<th scope="row">1</th>
 <td>
 PhotometricInterpretation
 </td>
@@ -736,14 +784,17 @@
 "CMYK" =&gt; CMYK; "Lab" =&gt; CIELab.</td>
 </tr>
 <tr>
+<th scope="row">2</th>
 <td>SamplesPerPixel</td>
 <td>/Chroma/NumChannels@value</td>
 </tr>
 <tr>
+<th scope="row">3</th>
 <td>ColorMap</td>
 <td>/Chroma/Palette</td>
 </tr>
 <tr>
+<th scope="row">4</th>
 <td>Compression</td>
 <td>/Compression/CompressionTypeName@value: "none" =&gt; Uncompressed;
 "CCITT RLE" =&gt; CCITT 1D; "CCITT T.4" =&gt; Group 3 Fax; "CCITT T.6" =&gt; Group 4
@@ -751,11 +802,13 @@
 "PackBits" =&gt; PackBits; "Deflate" =&gt; Deflate.</td>
 </tr>
 <tr>
+<th scope="row">5</th>
 <td>PlanarConfiguration</td>
 <td>/Data/PlanarConfiguration@value: "PixelInterleaved" =&gt; Chunky;
 "PlaneInterleaved" =&gt; Planar.</td>
 </tr>
 <tr>
+<th scope="row">6</th>
 <td>SampleFormat</td>
 <td>/Data/SampleFormat@value: "SignedIntegral" =&gt; two's complement signed
 integer data; "UnsignedIntegral" =&gt; unsigned integer data; "Real" =&gt;
@@ -763,54 +816,65 @@
 </td>
 </tr>
 <tr>
+<th scope="row">7</th>
 <td>BitsPerSample</td>
 <td>/Data/BitsPerSample@value: space-separated list parsed to char array.</td>
 </tr>
 <tr>
+<th scope="row">8</th>
 <td>FillOrder</td>
 <td>/Data/SampleMSB@value: if all values in space-separated list are 0s =&gt;
 right-to-left; otherwise =&gt; left-to-right.
 </td>
 </tr>
 <tr>
+<th scope="row">9</th>
 <td>XResolution</td>
 <td>(10 / /Dimension/HorizontalPixelSize@value) or
 (10 / (/Dimension/VerticalPixelSize@value *
 /Dimension/PixelAspectRatio@value))</td>
 </tr>
 <tr>
+<th scope="row">10</th>
 <td>YResolution</td>
 <td>(10 / /Dimension/VerticalPixelSize@value) or
 (10 / (/Dimension/HorizontalPixelSize@value /
 /Dimension/PixelAspectRatio@value))</td>
 </tr>
 <tr>
+<th scope="row">11</th>
 <td>ResolutionUnit</td>
 <td>Centimeter if XResolution or YResolution set; otherwise None.</td>
 </tr>
 <tr>
+<th scope="row">12</th>
 <td>Orientation</td>
 <td>/Dimension/ImageOrientation@value</td>
 </tr>
 <tr>
+<th scope="row">13</th>
 <td>XPosition</td>
 <td>/Dimension/HorizontalPosition@value / 10</td>
 </tr>
 <tr>
+<th scope="row">14</th>
 <td>YPosition</td>
 <td>/Dimension/VerticalPosition@value / 10</td>
 </tr>
 <tr>
+<th scope="row">15</th>
 <td>NewSubFileType</td>
 <td>/Document/SubimageInterpretation@value: "TransparencyMask" =&gt;
 transparency mask; "ReducedResolution" =&gt; reduced-resolution;
 "SinglePage" =&gt; single page.</td>
 </tr>
 <tr>
+<th scope="row">16</th>
 <td>DateTime</td>
 <td>/Document/ImageCreationTime@value</td>
 </tr>
 <tr>
+<th scope="row">17</th>
 <td>DocumentName, ImageDescription, Make, Model, PageName, Software,
 Artist, HostComputer, InkNames, Copyright</td>
 <td>/Text/TextEntry: if /Text/TextEntry@keyword is the name of any of the
@@ -818,14 +882,12 @@
 /Text/TextEntry@value and count 1.</td>
 </tr>
 <tr>
+<th scope="row">18</th>
 <td>ExtraSamples</td>
 <td>/Transparency/Alpha@value: "premultiplied" =&gt; associated alpha, count 1;
 "nonpremultiplied" =&gt; unassociated alpha, count 1.</td>
 </tr>
-<tr>
-<td></td>
-<td></td>
-</tr>
+</tbody>
 </table>
 
 <h3><a id="ExifWrite">Writing Exif Images</a></h3>
--- a/src/java.desktop/share/classes/javax/print/attribute/standard/Finishings.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/print/attribute/standard/Finishings.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,50 +40,31 @@
  * determines what constitutes a "copy" for purposes of finishing.
  * <p>
  * Standard Finishings values are:
- * <table class="borderless" style="width:100%;margin: 0px auto">
- * <caption>Standard Finishings values</caption>
- *   <tr>
- *     <td style="width:10%">&nbsp;
- *     <td style="width:27%">{@link #NONE NONE}
- *     <td style="width:27%">{@link #STAPLE STAPLE}
- *     <td style="width:36%">{@link #EDGE_STITCH EDGE_STITCH}
- *   <tr>
- *     <td>&nbsp;
- *     <td>{@link #BIND BIND}
- *     <td>{@link #SADDLE_STITCH SADDLE_STITCH}
- *     <td>{@link #COVER COVER}
- *     <td>&nbsp;
- * </table>
+ * <ul>
+ *   <li>{@link #NONE NONE}
+ *   <li>{@link #STAPLE STAPLE}
+ *   <li>{@link #EDGE_STITCH EDGE_STITCH}
+ *   <li>{@link #BIND BIND}
+ *   <li>{@link #SADDLE_STITCH SADDLE_STITCH}
+ *   <li>{@link #COVER COVER}
+ * </ul>
  * <p>
  * The following {@code Finishings} values are more specific; they indicate a
  * corner or an edge as if the document were a portrait document:
- * <table class="borderless" style="width:100%;margin: 0px auto">
- * <caption>Specific Finishings values</caption>
- *   <tr>
- *     <td style="width:10%">&nbsp;
- *     <td style="width:27%">{@link #STAPLE_TOP_LEFT STAPLE_TOP_LEFT}
- *     <td style="width:27%">{@link #EDGE_STITCH_LEFT EDGE_STITCH_LEFT}
- *     <td style="width:27%">{@link #STAPLE_DUAL_LEFT STAPLE_DUAL_LEFT}
- *     <td style="width:9%">&nbsp;
- *   <tr>
- *     <td style="width:10%">&nbsp;
- *     <td style="width:27%">{@link #STAPLE_BOTTOM_LEFT STAPLE_BOTTOM_LEFT}
- *     <td style="width:27%">{@link #EDGE_STITCH_TOP EDGE_STITCH_TOP}
- *     <td style="width:27%">{@link #STAPLE_DUAL_TOP STAPLE_DUAL_TOP}
- *     <td style="width:9%">&nbsp;
- *   <tr>
- *     <td style="width:10%">&nbsp;
- *     <td style="width:27%">{@link #STAPLE_TOP_RIGHT STAPLE_TOP_RIGHT}
- *     <td style="width:27%">{@link #EDGE_STITCH_RIGHT EDGE_STITCH_RIGHT}
- *     <td style="width:27%">{@link #STAPLE_DUAL_RIGHT STAPLE_DUAL_RIGHT}
- *     <td style="width:9%">&nbsp;
- *   <tr>
- *     <td style="width:10%">&nbsp;
- *     <td style="width:27%">{@link #STAPLE_BOTTOM_RIGHT STAPLE_BOTTOM_RIGHT}
- *     <td style="width:27%">{@link #EDGE_STITCH_BOTTOM EDGE_STITCH_BOTTOM}
- *     <td style="width:27%">{@link #STAPLE_DUAL_BOTTOM STAPLE_DUAL_BOTTOM}
- *     <td style="width:9%">&nbsp;
- * </table>
+ * <ul>
+ *   <li>{@link #STAPLE_TOP_LEFT STAPLE_TOP_LEFT}
+ *   <li>{@link #EDGE_STITCH_LEFT EDGE_STITCH_LEFT}
+ *   <li>{@link #STAPLE_DUAL_LEFT STAPLE_DUAL_LEFT}
+ *   <li>{@link #STAPLE_BOTTOM_LEFT STAPLE_BOTTOM_LEFT}
+ *   <li>{@link #EDGE_STITCH_TOP EDGE_STITCH_TOP}
+ *   <li>{@link #STAPLE_DUAL_TOP STAPLE_DUAL_TOP}
+ *   <li>{@link #STAPLE_TOP_RIGHT STAPLE_TOP_RIGHT}
+ *   <li>{@link #EDGE_STITCH_RIGHT EDGE_STITCH_RIGHT}
+ *   <li>{@link #STAPLE_DUAL_RIGHT STAPLE_DUAL_RIGHT}
+ *   <li>{@link #STAPLE_BOTTOM_RIGHT STAPLE_BOTTOM_RIGHT}
+ *   <li>{@link #EDGE_STITCH_BOTTOM EDGE_STITCH_BOTTOM}
+ *   <li>{@link #STAPLE_DUAL_BOTTOM STAPLE_DUAL_BOTTOM}
+ * </ul>
  * <p>
  * The STAPLE_<i>XXX</i> values are specified with respect to the document as if
  * the document were a portrait document. If the document is actually a
--- a/src/java.desktop/share/classes/javax/swing/BoxLayout.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/BoxLayout.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,16 +36,12 @@
  * vertically or horizontally. The components will not wrap so, for
  * example, a vertical arrangement of components will stay vertically
  * arranged when the frame is resized.
- * <table class="borderless" style="float:right">
- * <caption>Example:</caption>
- *    <TR>
- *      <TD style="text-align:center">
- *         <P STYLE="TEXT-ALIGN:CENTER"><IMG SRC="doc-files/BoxLayout-1.gif"
- *          alt="The following text describes this graphic."
- *          WIDTH="191" HEIGHT="201" STYLE="FLOAT:BOTTOM; BORDER:0">
- *      </TD>
- *    </TR>
- * </TABLE>
+ * <div style="float:right;text-align:center">
+ *   <p><b>Example:</b>
+ *   <p><img src="doc-files/BoxLayout-1.gif"
+ *      alt="The following text describes this graphic."
+ *      width="191" height="201">
+ * </div>
  * <p>
  * Nesting multiple panels with different combinations of horizontal and
  * vertical gives an effect similar to GridBagLayout, without the
--- a/src/java.desktop/share/classes/javax/swing/JLayeredPane.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/JLayeredPane.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,16 +47,12 @@
  * <a href="https://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html">How to Use a Layered Pane</a>,
  * a section in <em>The Java Tutorial</em>.
  *
- * <table class="borderless" style="float:right">
- * <caption>Example</caption>
- * <TR>
- *   <TD style="text-align:center">
- *     <P STYLE="TEXT-ALIGN:CENTER"><IMG SRC="doc-files/JLayeredPane-1.gif"
- *     alt="The following text describes this image."
- *     WIDTH="269" HEIGHT="264" STYLE="FLOAT:BOTTOM; BORDER=0">
- *   </TD>
- * </TR>
- * </TABLE>
+ * <div style="float:right;text-align:center">
+ *   <p><b>Example:</b>
+ *   <p><img src="doc-files/JLayeredPane-1.gif"
+ *       alt="The following text describes this image."
+ *       width="269" height="264">
+ * </div>
  * For convenience, <code>JLayeredPane</code> divides the depth-range
  * into several different layers. Putting a component into one of those
  * layers makes it easy to ensure that components overlap properly,
--- a/src/java.desktop/share/classes/javax/swing/JRootPane.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/JRootPane.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,15 +71,11 @@
  * a given component.
  * </blockquote>
  *
- * <table class="borderless" style="float:right">
- * <caption>Example</caption>
- * <tr>
- * <td style="text-align:center">
- * <img src="doc-files/JRootPane-2.gif"
- * alt="The following text describes this graphic." HEIGHT=386 WIDTH=349>
- * </td>
- * </tr>
- * </table>
+ * <div style="float:right;text-align:center;font-weight:bold">
+ *   <p>Example:
+ *   <p><img src="doc-files/JRootPane-2.gif"
+ *      alt="the following text describes this graphic." height=386 width=349>
+ * </div>
  * The diagram at right shows the structure of a <code>JRootPane</code>.
  * A <code>JRootpane</code> is made up of a <code>glassPane</code>,
  * an optional <code>menuBar</code>, and a <code>contentPane</code>.
--- a/src/java.desktop/share/classes/javax/swing/JScrollPane.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/JScrollPane.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,16 +55,12 @@
  * a section in <em>The Java Tutorial</em>.  Note that
  * <code>JScrollPane</code> does not support heavyweight components.
  *
- * <table class="borderless" style="float:right">
- * <caption>Example</caption>
- *    <TR>
- *    <TD style="text-align:center">
- *      <P STYLE="TEXT-ALIGN:CENTER"><IMG SRC="doc-files/JScrollPane-1.gif"
- *      alt="The following text describes this image."
- *      WIDTH="256" HEIGHT="248" STYLE="FLOAT:BOTTOM; BORDER:0px">
- *    </TD>
- *    </TR>
- * </TABLE>
+ * <div style="float:right;text-align:center">
+ *   <p><b>Example:</b>
+ *   <p><img src="doc-files/JScrollPane-1.gif"
+ *       alt="The following text describes this image."
+ *       width="256" height="248">
+ * </div>
  * The <code>JViewport</code> provides a window,
  * or &quot;viewport&quot; onto a data
  * source -- for example, a text file. That data source is the
--- a/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html	Wed Sep 25 13:40:36 2019 +0530
@@ -3,9 +3,10 @@
 <head>
   <meta charset="utf-8"/>
   <title>Component Specific Properties</title>
+  <style type="text/css">tbody th {font-weight:normal;text-align:left}</style>
 </head>
 <!--
-Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
 This code is free software; you can redistribute it and/or modify it
@@ -56,14 +57,14 @@
 <table border="1">
 <caption>ArrowButton Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>ArrowButton.size</td>
+      <th scope="row">ArrowButton.size</th>
       <td>Integer</td>
       <td>16 	 </td>
       <td>Preferred size of the arrow button. </td>
@@ -78,14 +79,14 @@
 <table border="1">
 <caption>JButton Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>Button.defaultButtonFollowsFocus</td>
+      <th scope="row">Button.defaultButtonFollowsFocus</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>Whether or not the 	    default JButton should change to the
@@ -101,14 +102,14 @@
 <table border="1">
 <caption>JCheckBox Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>CheckBox.icon</td>
+      <th scope="row">CheckBox.icon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon used to render the check. </td>
@@ -122,44 +123,44 @@
 <table border="1">
 <caption>JComboBox child components</caption>
   <thead><tr>
-    <th>Name</th>
-    <th>Type</th>
-    <th>Description </th>
+    <th scope="col">Name</th>
+    <th scope="col">Type</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>ComboBox.arrowButton</td>
+      <th scope="row">ComboBox.arrowButton</th>
       <td>SynthArrowButton 	 </td>
       <td>Renders the drop down indicator. 	</td>
     </tr>
     <tr>
-      <td>ComboBox.list</td>
+      <th scope="row">ComboBox.list</th>
       <td>JList 	 </td>
       <td>JList used to render the values. 	</td>
     </tr>
     <tr>
-      <td>ComboBox.listRenderer</td>
+      <th scope="row">ComboBox.listRenderer</th>
       <td>Component 	 </td>
       <td>The renderer used for the JComboBox's JList. 	</td>
     </tr>
     <tr>
-      <td>ComboBox.popup</td>
+      <th scope="row">ComboBox.popup</th>
       <td>JPopupMenu 	 </td>
       <td>JPopupMenu used to show the ComboBox.list of the JComboBox. 	</td>
     </tr>
     <tr>
-      <td>ComboBox.renderer</td>
+      <th scope="row">ComboBox.renderer</th>
       <td>Component 	 </td>
       <td>The renderer used for the JComboBox. This is ONLY set if
 the renderer is a UIResource. 	</td>
     </tr>
     <tr>
-      <td>ComboBox.scrollPane</td>
+      <th scope="row">ComboBox.scrollPane</th>
       <td>JScrollPane 	 </td>
       <td>JScrollPane containing the JList. 	</td>
     </tr>
     <tr>
-      <td>ComboBox.textField</td>
+      <th scope="row">ComboBox.textField</th>
       <td>JTextField 	 </td>
       <td>The editor. </td>
     </tr>
@@ -170,14 +171,14 @@
 <table border="1">
 <caption>JComboBox Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>ComboBox.showPopupOnNavigation</td>
+      <th scope="row">ComboBox.showPopupOnNavigation</th>
       <td>Boolean</td>
       <td>false 	 </td>
       <td>Whether or not the JPopupMenu should appear when 	 navigating
@@ -189,18 +190,19 @@
 <h2>JFileChooser</h2>
 <table cellpadding="2" cellspacing="2" border="1" style="width: 100%; text-align: left;">
 <caption>JFileChooser Specific Properties</caption>
-  <tbody>
+  <thead>
     <tr>
-      <th style="vertical-align: top; text-align: center;">Property</th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
+      </th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Default Value<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Default Value<br>
-      </th>
-      <th style="vertical-align: top; text-align: center;">Description</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description</th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">FileChooser.cancelIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.cancelIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -210,8 +212,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.okIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.okIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -221,8 +223,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileView.directoryIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileView.directoryIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -231,8 +233,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileView.fileIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileView.fileIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -241,8 +243,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileView.computerIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileView.computerIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -253,8 +255,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileView.hardDriveIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileView.hardDriveIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -265,8 +267,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileView.floppyDriveIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileView.floppyDriveIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -276,8 +278,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.newFolderIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.newFolderIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -287,8 +289,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.upFolderIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.upFolderIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -298,8 +300,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.homeFolderIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.homeFolderIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -309,8 +311,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.detailsViewIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.detailsViewIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -320,8 +322,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.listViewIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.listViewIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -332,8 +334,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">FileChooser.viewMenuIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">FileChooser.viewMenuIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon<br>
       </td>
       <td style="vertical-align: top;">null<br>
@@ -348,20 +350,20 @@
 <h2><a id="JInternalFrame"></a>JInternalFrame</h2>
 <table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 100%;">
 <caption>JInternalFrame Specific Properties</caption>
-  <tbody>
-    <tr>
-      <th style="vertical-align: top; text-align: center;">Property<br>
+  <thead><tr>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">DefaultValue<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">DefaultValue<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Description<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description<br>
       </th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">InternalFrame.icon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrame.icon<br>
+      </th>
       <td style="vertical-align: top;">Icon</td>
       <td style="vertical-align: top;">null<br>
       </td>
@@ -380,20 +382,20 @@
 </p>
 <table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 100%;">
 <caption>JInternalFrameTitlePane Specific Properties</caption>
-  <tbody>
-    <tr>
-      <th style="vertical-align: top; text-align: center;">Property<br>
+  <thead><tr>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Default Value<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Default Value<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Description<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description<br>
       </th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.maximizeIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.maximizeIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon</td>
       <td style="vertical-align: top;">null<br>
       </td>
@@ -402,8 +404,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.minimizeIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.minimizeIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon</td>
       <td style="vertical-align: top;">null<br>
       </td>
@@ -412,8 +414,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.iconifyIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.iconifyIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon</td>
       <td style="vertical-align: top;">null<br>
       </td>
@@ -422,8 +424,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.closeIcon<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.closeIcon<br>
+      </th>
       <td style="vertical-align: top;">Icon</td>
       <td style="vertical-align: top;">null<br>
       </td>
@@ -432,8 +434,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.titleSpacing<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.titleSpacing<br>
+      </th>
       <td style="vertical-align: top;">Integer</td>
       <td style="vertical-align: top;">2</td>
       <td style="vertical-align: top;">Space between the
@@ -441,8 +443,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.buttonSpacing<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.buttonSpacing<br>
+      </th>
       <td style="vertical-align: top;">Integer</td>
       <td style="vertical-align: top;">2</td>
       <td style="vertical-align: top;">Space between the buttons on
@@ -450,8 +452,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.maxFrameIconSize<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.maxFrameIconSize<br>
+      </th>
       <td style="vertical-align: top;">Dimension</td>
       <td style="vertical-align: top;">16x16</td>
       <td style="vertical-align: top;">Maximum size of the frame
@@ -460,8 +462,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">InternalFrameTitlePane.titleAlignment<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">InternalFrameTitlePane.titleAlignment<br>
+      </th>
       <td style="vertical-align: top;">leading|trailing|center</td>
       <td style="vertical-align: top;">leading</td>
       <td style="vertical-align: top;">Alignment for the title.
@@ -479,14 +481,14 @@
 <table border="1">
 <caption>JList Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>List.rendererUseListColors</td>
+      <th scope="row">List.rendererUseListColors</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true the renderers state is not updated, and the 	    text
@@ -495,7 +497,7 @@
 updated and the colors will instead come from the 	    Style. 	</td>
     </tr>
     <tr>
-      <td>List.rendererUseUIBorder</td>
+      <th scope="row">List.rendererUseUIBorder</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true setBorder on the renderer will succeed 	 regardless
@@ -503,7 +505,7 @@
 only succeed if it is a Synth Border. 	</td>
     </tr>
     <tr>
-      <td>List.cellHeight</td>
+      <th scope="row">List.cellHeight</th>
       <td>Integer</td>
       <td>-1 	 </td>
       <td>Cell height of the JList. Is this is -1, 	 <code>setFixedCellHeight</code>
@@ -523,14 +525,14 @@
 <table border="1">
 <caption>Menu classes common properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>prefix.acceleratorDelimiter</td>
+      <th scope="row">prefix.acceleratorDelimiter</th>
       <td>String</td>
       <td>+ 	 </td>
       <td>String separator between the description of the 	 modifiers
@@ -538,7 +540,7 @@
 	</td>
     </tr>
     <tr>
-      <td>prefix.arrowIcon</td>
+      <th scope="row">prefix.arrowIcon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon drawn to the right of the text (or left when the
@@ -546,7 +548,7 @@
 typically only defined for JMenu. 	</td>
     </tr>
     <tr>
-      <td>prefix.checkIcon</td>
+      <th scope="row">prefix.checkIcon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon drawn to the left of the text (or right when the
@@ -555,7 +557,7 @@
 to provide the check or radio button. 	</td>
     </tr>
     <tr>
-      <td>prefix.margin</td>
+      <th scope="row">prefix.margin</th>
       <td>Insets</td>
       <td>Empty Insets (0, 0, 0, 0) 	 </td>
       <td>Margin for the JMenuItem. Refer to the javadoc of
@@ -563,7 +565,7 @@
 of how the margin is used. 	</td>
     </tr>
     <tr>
-      <td>prefix.textIconGap</td>
+      <th scope="row">prefix.textIconGap</th>
       <td>Integer</td>
       <td>4 	 </td>
       <td>Padding between the icon and text. Refer to the javadoc for
@@ -578,20 +580,20 @@
 <table border="1">
 <caption>JMenu specific properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>Menu.delay</td>
+      <th scope="row">Menu.delay</th>
       <td>Integer</td>
       <td>200 	 </td>
       <td>Sets the delay before the menu appears. 	</td>
     </tr>
     <tr>
-      <td>Menu.shortcutKeys</td>
+      <th scope="row">Menu.shortcutKeys</th>
       <td>int[]</td>
       <td>KeyEvent.ALT_MASK 	 </td>
       <td>Array of the KeyEvent modifiers to use for shortcut keys. </td>
@@ -607,26 +609,26 @@
 <table border="1">
 <caption>JOptionPane Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>OptionPane.buttonAreaBorder</td>
+      <th scope="row">OptionPane.buttonAreaBorder</th>
       <td>Border 	 </td>
       <td>null 	 </td>
       <td>Border around the button area. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.buttonClickThreshhold</td>
+      <th scope="row">OptionPane.buttonClickThreshhold</th>
       <td>Integer 	 </td>
       <td>0 	 </td>
       <td>Passed to the created buttons setMultiClickThreshhold. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.buttonOrientation</td>
+      <th scope="row">OptionPane.buttonOrientation</th>
       <td>Integer 	 </td>
       <td>SwingConstants.CENTER 	 </td>
       <td>How the buttons should be layed out, one of
@@ -634,80 +636,80 @@
 (this will be flipped when in a 	    right to left locale). 	</td>
     </tr>
     <tr>
-      <td>OptionPane.buttonPadding</td>
+      <th scope="row">OptionPane.buttonPadding</th>
       <td>Integer 	 </td>
       <td>6 	 </td>
       <td>Amount of space between buttons. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.cancelIcon</td>
+      <th scope="row">OptionPane.cancelIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon for the cancel button. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.errorIcon</td>
+      <th scope="row">OptionPane.errorIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon used for ERROR_MESSAGE. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.informationIcon</td>
+      <th scope="row">OptionPane.informationIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon used for INFORMATION_MESSAGE. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.isYesLast</td>
+      <th scope="row">OptionPane.isYesLast</th>
       <td>Boolean 	 </td>
       <td>false 	 </td>
       <td>If true the 'yes' button leads other buttons, 	    otherwise
 it follows the other buttons. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.questionIcon</td>
+      <th scope="row">OptionPane.questionIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon used for error QUESTION_MESSAGE. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.minimumSize</td>
+      <th scope="row">OptionPane.minimumSize</th>
       <td>Dimension 	 </td>
       <td>262x90</td>
       <td>Minimum size for the JOptionPane. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.noIcon</td>
+      <th scope="row">OptionPane.noIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon for the no button. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.okIcon</td>
+      <th scope="row">OptionPane.okIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon for the ok button. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.sameSizeButtons</td>
+      <th scope="row">OptionPane.sameSizeButtons</th>
       <td>Boolean 	 </td>
       <td>true 	 </td>
       <td>Whether or not all the buttons should be the same size. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.separatorPadding</td>
+      <th scope="row">OptionPane.separatorPadding</th>
       <td>Integer 	 </td>
       <td>6</td>
       <td>Amount of padding between the message area and 	 separator. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.yesIcon</td>
+      <th scope="row">OptionPane.yesIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon for the yes button. 	</td>
     </tr>
     <tr>
-      <td>OptionPane.warningIcon</td>
+      <th scope="row">OptionPane.warningIcon</th>
       <td>Icon 	 </td>
       <td>null 	 </td>
       <td>Icon used for error WARNING_MESSAGE 	</td>
@@ -719,18 +721,18 @@
 </h2>
 <table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 100%;">
 <caption>JProgressBar Specific Properties</caption>
-  <tbody>
-    <tr>
-      <th style="vertical-align: top; text-align: center;">Property</th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+  <thead><tr>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
+      </th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Default Value<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Default Value<br>
-      </th>
-      <th style="vertical-align: top; text-align: center;">Description</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description</th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">ProgressBar.repaintInterval<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">ProgressBar.repaintInterval<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">50<br>
@@ -740,8 +742,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">ProgressBar.cycleTime<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">ProgressBar.cycleTime<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">3000<br>
@@ -760,14 +762,14 @@
 <table border="1">
 <caption>JRadioButton Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>RadioButton.icon</td>
+      <th scope="row">RadioButton.icon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon used to render the radio indicator. </td>
@@ -781,13 +783,13 @@
 <table border="1">
 <caption>JScrollBar child components</caption>
   <thead><tr>
-    <th>Name</th>
-    <th>Type</th>
-    <th>Description </th>
+    <th scope="col">Name</th>
+    <th scope="col">Type</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>ScrollBar.button</td>
+      <th scope="row">ScrollBar.button</th>
       <td>SynthArrowButton 	 </td>
       <td>Identifies the increment/decrement buttons. </td>
     </tr>
@@ -798,27 +800,27 @@
 <table border="1">
 <caption>JScrollBar Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>ScrollBar.allowsAbsolutePositioning</td>
+      <th scope="row">ScrollBar.allowsAbsolutePositioning</th>
       <td>Boolean 	 </td>
       <td>false</td>
       <td>If true, middle mouse click in the track will 	    set the
 position of the track to where the mouse is. 	</td>
     </tr>
     <tr>
-      <td>ScrollBar.maximumThumbSize</td>
+      <th scope="row">ScrollBar.maximumThumbSize</th>
       <td>Dimension</td>
       <td>4096x4096 	 </td>
       <td>Maximum thumb size. 	</td>
     </tr>
     <tr>
-      <td>ScrollBar.minimumThumbSize</td>
+      <th scope="row">ScrollBar.minimumThumbSize</th>
       <td>Dimension</td>
       <td>Derived from ScrollBar.thumbHeight</td>
       <td>The minimum thumb size.  If this is not specified the
@@ -830,14 +832,14 @@
 	    size width is ScrollBar.thumbHeight with a height of 7.</td>
     </tr>
     <tr>
-      <td>ScrollBar.squareButtons</td>
+      <th scope="row">ScrollBar.squareButtons</th>
       <td>Boolean 	 </td>
       <td>false</td>
       <td>If true, the width and height of the scrollbar 	    buttons
 will be made equal. 	</td>
     </tr>
     <tr>
-      <td>ScrollBar.thumbHeight</td>
+      <th scope="row">ScrollBar.thumbHeight</th>
       <td>Integer</td>
       <td>14 	 </td>
       <td>The preferred height, when the orientation of the
@@ -853,14 +855,14 @@
 <table border="1">
 <caption>Separator classes common properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>Separator.thickness</td>
+      <th scope="row">Separator.thickness</th>
       <td>Integer</td>
       <td>2 	 </td>
       <td>Preferred width, for vertically aligned separators, or
@@ -873,14 +875,14 @@
 <table border="1">
 <caption>JToolBar.Separator specific properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>ToolBar.separatorSize</td>
+      <th scope="row">ToolBar.separatorSize</th>
       <td>Dimension</td>
       <td>null 	 </td>
     <td>The value of this is passed to the
@@ -907,14 +909,14 @@
 <table border="1">
 <caption>JScrollPane Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>ScrollPane.viewportBorderInsets</td>
+      <th scope="row">ScrollPane.viewportBorderInsets</th>
       <td>Insets</td>
       <td>null 	 </td>
       <td>Insets for the viewport Border. 	</td>
@@ -931,39 +933,39 @@
 <table border="1">
 <caption>JSplitPane Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>SplitPane.centerOneTouchButtons</td>
+      <th scope="row">SplitPane.centerOneTouchButtons</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true, the one touch buttons are centered on the divider. 	</td>
     </tr>
     <tr>
-      <td>SplitPane.oneTouchButtonOffset</td>
+      <th scope="row">SplitPane.oneTouchButtonOffset</th>
       <td>Integer</td>
       <td>2 	 </td>
       <td>Distance between the one touch buttons. 	</td>
     </tr>
     <tr>
-      <td>SplitPane.oneTouchButtonSize</td>
+      <th scope="row">SplitPane.oneTouchButtonSize</th>
       <td>Integer</td>
       <td>6 	 </td>
       <td>Size to make the one touch buttons. 	</td>
     </tr>
     <tr>
-      <td>SplitPane.oneTouchExpandable</td>
+      <th scope="row">SplitPane.oneTouchExpandable</th>
       <td>Boolean</td>
       <td>null 	 </td>
       <td>If non null, the value of this is passed to
 setOneTouchExpandable. 	</td>
     </tr>
     <tr>
-      <td>SplitPane.size</td>
+      <th scope="row">SplitPane.size</th>
       <td>Integer</td>
       <td>6 	 </td>
       <td>Size of the divider </td>
@@ -974,20 +976,20 @@
 <h2><a id="JSlider"></a>JSlider</h2>
 <table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 100%;">
 <caption>JSlider Specific Properties</caption>
-  <tbody>
-    <tr>
-      <th style="vertical-align: top; text-align: center;">Property<br>
+  <thead><tr>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Default Value<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Default Value<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Description<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description<br>
       </th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">Slider.thumbWidth<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">Slider.thumbWidth<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">30<br>
@@ -996,8 +998,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">Slider.thumbHeight<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">Slider.thumbHeight<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">14<br>
@@ -1006,8 +1008,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">Slider.trackBorder<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">Slider.trackBorder<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">1<br>
@@ -1016,8 +1018,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">Slider.paintValue<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">Slider.paintValue<br>
+      </th>
       <td style="vertical-align: top;">Boolean<br>
       </td>
       <td style="vertical-align: top;">true<br>
@@ -1033,18 +1035,18 @@
 <h2><a id="JTabbedPane"></a>JTabbedPane</h2>
 <table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 100%;">
 <caption>JTabbedPane Specific Properties</caption>
-  <tbody>
-    <tr>
-      <th style="vertical-align: top; text-align: center;">Property</th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+  <thead><tr>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
+      </th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Default Value<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Default Value<br>
-      </th>
-      <th style="vertical-align: top; text-align: center;">Description</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description</th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">TabbedPane.tabRunOverlay<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">TabbedPane.tabRunOverlay<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">0<br>
@@ -1054,8 +1056,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">TabbedPane.textIconGap<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">TabbedPane.textIconGap<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">0<br>
@@ -1066,8 +1068,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">TabbedPane.selectedTabPadInsets<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">TabbedPane.selectedTabPadInsets<br>
+      </th>
       <td style="vertical-align: top;">Insets<br>
       </td>
       <td style="vertical-align: top;">Empty Insets (0, 0, 0, 0)<br>
@@ -1077,8 +1079,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">TabbedPane.selectionFollowsFocus<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">TabbedPane.selectionFollowsFocus<br>
+      </th>
       <td style="vertical-align: top;">Boolean<br>
       </td>
       <td style="vertical-align: top;">true<br>
@@ -1097,21 +1099,21 @@
 <table border="1">
 <caption>JTable Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>Table.gridColor</td>
+      <th scope="row">Table.gridColor</th>
       <td>Color</td>
       <td>null 	 </td>
       <td>Color used for the grid. If null the foreground from 	    the
 style is used. 	</td>
     </tr>
     <tr>
-      <td>Table.rendererUseTableColors</td>
+      <th scope="row">Table.rendererUseTableColors</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true the renderers state is not updated, and the 	    text
@@ -1120,7 +1122,7 @@
 updated and the colors will instead come from the 	    Style. 	</td>
     </tr>
     <tr>
-      <td>Table.rendererUseUIBorder</td>
+      <th scope="row">Table.rendererUseUIBorder</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true setBorder on the renderer will succeed
@@ -1128,7 +1130,7 @@
 renderer will only succeed if it is a Synth Border. 	</td>
     </tr>
     <tr>
-      <td>Table.rowHeight</td>
+      <th scope="row">Table.rowHeight</th>
       <td>Integer</td>
       <td>-1 	 </td>
       <td>If not -1 setRowHeight is invoked on the JTable. </td>
@@ -1142,59 +1144,59 @@
 <table border="1">
 <caption>JTree Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
     <tr>
-      <td>Tree.collapsedIcon</td>
+      <th scope="row">Tree.collapsedIcon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon to use when a node is collapsed. 	</td>
     </tr>
     <tr>
-      <td>Tree.drawHorizontalLines</td>
+      <th scope="row">Tree.drawHorizontalLines</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true nodes have a horizontal connecting them to the
 leading edge of their parent. 	</td>
     </tr>
     <tr>
-      <td>Tree.drawVerticalLines</td>
+      <th scope="row">Tree.drawVerticalLines</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>If true a vertical line is drawn down from expanded nodes. 	</td>
     </tr>
     <tr>
-      <td>Tree.expandedIcon</td>
+      <th scope="row">Tree.expandedIcon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon to use when a node has been expanded. 	</td>
     </tr>
     <tr>
-      <td>Tree.leftChildIndent</td>
+      <th scope="row">Tree.leftChildIndent</th>
       <td>Integer</td>
       <td>0 	 </td>
       <td>This plus Tree.rightChildIndent account for the 	    total
 space, along the y axis, to offset nodes from their 	    parent. 	</td>
     </tr>
     <tr>
-      <td>Tree.rightChildIndent</td>
+      <th scope="row">Tree.rightChildIndent</th>
       <td>Integer</td>
       <td>0 	 </td>
       <td>This plus Tree.leftChildIndent account for the 	    total
 space, along the y axis, to offset nodes from their 	    parent. 	</td>
     </tr>
     <tr>
-      <td>Tree.rowHeight</td>
+      <th scope="row">Tree.rowHeight</th>
       <td>Integer</td>
       <td>-1 	 </td>
       <td>Row height for the Tree.</td>
     </tr>
     <tr>
-      <td>Tree.scrollsHorizontallyAndVertically</td>
+      <th scope="row">Tree.scrollsHorizontallyAndVertically</th>
       <td>Boolean</td>
       <td>false 	 </td>
       <td>If false and scrolling needs to happen to accommodate 	 cells
@@ -1202,14 +1204,14 @@
 may happen along both the horizontal and 	    vertical axis. 	</td>
     </tr>
     <tr>
-      <td>Tree.scrollsOnExpand</td>
+      <th scope="row">Tree.scrollsOnExpand</th>
       <td>Boolean</td>
       <td>true 	 </td>
       <td>Whether or not the JTree should scroll when a node is
 expanded. </td>
     </tr>
     <tr>
-      <td>Tree.linesStyle</td>
+      <th scope="row">Tree.linesStyle</th>
       <td>String</td>
       <td>      </td>
       <td>The styles of the lines in the tree. Synth supports solid lines
@@ -1226,14 +1228,14 @@
 <table border="1">
 <caption>JToggleButton Specific Properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>ToggleButton.icon</td>
+      <th scope="row">ToggleButton.icon</th>
       <td>Icon</td>
       <td>null 	 </td>
       <td>Icon used to render the radio indicator. </td>
@@ -1248,14 +1250,14 @@
 <table border="1">
 <caption>Button classes common properties</caption>
   <thead><tr>
-    <th>Property</th>
-    <th>Expected Type</th>
-    <th>Default Value</th>
-    <th>Description </th>
+    <th scope="col">Property</th>
+    <th scope="col">Expected Type</th>
+    <th scope="col">Default Value</th>
+    <th scope="col">Description </th>
   </tr>
   </thead> <tbody>
 	<tr>
-      <td>prefix.contentAreaFilled</td>
+      <th scope="row">prefix.contentAreaFilled</th>
       <td>Integer</td>
       <td>true 	 </td>
     <td>Refer to the javadoc of
@@ -1265,7 +1267,7 @@
     </td>
   </tr>
     <tr>
-      <td>prefix.iconTextGap</td>
+      <th scope="row">prefix.iconTextGap</th>
       <td>Integer</td>
       <td>If unspecified, JButton.setIconTextGap is not invoked.</td>
       <td>Padding between the icon and text. Refer to the javadoc of
@@ -1274,7 +1276,7 @@
       </td>
     </tr>
     <tr>
-      <td>prefix.margin</td>
+      <th scope="row">prefix.margin</th>
       <td>Insets</td>
       <td>Empty Insets (0, 0, 0, 0) 	 </td>
       <td>Margin for the JButton. Refer to the javadoc of
@@ -1283,7 +1285,7 @@
       </td>
     </tr>
     <tr>
-      <td>prefix.textShiftOffset</td>
+      <th scope="row">prefix.textShiftOffset</th>
       <td>Integer</td>
       <td>0 	 </td>
       <td>Amount to shift the text and icon, along the x and y 	 axis,
@@ -1298,19 +1300,19 @@
 <h2><a id="textProperties"></a>Text Properties<br>
 </h2>
 <table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 100%;">
-  <tbody>
-    <tr>
-      <th style="vertical-align: top; text-align: center;">Property</th>
-      <th style="vertical-align: top; text-align: center;">Expected Type<br>
+  <thead><tr>
+      <th scope="col" style="vertical-align: top; text-align: center;">Property</th>
+      <th scope="col" style="vertical-align: top; text-align: center;">Expected Type<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Default Value<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Default Value<br>
       </th>
-      <th style="vertical-align: top; text-align: center;">Description<br>
+      <th scope="col" style="vertical-align: top; text-align: center;">Description<br>
       </th>
     </tr>
+  </thead> <tbody>
     <tr>
-      <td style="vertical-align: top;">prefix.caretForeground<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">prefix.caretForeground<br>
+      </th>
       <td style="vertical-align: top;">Color<br>
       </td>
       <td style="vertical-align: top;">#000000</td>
@@ -1318,8 +1320,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">prefix.margin<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">prefix.margin<br>
+      </th>
       <td style="vertical-align: top;">Insets</td>
       <td style="vertical-align: top;">Empty Insets (0, 0, 0, 0),<br>
 EditorPane and TextPane (3, 3, 3, 3)<br>
@@ -1328,8 +1330,8 @@
       </td>
     </tr>
     <tr>
-      <td style="vertical-align: top;">prefix.caretBlinkRate<br>
-      </td>
+      <th scope="row" style="vertical-align: top;">prefix.caretBlinkRate<br>
+      </th>
       <td style="vertical-align: top;">Integer<br>
       </td>
       <td style="vertical-align: top;">500<br>
--- a/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html	Wed Sep 25 13:40:36 2019 +0530
@@ -4,7 +4,7 @@
   <meta charset="utf-8"/>
   <title>Synth File Format</title>
 <!--
- Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
  This code is free software; you can redistribute it and/or modify it
@@ -777,12 +777,32 @@
       SynthPainter method:
     </p>
     <table border=1>
-     <caption> Painters for SynthPainter methods </caption>
-      <tr><th>State<th>Method<th>Painter
-	<tr><td>SELECTED<td>paintButtonBackground<td>stateButtonBackgroundPainter
-	<tr><td>SELECTED<td>Anything but paintButtonBackground<td>stateFallbackPainter
-	<tr><td>Anything but SELECTED<td>paintButtonBackground<td>styleButtonBackgroundPainter
-	<tr><td>Anything but SELECTED<td>Anything but paintButtonBackground<td>fallbackPainter
+     <caption>Painters for SynthPainter methods</caption>
+      <thead>
+      <tr>
+        <th scope="col">Index
+        <th scope="col">State
+        <th scope="col">Method
+        <th scope="col">Painter
+      </thead>
+      <tbody>
+	    <tr>
+        <th scope="row">1
+        <td>SELECTED
+        <td>paintButtonBackground<td>stateButtonBackgroundPainter
+	    <tr>
+        <th scope="row">2
+        <td>SELECTED
+        <td>Anything but paintButtonBackground<td>stateFallbackPainter
+	    <tr>
+        <th scope="row">3
+        <td>Anything but SELECTED
+        <td>paintButtonBackground<td>styleButtonBackgroundPainter
+	    <tr>
+        <th scope="row">4
+        <td>Anything but SELECTED
+        <td>Anything but paintButtonBackground<td>fallbackPainter
+      </tbody>
     </table>
 
     <p>
--- a/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -3577,7 +3577,7 @@
          *     <td>{@link DefaultComboBoxModel} or an {@link DefaultListModel},
          *     with an item type of Option
          *   <tr>
-         *     <td>textarea
+         *     <th scope="row">textarea
          *     <td>{@link PlainDocument}
          * </tbody>
          * </table>
--- a/src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java	Wed Sep 25 13:40:36 2019 +0530
@@ -246,7 +246,8 @@
             widthScale = 1.0d;
         } else if ((at.getType() & (AffineTransform.TYPE_GENERAL_TRANSFORM  |
                                     AffineTransform.TYPE_GENERAL_SCALE)) != 0) {
-            widthScale = Math.sqrt(at.getDeterminant());
+            // Determinant may be negative (flip), use its absolute value:
+            widthScale = Math.sqrt(Math.abs(at.getDeterminant()));
         } else {
             // First calculate the "maximum scale" of this transform.
             double A = at.getScaleX();       // m00
--- a/src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java	Wed Sep 25 13:40:36 2019 +0530
@@ -245,7 +245,8 @@
             widthScale = 1.0f;
         } else if ((at.getType() & (AffineTransform.TYPE_GENERAL_TRANSFORM  |
                                     AffineTransform.TYPE_GENERAL_SCALE)) != 0) {
-            widthScale = (float)Math.sqrt(at.getDeterminant());
+            // Determinant may be negative (flip), use its absolute value:
+            widthScale = (float)Math.sqrt(Math.abs(at.getDeterminant()));
         } else {
             // First calculate the "maximum scale" of this transform.
             double A = at.getScaleX();       // m00
--- a/src/java.desktop/share/classes/sun/java2d/marlin/Version.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/marlin/Version.java	Wed Sep 25 13:40:36 2019 +0530
@@ -27,7 +27,7 @@
 
 public final class Version {
 
-    private static final String VERSION = "marlin-0.9.1.2-Unsafe-OpenJDK";
+    private static final String VERSION = "marlin-0.9.1.3-Unsafe-OpenJDK";
 
     public static String getVersion() {
         return VERSION;
--- a/src/java.desktop/share/classes/sun/java2d/opengl/OGLContext.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/opengl/OGLContext.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
  * 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,26 +25,24 @@
 
 package sun.java2d.opengl;
 
+import java.lang.annotation.Native;
+
 import sun.java2d.pipe.BufferedContext;
 import sun.java2d.pipe.RenderBuffer;
 import sun.java2d.pipe.RenderQueue;
 import sun.java2d.pipe.hw.ContextCapabilities;
-import static sun.java2d.pipe.BufferedOpCodes.*;
-import static sun.java2d.pipe.hw.ContextCapabilities.*;
 
-import java.lang.annotation.Native;
+import static sun.java2d.pipe.BufferedOpCodes.INVALIDATE_CONTEXT;
+import static sun.java2d.pipe.BufferedOpCodes.SET_SCRATCH_SURFACE;
 
 /**
  * Note that the RenderQueue lock must be acquired before calling any of
  * the methods in this class.
  */
-public class OGLContext extends BufferedContext {
-
-    private final OGLGraphicsConfig config;
+final class OGLContext extends BufferedContext {
 
-    OGLContext(RenderQueue rq, OGLGraphicsConfig config) {
+    OGLContext(RenderQueue rq) {
         super(rq);
-        this.config = config;
     }
 
     /**
@@ -111,10 +109,6 @@
         rq.flushNow();
     }
 
-    public RenderQueue getRenderQueue() {
-        return OGLRenderQueue.getInstance();
-    }
-
     /**
      * Returns a string representing adapter id (vendor, renderer, version).
      * Must be called on the rendering thread.
@@ -123,38 +117,6 @@
      */
     static final native String getOGLIdString();
 
-    @Override
-    public void saveState() {
-        // assert rq.lock.isHeldByCurrentThread();
-
-        // reset all attributes of this and current contexts
-        invalidateContext();
-        invalidateCurrentContext();
-
-        setScratchSurface(config);
-
-        // save the state on the native level
-        rq.ensureCapacity(4);
-        buf.putInt(SAVE_STATE);
-        rq.flushNow();
-    }
-
-    @Override
-    public void restoreState() {
-        // assert rq.lock.isHeldByCurrentThread();
-
-        // reset all attributes of this and current contexts
-        invalidateContext();
-        invalidateCurrentContext();
-
-        setScratchSurface(config);
-
-        // restore the state on the native level
-        rq.ensureCapacity(4);
-        buf.putInt(RESTORE_STATE);
-        rq.flushNow();
-    }
-
     static class OGLContextCaps extends ContextCapabilities {
         /**
          * Indicates the presence of the GL_EXT_framebuffer_object extension.
--- a/src/java.desktop/share/classes/sun/java2d/opengl/OGLSurfaceData.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/opengl/OGLSurfaceData.java	Wed Sep 25 13:40:36 2019 +0530
@@ -27,6 +27,7 @@
 
 import java.awt.AlphaComposite;
 import java.awt.Composite;
+import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsEnvironment;
 import java.awt.Rectangle;
 import java.awt.Transparency;
@@ -578,16 +579,16 @@
      * (referenced by the pData parameter).  This method is invoked from
      * the native Dispose() method from the Disposer thread when the
      * Java-level OGLSurfaceData object is about to go away.  Note that we
-     * also pass a reference to the native GLX/WGLGraphicsConfigInfo
-     * (pConfigInfo) for the purposes of making a context current.
+     * also pass a reference to the OGLGraphicsConfig
+     * for the purposes of making a context current.
      */
-    static void dispose(long pData, long pConfigInfo) {
+    static void dispose(long pData, OGLGraphicsConfig gc) {
         OGLRenderQueue rq = OGLRenderQueue.getInstance();
         rq.lock();
         try {
             // make sure we have a current context before
             // disposing the native resources (e.g. texture object)
-            OGLContext.setScratchSurface(pConfigInfo);
+            OGLContext.setScratchSurface(gc);
 
             RenderBuffer buf = rq.getBuffer();
             rq.ensureCapacityAndAlignment(12, 4);
--- a/src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,16 +30,27 @@
 import java.awt.Composite;
 import java.awt.Paint;
 import java.awt.geom.AffineTransform;
-import sun.java2d.pipe.hw.AccelSurface;
+import java.lang.annotation.Native;
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
+
 import sun.java2d.InvalidPipeException;
 import sun.java2d.SunGraphics2D;
 import sun.java2d.loops.XORComposite;
-import static sun.java2d.pipe.BufferedOpCodes.*;
-import static sun.java2d.pipe.BufferedRenderPipe.BYTES_PER_SPAN;
+import sun.java2d.pipe.hw.AccelSurface;
 
-import java.lang.annotation.Native;
-import java.lang.ref.Reference;
-import java.lang.ref.WeakReference;
+import static sun.java2d.pipe.BufferedOpCodes.BEGIN_SHAPE_CLIP;
+import static sun.java2d.pipe.BufferedOpCodes.END_SHAPE_CLIP;
+import static sun.java2d.pipe.BufferedOpCodes.RESET_CLIP;
+import static sun.java2d.pipe.BufferedOpCodes.RESET_COMPOSITE;
+import static sun.java2d.pipe.BufferedOpCodes.RESET_TRANSFORM;
+import static sun.java2d.pipe.BufferedOpCodes.SET_ALPHA_COMPOSITE;
+import static sun.java2d.pipe.BufferedOpCodes.SET_RECT_CLIP;
+import static sun.java2d.pipe.BufferedOpCodes.SET_SHAPE_CLIP_SPANS;
+import static sun.java2d.pipe.BufferedOpCodes.SET_SURFACES;
+import static sun.java2d.pipe.BufferedOpCodes.SET_TRANSFORM;
+import static sun.java2d.pipe.BufferedOpCodes.SET_XOR_COMPOSITE;
+import static sun.java2d.pipe.BufferedRenderPipe.BYTES_PER_SPAN;
 
 /**
  * Base context class for managing state in a single-threaded rendering
@@ -77,8 +88,8 @@
      */
     @Native public static final int USE_MASK         = (1 << 1);
 
-    protected RenderQueue rq;
-    protected RenderBuffer buf;
+    private final RenderQueue rq;
+    private final RenderBuffer buf;
 
     /**
      * This is a reference to the most recently validated BufferedContext.  If
@@ -172,7 +183,7 @@
      * @throws InvalidPipeException if either src or dest surface is not valid
      * or lost
      */
-    public void validate(AccelSurface srcData, AccelSurface dstData,
+    private void validate(AccelSurface srcData, AccelSurface dstData,
                          Region clip, Composite comp,
                          AffineTransform xform,
                          Paint paint, SunGraphics2D sg2d, int flags)
@@ -310,21 +321,6 @@
         dstData.markDirty();
     }
 
-    /**
-     * Invalidates the surfaces associated with this context.  This is
-     * useful when the context is no longer needed, and we want to break
-     * the chain caused by these surface references.
-     *
-     * Note: must be called while the RenderQueue lock is held.
-     *
-     * @see RenderQueue#lock
-     * @see RenderQueue#unlock
-     */
-    private void invalidateSurfaces() {
-        validSrcDataRef.clear();
-        validDstDataRef.clear();
-    }
-
     private void setSurfaces(AccelSurface srcData,
                              AccelSurface dstData)
     {
@@ -433,12 +429,13 @@
      * @see RenderQueue#lock
      * @see RenderQueue#unlock
      */
-    public void invalidateContext() {
+    public final void invalidateContext() {
         resetTransform();
         resetComposite();
         resetClip();
         BufferedPaints.resetPaint(rq);
-        invalidateSurfaces();
+        validSrcDataRef.clear();
+        validDstDataRef.clear();
         validCompRef.clear();
         validClipRef.clear();
         validPaintRef.clear();
@@ -453,27 +450,7 @@
      * @return a render queue
      * @see RenderQueue
      */
-    public abstract RenderQueue getRenderQueue();
-
-    /**
-     * Saves the state of this context.
-     * It may reset the current context.
-     *
-     * Note: must be called while the RenderQueue lock is held.
-     *
-     * @see RenderQueue#lock
-     * @see RenderQueue#unlock
-     */
-    public abstract void saveState();
-
-    /**
-     * Restores the native state of this context.
-     * It may reset the current context.
-     *
-     * Note: must be called while the RenderQueue lock is held.
-     *
-     * @see RenderQueue#lock
-     * @see RenderQueue#unlock
-     */
-    public abstract void restoreState();
+    public final RenderQueue getRenderQueue() {
+        return rq;
+    }
 }
--- a/src/java.desktop/share/classes/sun/java2d/pipe/BufferedOpCodes.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/classes/sun/java2d/pipe/BufferedOpCodes.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
 
 import java.lang.annotation.Native;
 
-public class BufferedOpCodes {
+public final class BufferedOpCodes {
     // draw ops
     @Native public static final int DRAW_LINE            = 10;
     @Native public static final int DRAW_RECT            = 11;
@@ -74,8 +74,6 @@
     @Native public static final int INVALIDATE_CONTEXT   = 75;
     @Native public static final int SYNC                 = 76;
     @Native public static final int RESTORE_DEVICES      = 77;
-    @Native public static final int SAVE_STATE           = 78;
-    @Native public static final int RESTORE_STATE        = 79;
 
     // multibuffering ops
     @Native public static final int SWAP_BUFFERS         = 80;
--- a/src/java.desktop/share/native/common/java2d/opengl/OGLRenderQueue.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/native/common/java2d/opengl/OGLRenderQueue.c	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -502,31 +502,6 @@
                 dstOps = NULL;
             }
             break;
-        case sun_java2d_pipe_BufferedOpCodes_SAVE_STATE:
-            {
-                j2d_glPushAttrib(GL_ALL_ATTRIB_BITS);
-                j2d_glPushClientAttrib(GL_CLIENT_ALL_ATTRIB_BITS);
-                j2d_glMatrixMode(GL_MODELVIEW);
-                j2d_glPushMatrix();
-                j2d_glMatrixMode(GL_PROJECTION);
-                j2d_glPushMatrix();
-                j2d_glMatrixMode(GL_TEXTURE);
-                j2d_glPushMatrix();
-            }
-            break;
-
-        case sun_java2d_pipe_BufferedOpCodes_RESTORE_STATE:
-            {
-                j2d_glPopAttrib();
-                j2d_glPopClientAttrib();
-                j2d_glMatrixMode(GL_MODELVIEW);
-                j2d_glPopMatrix();
-                j2d_glMatrixMode(GL_PROJECTION);
-                j2d_glPopMatrix();
-                j2d_glMatrixMode(GL_TEXTURE);
-                j2d_glPopMatrix();
-            }
-            break;
         case sun_java2d_pipe_BufferedOpCodes_SYNC:
             {
                 sync = JNI_TRUE;
--- a/src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.c	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * 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,7 +37,6 @@
  * The following methods are implemented in the windowing system (i.e. GLX
  * and WGL) source files.
  */
-extern jlong OGLSD_GetNativeConfigInfo(OGLSDOps *oglsdo);
 extern jboolean OGLSD_InitOGLWindow(JNIEnv *env, OGLSDOps *oglsdo);
 extern void OGLSD_DestroyOGLSurface(JNIEnv *env, OGLSDOps *oglsdo);
 
@@ -593,11 +592,14 @@
 OGLSD_Dispose(JNIEnv *env, SurfaceDataOps *ops)
 {
     OGLSDOps *oglsdo = (OGLSDOps *)ops;
-    jlong pConfigInfo = OGLSD_GetNativeConfigInfo(oglsdo);
+    jobject graphicsConfig = oglsdo->graphicsConfig;
 
     JNU_CallStaticMethodByName(env, NULL, "sun/java2d/opengl/OGLSurfaceData",
-                               "dispose", "(JJ)V",
-                               ptr_to_jlong(ops), pConfigInfo);
+                               "dispose",
+                               "(JLsun/java2d/opengl/OGLGraphicsConfig;)V",
+                               ptr_to_jlong(ops), graphicsConfig);
+    (*env)->DeleteGlobalRef(env, graphicsConfig);
+    oglsdo->graphicsConfig = NULL;
 }
 
 /**
--- a/src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.h	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.h	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -85,6 +85,9 @@
  * Pointer to native-specific (GLX, WGL, etc.) SurfaceData info, such as the
  * native Drawable handle and GraphicsConfig data.
  *
+ *     jobject graphicsConfig;;
+ * Strong reference to the OGLGraphicsConfig used by this OGLSurfaceData.
+ *
  *     jint drawableType;
  * The surface type; can be any one of the surface type constants defined
  * below (OGLSD_WINDOW, OGLSD_TEXTURE, etc).
@@ -162,6 +165,7 @@
 struct _OGLSDOps {
     SurfaceDataOps               sdOps;
     void                         *privOps;
+    jobject                      graphicsConfig;
     jint                         drawableType;
     GLenum                       activeBuffer;
     jboolean                     isOpaque;
--- a/src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java	Wed Sep 25 13:40:36 2019 +0530
@@ -2558,14 +2558,16 @@
                  //System.out.println("XkbNewKeyboard:"+(xke.get_new_kbd()));
                  break;
             case XConstants.XkbMapNotify :
-                 //TODO: provide a simple unit test.
-                 XlibWrapper.XkbGetUpdatedMap(getDisplay(),
-                                              XConstants.XkbKeyTypesMask    |
-                                              XConstants.XkbKeySymsMask     |
-                                              XConstants.XkbModifierMapMask |
-                                              XConstants.XkbVirtualModsMask,
-                                              awt_XKBDescPtr);
-                 //System.out.println("XkbMap:"+(xke.get_map()));
+                 if (awt_XKBDescPtr != 0) {
+                    //TODO: provide a simple unit test.
+                    XlibWrapper.XkbGetUpdatedMap(getDisplay(),
+                                                 XConstants.XkbKeyTypesMask    |
+                                                 XConstants.XkbKeySymsMask     |
+                                                 XConstants.XkbModifierMapMask |
+                                                 XConstants.XkbVirtualModsMask,
+                                                 awt_XKBDescPtr);
+                 }
+                //System.out.println("XkbMap:"+(xke.get_map()));
                  break;
             case XConstants.XkbStateNotify :
                  // May use it later e.g. to obtain an effective group etc.
--- a/src/java.desktop/unix/classes/sun/java2d/opengl/GLXGraphicsConfig.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/classes/sun/java2d/opengl/GLXGraphicsConfig.java	Wed Sep 25 13:40:36 2019 +0530
@@ -71,7 +71,7 @@
     private BufferCapabilities bufferCaps;
     private long pConfigInfo;
     private ContextCapabilities oglCaps;
-    private OGLContext context;
+    private final OGLContext context;
 
     private static native long getGLXConfigInfo(int screennum, int visualnum);
     private static native int getOGLCapabilities(long configInfo);
@@ -85,7 +85,7 @@
         pConfigInfo = configInfo;
         initConfig(getAData(), configInfo);
         this.oglCaps = oglCaps;
-        context = new OGLContext(OGLRenderQueue.getInstance(), this);
+        context = new OGLContext(OGLRenderQueue.getInstance());
     }
 
     @Override
--- a/src/java.desktop/unix/classes/sun/java2d/opengl/GLXSurfaceData.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/classes/sun/java2d/opengl/GLXSurfaceData.java	Wed Sep 25 13:40:36 2019 +0530
@@ -40,7 +40,8 @@
     protected X11ComponentPeer peer;
     private GLXGraphicsConfig graphicsConfig;
 
-    private native void initOps(X11ComponentPeer peer, long aData);
+    private native void initOps(OGLGraphicsConfig gc, X11ComponentPeer peer,
+                                long aData);
 
     protected GLXSurfaceData(X11ComponentPeer peer, GLXGraphicsConfig gc,
                              ColorModel cm, int type)
@@ -48,7 +49,7 @@
         super(gc, cm, type);
         this.peer = peer;
         this.graphicsConfig = gc;
-        initOps(peer, graphicsConfig.getAData());
+        initOps(gc, peer, graphicsConfig.getAData());
     }
 
     public GraphicsConfiguration getDeviceConfiguration() {
--- a/src/java.desktop/unix/native/common/awt/X11Color.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/native/common/awt/X11Color.c	Wed Sep 25 13:40:36 2019 +0530
@@ -402,6 +402,9 @@
     pVI = &awt_data->awt_visInfo;
     awt_data->awt_num_colors = awt_data->awt_visInfo.colormap_size;
     awt_data->awtImage = (awtImageData *) calloc (1, sizeof (awtImageData));
+    if (awt_data->awtImage == NULL) {
+        return 0;
+    }
 
     pPFV = XListPixmapFormats(dpy, &numpfv);
     if (pPFV) {
@@ -572,12 +575,17 @@
     }
 
     if (awt_data->awt_num_colors > paletteSize) {
-        free (awt_data->awtImage);
+        free(awt_data->awtImage);
         return 0;
     }
 
     /* Allocate ColorData structure */
     awt_data->color_data = ZALLOC (_ColorData);
+    if (awt_data->color_data == NULL) {
+        free(awt_data->awtImage);
+        return 0;
+    }
+
     awt_data->color_data->screendata = 1; /* This ColorData struct corresponds
                                              to some AWT screen/visual, so when
                                              any IndexColorModel using this
@@ -594,6 +602,11 @@
 
     awt_data->color_data->awt_Colors =
         (ColorEntry *)calloc(paletteSize, sizeof (ColorEntry));
+    if (awt_data->color_data->awt_Colors == NULL) {
+        free(awt_data->awtImage);
+        free(awt_data->color_data);
+        return 0;
+    }
 
     XQueryColors(dpy, cm, cols, awt_data->awt_num_colors);
     for (i = 0; i < awt_data->awt_num_colors; i++) {
@@ -667,6 +680,11 @@
 
         awt_data->color_data->img_grays =
             (unsigned char *)calloc(256, sizeof(unsigned char));
+        if ( awt_data->color_data->img_grays == NULL) {
+            free(awt_data->awtImage);
+            free(awt_data->color_data);
+            return 0;
+        }
         for (g = 0; g < 256; g++) {
             int mindist, besti;
             int d;
@@ -810,6 +828,11 @@
     awt_data->color_data->img_clr_tbl =
         (unsigned char *)calloc(LOOKUPSIZE * LOOKUPSIZE * LOOKUPSIZE,
                                 sizeof(unsigned char));
+    if (awt_data->color_data->img_clr_tbl == NULL) {
+        free(awt_data->awtImage);
+        free(awt_data->color_data);
+        return 0;
+    }
     img_makePalette(cmapsize, k, LOOKUPSIZE, 50, 250,
                     allocatedColorsNum, TRUE, reds, greens, blues,
                     awt_data->color_data->img_clr_tbl);
@@ -858,6 +881,12 @@
     awt_data->color_data->awt_icmLUT2Colors =
         (unsigned char *)calloc(paletteSize, sizeof (unsigned char));
     awt_data->color_data->awt_icmLUT = (int *)calloc(paletteSize, sizeof(int));
+    if (awt_data->color_data->awt_icmLUT2Colors == NULL || awt_data->color_data->awt_icmLUT == NULL) {
+        free(awt_data->awtImage);
+        free(awt_data->color_data);
+        return 0;
+    }
+
     for (i=0; i < paletteSize; i++) {
         /* Keep the mapping between this lut and the actual cmap */
         awt_data->color_data->awt_icmLUT2Colors
--- a/src/java.desktop/unix/native/common/awt/fontpath.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/native/common/awt/fontpath.c	Wed Sep 25 13:40:36 2019 +0530
@@ -341,6 +341,9 @@
      * cost us a little wasted effort upstream.
      */
     fontdirs = (char**)calloc(nPaths+1, sizeof(char*));
+    if (fontdirs == NULL) {
+        return NULL;
+    }
     pos = 0;
     for (i=0; i < nPaths; i++) {
         if (x11Path[i][0] != '/') {
@@ -420,6 +423,9 @@
     }
     totalLen = len1+len2+len3;
     fontdirs = (char**)calloc(totalLen, sizeof(char*));
+    if (fontdirs == NULL) {
+        return NULL;
+    }
 
     for (i=0; i < len1; i++) {
         if (noType1 && strstr(p1[i], "Type1") != NULL) {
@@ -816,6 +822,10 @@
         fontdirs = NULL;
     } else {
         fontdirs = (char**)calloc(fontSet->nfont+1, sizeof(char*));
+        if (fontdirs == NULL) {
+            (*FcFontSetDestroy)(fontSet);
+            goto cleanup;
+        }
         for (f=0; f < fontSet->nfont; f++) {
             FcChar8 *file;
             FcChar8 *dir;
@@ -840,6 +850,7 @@
         (*FcFontSetDestroy)(fontSet);
     }
 
+cleanup:
     /* Free memory and close the ".so" */
     (*FcPatternDestroy)(pattern);
     closeFontConfig(libfontconfig, JNI_TRUE);
--- a/src/java.desktop/unix/native/common/java2d/opengl/GLXSurfaceData.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/native/common/java2d/opengl/GLXSurfaceData.c	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,23 +54,32 @@
 
 JNIEXPORT void JNICALL
 Java_sun_java2d_opengl_GLXSurfaceData_initOps(JNIEnv *env, jobject glxsd,
+                                              jobject gc,
                                               jobject peer, jlong aData)
 {
 #ifndef HEADLESS
-    GLXSDOps *glxsdo = (GLXSDOps *)malloc(sizeof(GLXSDOps));
-
-    if (glxsdo == NULL) {
-        JNU_ThrowOutOfMemoryError(env, "creating native GLX ops");
+    gc = (*env)->NewGlobalRef(env, gc);
+    if (gc == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
         return;
     }
 
     OGLSDOps *oglsdo = (OGLSDOps *)SurfaceData_InitOps(env, glxsd,
                                                        sizeof(OGLSDOps));
     if (oglsdo == NULL) {
-        free(glxsdo);
+        (*env)->DeleteGlobalRef(env, gc);
         JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
         return;
     }
+    // later the graphicsConfig will be used for deallocation of oglsdo
+    oglsdo->graphicsConfig = gc;
+
+    GLXSDOps *glxsdo = (GLXSDOps *)malloc(sizeof(GLXSDOps));
+
+    if (glxsdo == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "creating native GLX ops");
+        return;
+    }
 
     J2dTraceLn(J2D_TRACE_INFO, "GLXSurfaceData_initOps");
 
@@ -153,39 +162,6 @@
 }
 
 /**
- * Returns a pointer (as a jlong) to the native GLXGraphicsConfigInfo
- * associated with the given OGLSDOps.  This method can be called from
- * shared code to retrieve the native GraphicsConfig data in a platform-
- * independent manner.
- */
-jlong
-OGLSD_GetNativeConfigInfo(OGLSDOps *oglsdo)
-{
-    GLXSDOps *glxsdo;
-
-    if (oglsdo == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR,
-                      "OGLSD_GetNativeConfigInfo: ops are null");
-        return 0L;
-    }
-
-    glxsdo = (GLXSDOps *)oglsdo->privOps;
-    if (glxsdo == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR,
-                      "OGLSD_GetNativeConfigInfo: glx ops are null");
-        return 0L;
-    }
-
-    if (glxsdo->configData == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR,
-                      "OGLSD_GetNativeConfigInfo: config data is null");
-        return 0L;
-    }
-
-    return ptr_to_jlong(glxsdo->configData->glxInfo);
-}
-
-/**
  * Makes the given GraphicsConfig's context current to its associated
  * "scratch" surface.  If there is a problem making the context current,
  * this method will return NULL; otherwise, returns a pointer to the
--- a/src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.c	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,6 +66,9 @@
     if (!n_libs) {
         n_libs = sizeof(gtk_libs) / sizeof(GtkLib);
         load_order = calloc(n_libs + 1, sizeof(GtkLib *));
+        if (load_order == NULL) {
+          return NULL;
+        }
     }
     int i, first = 0;
     for (i = 0; i < n_libs; i++) {
@@ -85,6 +88,7 @@
 
 static GtkLib* get_loaded() {
     GtkLib** libs = get_libs_order(GTK_ANY);
+    if (libs == NULL) return NULL;
     while(!gtk && *libs) {
         GtkLib* lib = *libs++;
         if (lib->check(lib->vname, /* load = */FALSE)) {
@@ -111,7 +115,7 @@
             }
         } else {
             GtkLib** libs = get_libs_order(version);
-            while (!gtk && *libs) {
+            while (!gtk && libs && *libs) {
                 lib = *libs++;
                 if (version == GTK_ANY || lib->version == version) {
                     if (verbose) {
@@ -141,6 +145,7 @@
 
 static gboolean check_version(GtkVersion version) {
     GtkLib** libs = get_libs_order(version);
+    if (libs == NULL) return FALSE;
     while (*libs) {
         GtkLib* lib = *libs++;
         if (lib->check(lib->vname, /* load = */TRUE)) {
--- a/src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c	Wed Sep 25 13:40:36 2019 +0530
@@ -218,7 +218,11 @@
      XColor *colors ;
 
      ncolors = (unsigned) src_vis->map_entries ;
-     *src_colors = colors = (XColor *)malloc(ncolors * sizeof(XColor) ) ;
+/* JDK modification.
+ * use calloc instead of malloc to initialize allocated memory
+ *   *src_colors = colors = (XColor *)malloc(ncolors * sizeof(XColor) ) ;
+ */
+     *src_colors = colors = (XColor *)calloc(ncolors, sizeof(XColor));
 
      if(src_vis->class != TrueColor && src_vis->class != DirectColor)
      {
--- a/src/java.desktop/windows/classes/sun/java2d/d3d/D3DContext.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/classes/sun/java2d/d3d/D3DContext.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
  * 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,19 +26,20 @@
 package sun.java2d.d3d;
 
 import java.lang.annotation.Native;
+
 import sun.java2d.pipe.BufferedContext;
 import sun.java2d.pipe.RenderBuffer;
 import sun.java2d.pipe.RenderQueue;
 import sun.java2d.pipe.hw.ContextCapabilities;
-import static sun.java2d.pipe.BufferedOpCodes.*;
-import static sun.java2d.pipe.hw.ContextCapabilities.*;
-import static sun.java2d.d3d.D3DContext.D3DContextCaps.*;
+
+import static sun.java2d.pipe.BufferedOpCodes.INVALIDATE_CONTEXT;
+import static sun.java2d.pipe.BufferedOpCodes.SET_SCRATCH_SURFACE;
 
 /**
  * Note that the RenderQueue lock must be acquired before calling any of
  * the methods in this class.
  */
-class D3DContext extends BufferedContext {
+final class D3DContext extends BufferedContext {
 
     private final D3DGraphicsDevice device;
 
@@ -101,42 +102,6 @@
         buf.putInt(d3dc.getDevice().getScreen());
     }
 
-    public RenderQueue getRenderQueue() {
-        return D3DRenderQueue.getInstance();
-    }
-
-    @Override
-    public void saveState() {
-        // assert rq.lock.isHeldByCurrentThread();
-
-        // reset all attributes of this and current contexts
-        invalidateContext();
-        invalidateCurrentContext();
-
-        setScratchSurface(this);
-
-        // save the state on the native level
-        rq.ensureCapacity(4);
-        buf.putInt(SAVE_STATE);
-        rq.flushNow();
-    }
-
-    @Override
-    public void restoreState() {
-        // assert rq.lock.isHeldByCurrentThread();
-
-        // reset all attributes of this and current contexts
-        invalidateContext();
-        invalidateCurrentContext();
-
-        setScratchSurface(this);
-
-        // restore the state on the native level
-        rq.ensureCapacity(4);
-        buf.putInt(RESTORE_STATE);
-        rq.flushNow();
-    }
-
     D3DGraphicsDevice getDevice() {
         return device;
     }
--- a/src/java.desktop/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java	Wed Sep 25 13:40:36 2019 +0530
@@ -71,7 +71,7 @@
     private BufferCapabilities bufferCaps;
     private long pConfigInfo;
     private ContextCapabilities oglCaps;
-    private OGLContext context;
+    private final OGLContext context;
     private Object disposerReferent = new Object();
 
     public static native int getDefaultPixFmt(int screennum);
@@ -90,7 +90,7 @@
         super(device, visualnum);
         this.pConfigInfo = configInfo;
         this.oglCaps = oglCaps;
-        context = new OGLContext(OGLRenderQueue.getInstance(), this);
+        context = new OGLContext(OGLRenderQueue.getInstance());
 
         // add a record to the Disposer so that we destroy the native
         // WGLGraphicsConfigInfo data when this object goes away
--- a/src/java.desktop/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	Wed Sep 25 13:40:36 2019 +0530
@@ -46,8 +46,8 @@
     protected double scaleX = 1;
     protected double scaleY = 1;
 
-    private native void initOps(long pConfigInfo, WComponentPeer peer,
-                                long hwnd);
+    private native void initOps(OGLGraphicsConfig gc, long pConfigInfo,
+                                WComponentPeer peer, long hwnd);
 
     protected WGLSurfaceData(WComponentPeer peer, WGLGraphicsConfig gc,
                              ColorModel cm, int type)
@@ -62,7 +62,7 @@
         long pConfigInfo = gc.getNativeConfigInfo();
         long hwnd = peer != null ? peer.getHWnd() : 0L;
 
-        initOps(pConfigInfo, peer, hwnd);
+        initOps(gc, pConfigInfo, peer, hwnd);
     }
 
     @Override
--- a/src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp	Wed Sep 25 13:40:36 2019 +0530
@@ -24,7 +24,6 @@
  */
 #include "systemScale.h"
 #include <d2d1.h>
-#pragma comment(lib, "d2d1")
 #include <jdk_util.h>
 #ifndef MDT_EFFECTIVE_DPI
 #define MDT_EFFECTIVE_DPI 0
@@ -53,6 +52,9 @@
         return;
     }
 
+    typedef HRESULT(WINAPI D2D1CreateFactoryFunc)
+                   (D2D1_FACTORY_TYPE, REFIID,
+                    CONST D2D1_FACTORY_OPTIONS*, ID2D1Factory**);
     typedef HRESULT(WINAPI GetDpiForMonitorFunc)(HMONITOR, int, UINT*, UINT*);
     static HMODULE hLibSHCoreDll = NULL;
     static GetDpiForMonitorFunc *lpGetDpiForMonitor = NULL;
@@ -73,12 +75,27 @@
             *dpiY = static_cast<float>(y);
         }
     } else {
-        ID2D1Factory* m_pDirect2dFactory;
-        HRESULT res = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED,
-                                        &m_pDirect2dFactory);
-        if (res == S_OK) {
-            m_pDirect2dFactory->GetDesktopDpi(dpiX, dpiY);
-            m_pDirect2dFactory->Release();
+        static HMODULE d2dDll = NULL;
+        static BOOL loadAttempted = FALSE;
+        static D2D1CreateFactoryFunc *lpD2D1CreateFactory = NULL;
+        if (!loadAttempted && d2dDll == NULL) {
+            loadAttempted = TRUE;
+            d2dDll = JDK_LoadSystemLibrary("d2d1.dll");
+        }
+        if (d2dDll != NULL && lpD2D1CreateFactory == NULL) {
+            lpD2D1CreateFactory = (D2D1CreateFactoryFunc*)GetProcAddress(
+                    d2dDll, "D2D1CreateFactory");
+        }
+        if (lpD2D1CreateFactory != NULL) {
+            ID2D1Factory* m_pDirect2dFactory;
+            HRESULT res = lpD2D1CreateFactory
+                          (D2D1_FACTORY_TYPE_SINGLE_THREADED,
+                           __uuidof(ID2D1Factory), NULL,
+                           &m_pDirect2dFactory);
+            if (res == S_OK) {
+                m_pDirect2dFactory->GetDesktopDpi(dpiX, dpiY);
+                m_pDirect2dFactory->Release();
+            }
         }
     }
     return;
--- a/src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.cpp	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.cpp	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -685,64 +685,6 @@
     return res;
 }
 
-HRESULT
-D3DContext::SaveState()
-{
-    HRESULT res;
-
-    RETURN_STATUS_IF_NULL(pd3dDevice, S_OK);
-
-    J2dTraceLn(J2D_TRACE_INFO, "D3DContext::SaveState");
-
-    FlushVertexQueue();
-    UpdateState(STATE_CHANGE);
-
-    if (pStateBlock != NULL) {
-        J2dTraceLn(J2D_TRACE_WARNING,
-                   "D3DContext::SaveState: existing state block!");
-        SAFE_RELEASE(pStateBlock);
-    }
-
-    if (SUCCEEDED(res =
-            pd3dDevice->CreateStateBlock(D3DSBT_ALL, &pStateBlock)))
-    {
-        J2dTraceLn(J2D_TRACE_VERBOSE, "  created state block");
-    } else {
-        J2dTraceLn(J2D_TRACE_WARNING,
-                   "D3DContext::SaveState: failed to create state block");
-    }
-    ZeroMemory(lastTexture, sizeof(lastTexture));
-
-    return res;
-}
-
-HRESULT
-D3DContext::RestoreState()
-{
-    HRESULT res = S_OK;
-
-    J2dTraceLn(J2D_TRACE_INFO, "D3DContext::RestoreState");
-
-    FlushVertexQueue();
-    UpdateState(STATE_CHANGE);
-
-    if (pStateBlock != NULL) {
-        if (SUCCEEDED(res = pStateBlock->Apply())) {
-            J2dTraceLn(J2D_TRACE_VERBOSE, "  restored device state");
-        } else {
-            J2dTraceLn(J2D_TRACE_WARNING,
-                       "D3DContext::RestoreState: failed to restore state");
-        }
-        SAFE_RELEASE(pStateBlock);
-    } else {
-        J2dTraceLn(J2D_TRACE_WARNING,
-                   "D3DContext::RestoreState: empty state block!");
-    }
-    ZeroMemory(lastTexture, sizeof(lastTexture));
-
-    return res;
-}
-
 #define POINT_FILTER_CAP (D3DPTFILTERCAPS_MAGFPOINT|D3DPTFILTERCAPS_MINFPOINT)
 #define LINEAR_FILTER_CAP (D3DPTFILTERCAPS_MAGFLINEAR|D3DPTFILTERCAPS_MINFLINEAR)
 
--- a/src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.h	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.h	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -133,13 +133,6 @@
     HRESULT ResetContext();
     HRESULT CheckAndResetDevice();
 
-    // saves the state of the D3D device in a state block, resets
-    // context's state to STATE_CHANGE
-    HRESULT SaveState();
-    // restores the state of the D3D device from existing state block,
-    // resets context's state to STATE_CHANGE
-    HRESULT RestoreState();
-
     void    ReleaseContextResources();
     void    ReleaseDefPoolResources();
     virtual ~D3DContext();
--- a/src/java.desktop/windows/native/libawt/java2d/d3d/D3DRenderQueue.cpp	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/native/libawt/java2d/d3d/D3DRenderQueue.cpp	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -677,23 +677,6 @@
                 }
             }
             break;
-
-        case sun_java2d_pipe_BufferedOpCodes_SAVE_STATE:
-            {
-                CONTINUE_IF_NULL(d3dc);
-
-                res = d3dc->SaveState();
-            }
-            break;
-
-        case sun_java2d_pipe_BufferedOpCodes_RESTORE_STATE:
-            {
-                CONTINUE_IF_NULL(d3dc);
-
-                res = d3dc->RestoreState();
-            }
-            break;
-
         // multibuffering ops
         case sun_java2d_pipe_BufferedOpCodes_SWAP_BUFFERS:
             {
--- a/src/java.desktop/windows/native/libawt/java2d/opengl/WGLSurfaceData.c	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/native/libawt/java2d/opengl/WGLSurfaceData.c	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,11 +58,25 @@
 
 JNIEXPORT void JNICALL
 Java_sun_java2d_opengl_WGLSurfaceData_initOps(JNIEnv *env, jobject wglsd,
-                                              jlong pConfigInfo,
+                                              jobject gc, jlong pConfigInfo,
                                               jobject peer, jlong hwnd)
 {
+    gc = (*env)->NewGlobalRef(env, gc);
+    if (gc == NULL) {
+        JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
+        return;
+    }
+
     OGLSDOps *oglsdo = (OGLSDOps *)SurfaceData_InitOps(env, wglsd,
                                                        sizeof(OGLSDOps));
+    if (oglsdo == NULL) {
+        (*env)->DeleteGlobalRef(env, gc);
+        JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
+        return;
+    }
+    // later the graphicsConfig will be used for deallocation of oglsdo
+    oglsdo->graphicsConfig = gc;
+
     WGLSDOps *wglsdo = (WGLSDOps *)malloc(sizeof(WGLSDOps));
 
     J2dTraceLn(J2D_TRACE_INFO, "WGLSurfaceData_initOps");
@@ -145,33 +159,6 @@
 }
 
 /**
- * Returns a pointer (as a jlong) to the native WGLGraphicsConfigInfo
- * associated with the given OGLSDOps.  This method can be called from
- * shared code to retrieve the native GraphicsConfig data in a platform-
- * independent manner.
- */
-jlong
-OGLSD_GetNativeConfigInfo(OGLSDOps *oglsdo)
-{
-    WGLSDOps *wglsdo;
-
-    if (oglsdo == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR,
-                      "OGLSD_GetNativeConfigInfo: ops are null");
-        return 0L;
-    }
-
-    wglsdo = (WGLSDOps *)oglsdo->privOps;
-    if (wglsdo == NULL) {
-        J2dRlsTraceLn(J2D_TRACE_ERROR,
-                      "OGLSD_GetNativeConfigInfo: wgl ops are null");
-        return 0L;
-    }
-
-    return ptr_to_jlong(wglsdo->configInfo);
-}
-
-/**
  * Makes the given GraphicsConfig's context current to its associated
  * "scratch" surface.  If there is a problem making the context current,
  * this method will return NULL; otherwise, returns a pointer to the
--- a/src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp	Wed Sep 25 13:40:36 2019 +0530
@@ -49,8 +49,6 @@
 #include "dither.h"
 #include "img_util_md.h"
 #include "Devices.h"
-#include <d2d1.h>
-#pragma comment(lib, "d2d1")
 #include "systemScale.h"
 
 uns_ordered_dither_array img_oda_alpha;
--- a/src/jdk.accessibility/windows/native/libwindowsaccessbridge/WinAccessBridge.cpp	Mon Sep 23 16:49:09 2019 +0200
+++ b/src/jdk.accessibility/windows/native/libwindowsaccessbridge/WinAccessBridge.cpp	Wed Sep 25 13:40:36 2019 +0530
@@ -296,7 +296,7 @@
 
     PrintDebugString("[INFO]:   finished deleting eventHandler, messageQueue, and javaVMs");
     PrintDebugString("[INFO]: GOODBYE CRUEL WORLD...");
-
+    finalizeFileLogger();
     DestroyWindow(theDialogWindow);
 }
 
--- a/test/jdk/ProblemList.txt	Mon Sep 23 16:49:09 2019 +0200
+++ b/test/jdk/ProblemList.txt	Wed Sep 25 13:40:36 2019 +0530
@@ -768,7 +768,6 @@
 javax/swing/JFileChooser/8021253/bug8021253.java 8169954 windows-all,linux-all,macosx-all
 javax/swing/JFileChooser/8062561/bug8062561.java 8196466 linux-all,macosx-all
 javax/swing/JInternalFrame/Test6325652.java 8224977 macosx-all
-javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java 8194944 macosx-all
 javax/swing/JLabel/6596966/bug6596966.java 8040914 macosx-all
 javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
 javax/swing/JPopupMenu/4966112/bug4966112.java 8064915 macosx-all
--- a/test/jdk/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/test/jdk/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * 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,12 +24,13 @@
 /*
  * @test
  * @key headful
- * @bug 8145896
+ * @bug 8145896 8194944
  * @summary JInternalFrame setMaximum before adding to desktop throws null pointer exception
  * @library ../../regtesthelpers
  * @build Util
  * @run main TestJInternalFrameMaximize
  */
+
 import java.awt.Point;
 import java.awt.Robot;
 import java.awt.event.ActionEvent;
@@ -55,18 +56,27 @@
     private static JMenuItem menuItem;
     private static Robot robot;
     private static volatile String errorMessage = "";
+    private static volatile boolean isFrameShowing;
 
     public static void main(String[] args) throws Exception {
         robot = new Robot();
+        robot.setAutoDelay(100);
         UIManager.LookAndFeelInfo[] lookAndFeelArray
                 = UIManager.getInstalledLookAndFeels();
         for (UIManager.LookAndFeelInfo lookAndFeelItem : lookAndFeelArray) {
-            String lookAndFeelString = lookAndFeelItem.getClassName();
-            if (tryLookAndFeel(lookAndFeelString)) {
-                createUI();
+            try {
+                String lookAndFeelString = lookAndFeelItem.getClassName();
+                if (tryLookAndFeel(lookAndFeelString)) {
+                    createUI();
+                    robot.waitForIdle();
+                    blockTillDisplayed(frame);
+                    executeTest();
+                    robot.delay(1000);
+                }
+            } finally {
+                frame.dispose();
+                isFrameShowing = false;
                 robot.waitForIdle();
-                executeTest();
-                robot.delay(1000);
             }
         }
         if (!"".equals(errorMessage)) {
@@ -113,8 +123,6 @@
                 } catch (PropertyVetoException ex) {
                 } catch (RuntimeException ex) {
                     errorMessage = "Test Failed";
-                } finally {
-                    frame.dispose();
                 }
             });
             menu.add(menuItem);
@@ -124,8 +132,21 @@
         });
     }
 
+    private static void blockTillDisplayed(JFrame frame) throws Exception {
+        while (!isFrameShowing) {
+            try {
+                SwingUtilities.invokeAndWait(()-> isFrameShowing = frame.isShowing());
+                if (!isFrameShowing) {
+                    Thread.sleep(1000);
+                }
+            } catch (InterruptedException ex) {
+            } catch (Exception ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
     private static void executeTest() throws Exception {
-
         Point point = Util.getCenterPoint(menu);
         performMouseOperations(point);
         point = Util.getCenterPoint(menuItem);
--- a/test/jdk/javax/swing/plaf/metal/MetalIcons/MetalHiDPIIconsTest.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/test/jdk/javax/swing/plaf/metal/MetalIcons/MetalHiDPIIconsTest.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * 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 8160986 8174845 8176883
+ * @bug 8160986 8174845 8176883 8165828
  * @summary Bad rendering of Swing UI controls with Metal L&F on HiDPI display
  * @run main/manual MetalHiDPIIconsTest
  */
@@ -50,7 +50,7 @@
             + "Verify that icons are painted smoothly for standard Swing UI controls.\n\n"
             + "If the display does not support HiDPI mode press PASS.\n\n"
             + "1. Run the SwingSet2 demo on HiDPI Display.\n"
-            + "2. Select Metal Look and Feel\n"
+            + "2. Select Java Look and Feel. It is equivalent to Metal Look And Feel\n"
             + "3. Check that the icons are painted smoothly on Swing UI controls like:\n"
             + "  - JRadioButton\n"
             + "  - JCheckBox\n"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/java2d/marlin/FlipBitTest.java	Wed Sep 25 13:40:36 2019 +0530
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Ellipse2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import javax.imageio.ImageIO;
+
+
+/**
+ * Tests calculating user space line with a negative determinant (flip).
+ *
+ * @test
+ * @summary verify that flipped transformed lines are properly rasterized
+ * @bug 8230728
+ */
+public class FlipBitTest {
+
+    static final boolean SAVE_IMAGE = false;
+
+    public static void main(final String[] args) {
+
+        final int size = 100;
+
+        // First display which renderer is tested:
+        // JDK9 only:
+        System.setProperty("sun.java2d.renderer.verbose", "true");
+
+        System.out.println("FlipBitTest: size = " + size);
+
+        final BufferedImage image = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB);
+
+        final Graphics2D g2d = (Graphics2D) image.getGraphics();
+        try {
+            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+            g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+            g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
+
+            final AffineTransform at = new AffineTransform();
+            at.setToScale(1, -1.01);
+            g2d.setTransform(at);
+
+            g2d.translate(0, -image.getHeight());
+            g2d.setPaint(Color.WHITE);
+            g2d.fill(new Rectangle(image.getWidth(), image.getHeight()));
+
+            g2d.setPaint(Color.BLACK);
+            g2d.setStroke(new BasicStroke(0.1f));
+            g2d.draw(new Ellipse2D.Double(25, 25, 50, 50));
+
+            if (SAVE_IMAGE) {
+                try {
+                    final File file = new File("FlipBitTest.png");
+
+                    System.out.println("Writing file: " + file.getAbsolutePath());
+                    ImageIO.write(image, "PNG", file);
+                } catch (IOException ex) {
+                    ex.printStackTrace();
+                }
+            }
+
+            boolean nonWhitePixelFound = false;
+            for (int x = 0; x < image.getWidth(); ++x) {
+                if (image.getRGB(x, 50) != Color.WHITE.getRGB()) {
+                    nonWhitePixelFound = true;
+                    break;
+                }
+            }
+            if (!nonWhitePixelFound) {
+                throw new IllegalStateException("The ellipse was not drawn");
+            }
+        } finally {
+            g2d.dispose();
+        }
+    }
+}
--- a/test/jdk/sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java	Mon Sep 23 16:49:09 2019 +0200
+++ b/test/jdk/sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java	Wed Sep 25 13:40:36 2019 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,6 @@
 import java.util.HashSet;
 import sun.java2d.DestSurfaceProvider;
 import sun.java2d.Surface;
-import sun.java2d.pipe.BufferedContext;
 import sun.java2d.pipe.RenderQueue;
 import sun.java2d.pipe.hw.AccelGraphicsConfig;
 import sun.java2d.pipe.hw.AccelSurface;
@@ -161,8 +160,6 @@
         AccelGraphicsConfig agc = (AccelGraphicsConfig) gc;
         printAGC(agc);
 
-        testContext(agc);
-
         VolatileImage vi = gc.createCompatibleVolatileImage(10, 10);
         vi.validate(gc);
         if (vi instanceof DestSurfaceProvider) {
@@ -250,22 +247,6 @@
         }
     }
 
-    private static void testContext(final AccelGraphicsConfig agc) {
-        BufferedContext c = agc.getContext();
-
-        RenderQueue rq = c.getRenderQueue();
-        rq.lock();
-        try {
-            c.saveState();
-            rq.flushNow();
-            c.restoreState();
-            rq.flushNow();
-            System.out.println("Passed: Save/Restore");
-        } finally {
-            rq.unlock();
-        }
-    }
-
     private static void testForNPEDuringCreation(AccelGraphicsConfig agc) {
         int iterations = 100;
         HashSet<VolatileImage> vis = new HashSet<VolatileImage>();
--- a/test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java	Mon Sep 23 16:49:09 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2007, 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
- * @key headful
- * @bug 6764257 8198613
- * @summary Tests that the color is reset properly after save/restore context
- * @author Dmitri.Trembovetski@sun.com: area=Graphics
- * @modules java.desktop/sun.java2d
- *          java.desktop/sun.java2d.pipe
- *          java.desktop/sun.java2d.pipe.hw
- * @compile -XDignore.symbol.file=true RSLContextInvalidationTest.java
- * @run main/othervm RSLContextInvalidationTest
- * @run main/othervm -Dsun.java2d.noddraw=true RSLContextInvalidationTest
- */
-
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.GraphicsConfiguration;
-import java.awt.GraphicsDevice;
-import java.awt.GraphicsEnvironment;
-import java.awt.image.BufferedImage;
-import java.awt.image.VolatileImage;
-import sun.java2d.DestSurfaceProvider;
-import sun.java2d.Surface;
-import sun.java2d.pipe.RenderQueue;
-import sun.java2d.pipe.hw.*;
-
-public class RSLContextInvalidationTest {
-
-    public static void main(String[] args) {
-        GraphicsEnvironment ge =
-            GraphicsEnvironment.getLocalGraphicsEnvironment();
-        GraphicsDevice gd = ge.getDefaultScreenDevice();
-        GraphicsConfiguration gc = gd.getDefaultConfiguration();
-        VolatileImage vi = gc.createCompatibleVolatileImage(100, 100);
-        vi.validate(gc);
-        VolatileImage vi1 = gc.createCompatibleVolatileImage(100, 100);
-        vi1.validate(gc);
-
-        if (!(vi instanceof DestSurfaceProvider)) {
-            System.out.println("Test considered PASSED: no HW acceleration");
-            return;
-        }
-
-        DestSurfaceProvider p = (DestSurfaceProvider)vi;
-        Surface s = p.getDestSurface();
-        if (!(s instanceof AccelSurface)) {
-            System.out.println("Test considered PASSED: no HW acceleration");
-            return;
-        }
-        AccelSurface dst = (AccelSurface)s;
-
-        Graphics g = vi.createGraphics();
-        g.drawImage(vi1, 95, 95, null);
-        g.setColor(Color.red);
-        g.fillRect(0, 0, 100, 100);
-        g.setColor(Color.black);
-        g.fillRect(0, 0, 100, 100);
-        // after this the validated context color is black
-
-        RenderQueue rq = dst.getContext().getRenderQueue();
-        rq.lock();
-        try {
-            dst.getContext().saveState();
-            dst.getContext().restoreState();
-        } finally {
-            rq.unlock();
-        }
-
-        // this will cause ResetPaint (it will set color to extended EA=ff,
-        // which is ffffffff==Color.white)
-        g.drawImage(vi1, 95, 95, null);
-
-        // now try filling with black again, but it will come up as white
-        // because this fill rect won't validate the color properly
-        g.setColor(Color.black);
-        g.fillRect(0, 0, 100, 100);
-
-        BufferedImage bi = vi.getSnapshot();
-        if (bi.getRGB(50, 50) != Color.black.getRGB()) {
-            throw new RuntimeException("Test FAILED: found color="+
-                Integer.toHexString(bi.getRGB(50, 50))+" instead of "+
-                Integer.toHexString(Color.black.getRGB()));
-        }
-
-        System.out.println("Test PASSED.");
-    }
-}