OpenJDK / valhalla / valhalla10-old / jdk
changeset 17805:aad7d9872662
Merge
author | prr |
---|---|
date | Mon, 14 Aug 2017 10:47:56 -0700 |
parents | fd986bf973c6 b762aafa34e3 |
children | 0d9457fb89b2 |
files | test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java |
diffstat | 223 files changed, 2449 insertions(+), 1595 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Fri Aug 11 18:17:00 2017 +0530 +++ b/.hgtags Mon Aug 14 10:47:56 2017 -0700 @@ -441,3 +441,6 @@ 06df1ce4b9b887d05ce6a13f4def3547e434dd1a jdk-9+179 d93f2fd542b7d7855c2cd49ae15ebcc3d441a83b jdk-10+17 c4b709bad6c5d29294124de5e74e1e2ac84fcf1f jdk-10+18 +b561eeca30decc6258b4aca8bb23beffbb6e2f7d jdk-10+19 +4feab1acec6a9c3620a19ff379a65ab8618d0e2a jdk-9+180 +bd66ea2fdde3d60a73b5272263a7b8b0ca926a33 jdk-9+181
--- a/src/java.base/share/classes/com/sun/crypto/provider/DESKey.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/com/sun/crypto/provider/DESKey.java Mon Aug 14 10:47:56 2017 -0700 @@ -31,6 +31,8 @@ import javax.crypto.SecretKey; import javax.crypto.spec.DESKeySpec; +import jdk.internal.ref.CleanerFactory; + /** * This class represents a DES key. * @@ -74,6 +76,11 @@ this.key = new byte[DESKeySpec.DES_KEY_LEN]; System.arraycopy(key, offset, this.key, 0, DESKeySpec.DES_KEY_LEN); DESKeyGenerator.setParityBit(this.key, 0); + + // Use the cleaner to zero the key when no longer referenced + final byte[] k = this.key; + CleanerFactory.cleaner().register(this, + () -> java.util.Arrays.fill(k, (byte)0x00)); } public byte[] getEncoded() { @@ -144,20 +151,4 @@ getFormat(), getEncoded()); } - - /** - * Ensures that the bytes of this key are - * set to zero when there are no more references to it. - */ - @SuppressWarnings("deprecation") - protected void finalize() throws Throwable { - try { - if (this.key != null) { - java.util.Arrays.fill(this.key, (byte)0x00); - this.key = null; - } - } finally { - super.finalize(); - } - } }
--- a/src/java.base/share/classes/com/sun/crypto/provider/DESedeKey.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/com/sun/crypto/provider/DESedeKey.java Mon Aug 14 10:47:56 2017 -0700 @@ -31,6 +31,8 @@ import javax.crypto.SecretKey; import javax.crypto.spec.DESedeKeySpec; +import jdk.internal.ref.CleanerFactory; + /** * This class represents a DES-EDE key. * @@ -76,6 +78,11 @@ DESKeyGenerator.setParityBit(this.key, 0); DESKeyGenerator.setParityBit(this.key, 8); DESKeyGenerator.setParityBit(this.key, 16); + + // Use the cleaner to zero the key when no longer referenced + final byte[] k = this.key; + CleanerFactory.cleaner().register(this, + () -> java.util.Arrays.fill(k, (byte)0x00)); } public byte[] getEncoded() { @@ -145,20 +152,4 @@ getFormat(), getEncoded()); } - - /** - * Ensures that the bytes of this key are - * set to zero when there are no more references to it. - */ - @SuppressWarnings("deprecation") - protected void finalize() throws Throwable { - try { - if (this.key != null) { - java.util.Arrays.fill(this.key, (byte)0x00); - this.key = null; - } - } finally { - super.finalize(); - } - } }
--- a/src/java.base/share/classes/com/sun/crypto/provider/PBEKey.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/com/sun/crypto/provider/PBEKey.java Mon Aug 14 10:47:56 2017 -0700 @@ -32,6 +32,8 @@ import javax.crypto.SecretKey; import javax.crypto.spec.PBEKeySpec; +import jdk.internal.ref.CleanerFactory; + /** * This class represents a PBE key. * @@ -49,7 +51,7 @@ /** * Creates a PBE key from a given PBE key specification. * - * @param key the given PBE key specification + * @param keytype the given PBE key specification */ PBEKey(PBEKeySpec keySpec, String keytype) throws InvalidKeySpecException { char[] passwd = keySpec.getPassword(); @@ -70,6 +72,11 @@ this.key[i] = (byte) (passwd[i] & 0x7f); java.util.Arrays.fill(passwd, ' '); type = keytype; + + // Use the cleaner to zero the key when no longer referenced + final byte[] k = this.key; + CleanerFactory.cleaner().register(this, + () -> java.util.Arrays.fill(k, (byte)0x00)); } public byte[] getEncoded() { @@ -140,20 +147,4 @@ getFormat(), getEncoded()); } - - /** - * Ensures that the password bytes of this key are - * set to zero when there are no more references to it. - */ - @SuppressWarnings("deprecation") - protected void finalize() throws Throwable { - try { - if (this.key != null) { - java.util.Arrays.fill(this.key, (byte)0x00); - this.key = null; - } - } finally { - super.finalize(); - } - } }
--- a/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Mon Aug 14 10:47:56 2017 -0700 @@ -40,6 +40,8 @@ import javax.crypto.SecretKey; import javax.crypto.spec.PBEKeySpec; +import jdk.internal.ref.CleanerFactory; + /** * This class represents a PBE key derived using PBKDF2 defined * in PKCS#5 v2.0. meaning that @@ -76,7 +78,8 @@ /** * Creates a PBE key from a given PBE key specification. * - * @param key the given PBE key specification + * @param keySpec the given PBE key specification + * @param prfAlgo the given PBE key algorithm */ PBKDF2KeyImpl(PBEKeySpec keySpec, String prfAlgo) throws InvalidKeySpecException { @@ -120,6 +123,15 @@ throw ike; } this.key = deriveKey(prf, passwdBytes, salt, iterCount, keyLength); + + // Use the cleaner to zero the key when no longer referenced + final byte[] k = this.key; + final char[] p = this.passwd; + CleanerFactory.cleaner().register(this, + () -> { + java.util.Arrays.fill(k, (byte)0x00); + java.util.Arrays.fill(p, '0'); + }); } private static byte[] deriveKey(final Mac prf, final byte[] password, @@ -262,24 +274,4 @@ return new KeyRep(KeyRep.Type.SECRET, getAlgorithm(), getFormat(), getEncoded()); } - - /** - * Ensures that the password bytes of this key are - * erased when there are no more references to it. - */ - @SuppressWarnings("deprecation") - protected void finalize() throws Throwable { - try { - if (this.passwd != null) { - java.util.Arrays.fill(this.passwd, '0'); - this.passwd = null; - } - if (this.key != null) { - java.util.Arrays.fill(this.key, (byte)0x00); - this.key = null; - } - } finally { - super.finalize(); - } - } }
--- a/src/java.base/share/classes/java/io/DataInput.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/io/DataInput.java Mon Aug 14 10:47:56 2017 -0700 @@ -54,83 +54,90 @@ * Unicode strings in a format that is a slight modification of UTF-8. * (For information regarding the standard UTF-8 format, see section * <i>3.9 Unicode Encoding Forms</i> of <i>The Unicode Standard, Version - * 4.0</i>). - * Note that in the following table, the most significant bit appears in the - * far left-hand column. + * 4.0</i>) * - * <blockquote> - * <table class="plain"> - * <caption style="display:none">Bit values and bytes</caption> + * <ul> + * <li>Characters in the range {@code '\u005Cu0001'} to + * {@code '\u005Cu007F'} are represented by a single byte. + * <li>The null character {@code '\u005Cu0000'} and characters + * in the range {@code '\u005Cu0080'} to {@code '\u005Cu07FF'} are + * represented by a pair of bytes. + * <li>Characters in the range {@code '\u005Cu0800'} + * to {@code '\u005CuFFFF'} are represented by three bytes. + * </ul> + * + * <table class="plain" style="margin-left:2em;"> + * <caption>Encoding of UTF-8 values</caption> + * <thead> + * <tr> + * <th scope="col" rowspan="2">Value</th> + * <th scope="col" rowspan="2">Byte</th> + * <th scope="col" colspan="8" id="bit_a">Bit Values</th> + * </tr> + * <tr> + * <!-- Value --> + * <!-- Byte --> + * <th scope="col" style="width:3em"> 7 </th> + * <th scope="col" style="width:3em"> 6 </th> + * <th scope="col" style="width:3em"> 5 </th> + * <th scope="col" style="width:3em"> 4 </th> + * <th scope="col" style="width:3em"> 3 </th> + * <th scope="col" style="width:3em"> 2 </th> + * <th scope="col" style="width:3em"> 1 </th> + * <th scope="col" style="width:3em"> 0 </th> + * </thead> * <tbody> * <tr> - * <th colspan="9"><span style="font-weight:normal"> - * All characters in the range {@code '\u005Cu0001'} to - * {@code '\u005Cu007F'} are represented by a single byte:</span></th> + * <th scope="row" style="text-align:left; font-weight:normal"> + * {@code \u005Cu0001} to {@code \u005Cu007F} </th> + * <th scope="row" style="font-weight:normal; text-align:center"> 1 </th> + * <td style="text-align:center">0 + * <td colspan="7" style="text-align:right; padding-right:6em">bits 6-0 * </tr> * <tr> - * <td></td> - * <th colspan="8" id="bit_a">Bit Values</th> + * <th scope="row" rowspan="2" style="text-align:left; font-weight:normal"> + * {@code \u005Cu0000},<br> + * {@code \u005Cu0080} to {@code \u005Cu07FF} </th> + * <th scope="row" style="font-weight:normal; text-align:center"> 1 </th> + * <td style="text-align:center">1 + * <td style="text-align:center">1 + * <td style="text-align:center">0 + * <td colspan="5" style="text-align:right; padding-right:6em">bits 10-6 * </tr> * <tr> - * <th id="byte1_a" style="text-align:left">Byte 1</th> + * <!-- (value) --> + * <th scope="row" style="font-weight:normal; text-align:center"> 2 </th> + * <td style="text-align:center">1 * <td style="text-align:center">0 - * <td colspan="7" style="text-align:center">bits 6-0 + * <td colspan="6" style="text-align:right; padding-right:6em">bits 5-0 * </tr> * <tr> - * <th colspan="9"><span style="font-weight:normal"> - * The null character {@code '\u005Cu0000'} and characters - * in the range {@code '\u005Cu0080'} to {@code '\u005Cu07FF'} are - * represented by a pair of bytes:</span></th> + * <th scope="row" rowspan="3" style="text-align:left; font-weight:normal"> + * {@code \u005Cu0800} to {@code \u005CuFFFF} </th> + * <th scope="row" style="font-weight:normal; text-align:center"> 1 </th> + * <td style="text-align:center">1 + * <td style="text-align:center">1 + * <td style="text-align:center">1 + * <td style="text-align:center">0 + * <td colspan="4" style="text-align:right; padding-right:6em">bits 15-12 * </tr> * <tr> - * <td></td> - * <th colspan="8" id="bit_b">Bit Values</th> + * <!-- (value) --> + * <th scope="row" style="font-weight:normal; text-align:center"> 2 </th> + * <td style="text-align:center">1 + * <td style="text-align:center">0 + * <td colspan="6" style="text-align:right; padding-right:6em">bits 11-6 * </tr> * <tr> - * <th id="byte1_b" style="text-align:left">Byte 1</th> - * <td style="text-align:center">1 + * <!-- (value) --> + * <th scope="row" style="font-weight:normal; text-align:center"> 3 </th> * <td style="text-align:center">1 * <td style="text-align:center">0 - * <td colspan="5" style="text-align:center">bits 10-6 - * </tr> - * <tr> - * <th id="byte2_a" style="text-align:left">Byte 2</th> - * <td style="text-align:center">1 - * <td style="text-align:center">0 - * <td colspan="6" style="text-align:center">bits 5-0 - * </tr> - * <tr> - * <th colspan="9"><span style="font-weight:normal"> - * {@code char} values in the range {@code '\u005Cu0800'} - * to {@code '\u005CuFFFF'} are represented by three bytes:</span></th> - * </tr> - * <tr> - * <td></td> - * <th colspan="8"id="bit_c">Bit Values</th> - * </tr> - * <tr> - * <th id="byte1_c" style="text-align:left">Byte 1</th> - * <td style="text-align:center">1 - * <td style="text-align:center">1 - * <td style="text-align:center">1 - * <td style="text-align:center">0 - * <td colspan="4" style="text-align:center">bits 15-12 - * </tr> - * <tr> - * <th id="byte2_b" style="text-align:left">Byte 2</th> - * <td style="text-align:center">1 - * <td style="text-align:center">0 - * <td colspan="6" style="text-align:center">bits 11-6 - * </tr> - * <tr> - * <th id="byte3" style="text-align:left">Byte 3</th> - * <td style="text-align:center">1 - * <td style="text-align:center">0 - * <td colspan="6" style="text-align:center">bits 5-0 + * <td colspan="6" style="text-align:right; padding-right:6em">bits 5-0 * </tr> * </tbody> * </table> - * </blockquote> + * * <p> * The differences between this format and the * standard UTF-8 format are the following:
--- a/src/java.base/share/classes/java/lang/Character.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/Character.java Mon Aug 14 10:47:56 2017 -0700 @@ -9566,18 +9566,23 @@ * Determines if the specified character is ISO-LATIN-1 white space. * This method returns {@code true} for the following five * characters only: - * <table class="borderless"> + * <table class="striped"> * <caption style="display:none">truechars</caption> + * <thead> + * <tr><th scope="col">Character + * <th scope="col">Code + * <th scope="col">Name + * </thead> * <tbody> - * <tr><td>{@code '\t'}</td> <td>{@code U+0009}</td> + * <tr><th scope="row">{@code '\t'}</th> <td>{@code U+0009}</td> * <td>{@code HORIZONTAL TABULATION}</td></tr> - * <tr><td>{@code '\n'}</td> <td>{@code U+000A}</td> + * <tr><th scope="row">{@code '\n'}</th> <td>{@code U+000A}</td> * <td>{@code NEW LINE}</td></tr> - * <tr><td>{@code '\f'}</td> <td>{@code U+000C}</td> + * <tr><th scope="row">{@code '\f'}</th> <td>{@code U+000C}</td> * <td>{@code FORM FEED}</td></tr> - * <tr><td>{@code '\r'}</td> <td>{@code U+000D}</td> + * <tr><th scope="row">{@code '\r'}</th> <td>{@code U+000D}</td> * <td>{@code CARRIAGE RETURN}</td></tr> - * <tr><td>{@code ' '}</td> <td>{@code U+0020}</td> + * <tr><th scope="row">{@code ' '}</th> <td>{@code U+0020}</td> * <td>{@code SPACE}</td></tr> * </tbody> * </table>
--- a/src/java.base/share/classes/java/lang/Class.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/Class.java Mon Aug 14 10:47:56 2017 -0700 @@ -728,22 +728,22 @@ * one or more '{@code [}' characters representing the depth of the array * nesting. The encoding of element type names is as follows: * - * <blockquote><table class="borderless"> + * <blockquote><table class="striped"> * <caption style="display:none">Element types and encodings</caption> * <thead> - * <tr><th style="padding-right:3em;"> Element Type <th> Encoding + * <tr><th scope="col"> Element Type <th scope="col"> Encoding * </thead> - * <tbody> - * <tr><td> boolean <td style="text-align:center"> Z - * <tr><td> byte <td style="text-align:center"> B - * <tr><td> char <td style="text-align:center"> C - * <tr><td> class or interface - * <td style="text-align:center"> L<i>classname</i>; - * <tr><td> double <td style="text-align:center"> D - * <tr><td> float <td style="text-align:center"> F - * <tr><td> int <td style="text-align:center"> I - * <tr><td> long <td style="text-align:center"> J - * <tr><td> short <td style="text-align:center"> S + * <tbody style="text-align:left"> + * <tr><th scope="row"> boolean <td style="text-align:center"> Z + * <tr><th scope="row"> byte <td style="text-align:center"> B + * <tr><th scope="row"> char <td style="text-align:center"> C + * <tr><th scope="row"> class or interface + * <td style="text-align:center"> L<i>classname</i>; + * <tr><th scope="row"> double <td style="text-align:center"> D + * <tr><th scope="row"> float <td style="text-align:center"> F + * <tr><th scope="row"> int <td style="text-align:center"> I + * <tr><th scope="row"> long <td style="text-align:center"> J + * <tr><th scope="row"> short <td style="text-align:center"> S * </tbody> * </table></blockquote> *
--- a/src/java.base/share/classes/java/lang/Double.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/Double.java Mon Aug 14 10:47:56 2017 -0700 @@ -255,25 +255,25 @@ * * </ul> * - * <table class="plain"> + * <table class="striped"> * <caption>Examples</caption> * <thead> - * <tr><th>Floating-point Value</th><th>Hexadecimal String</th> + * <tr><th scope="col">Floating-point Value</th><th scope="col">Hexadecimal String</th> * </thead> - * <tbody> - * <tr><td>{@code 1.0}</td> <td>{@code 0x1.0p0}</td> - * <tr><td>{@code -1.0}</td> <td>{@code -0x1.0p0}</td> - * <tr><td>{@code 2.0}</td> <td>{@code 0x1.0p1}</td> - * <tr><td>{@code 3.0}</td> <td>{@code 0x1.8p1}</td> - * <tr><td>{@code 0.5}</td> <td>{@code 0x1.0p-1}</td> - * <tr><td>{@code 0.25}</td> <td>{@code 0x1.0p-2}</td> - * <tr><td>{@code Double.MAX_VALUE}</td> + * <tbody style="text-align:right"> + * <tr><th scope="row">{@code 1.0}</th> <td>{@code 0x1.0p0}</td> + * <tr><th scope="row">{@code -1.0}</th> <td>{@code -0x1.0p0}</td> + * <tr><th scope="row">{@code 2.0}</th> <td>{@code 0x1.0p1}</td> + * <tr><th scope="row">{@code 3.0}</th> <td>{@code 0x1.8p1}</td> + * <tr><th scope="row">{@code 0.5}</th> <td>{@code 0x1.0p-1}</td> + * <tr><th scope="row">{@code 0.25}</th> <td>{@code 0x1.0p-2}</td> + * <tr><th scope="row">{@code Double.MAX_VALUE}</th> * <td>{@code 0x1.fffffffffffffp1023}</td> - * <tr><td>{@code Minimum Normal Value}</td> + * <tr><th scope="row">{@code Minimum Normal Value}</th> * <td>{@code 0x1.0p-1022}</td> - * <tr><td>{@code Maximum Subnormal Value}</td> + * <tr><th scope="row">{@code Maximum Subnormal Value}</th> * <td>{@code 0x0.fffffffffffffp-1022}</td> - * <tr><td>{@code Double.MIN_VALUE}</td> + * <tr><th scope="row">{@code Double.MIN_VALUE}</th> * <td>{@code 0x0.0000000000001p-1022}</td> * </tbody> * </table>
--- a/src/java.base/share/classes/java/lang/Float.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/Float.java Mon Aug 14 10:47:56 2017 -0700 @@ -256,25 +256,25 @@ * * </ul> * - * <table class="plain"> + * <table class="striped"> * <caption>Examples</caption> * <thead> - * <tr><th>Floating-point Value</th><th>Hexadecimal String</th> + * <tr><th scope="col">Floating-point Value</th><th scope="col">Hexadecimal String</th> * </thead> * <tbody> - * <tr><td>{@code 1.0}</td> <td>{@code 0x1.0p0}</td> - * <tr><td>{@code -1.0}</td> <td>{@code -0x1.0p0}</td> - * <tr><td>{@code 2.0}</td> <td>{@code 0x1.0p1}</td> - * <tr><td>{@code 3.0}</td> <td>{@code 0x1.8p1}</td> - * <tr><td>{@code 0.5}</td> <td>{@code 0x1.0p-1}</td> - * <tr><td>{@code 0.25}</td> <td>{@code 0x1.0p-2}</td> - * <tr><td>{@code Float.MAX_VALUE}</td> + * <tr><th scope="row">{@code 1.0}</th> <td>{@code 0x1.0p0}</td> + * <tr><th scope="row">{@code -1.0}</th> <td>{@code -0x1.0p0}</td> + * <tr><th scope="row">{@code 2.0}</th> <td>{@code 0x1.0p1}</td> + * <tr><th scope="row">{@code 3.0}</th> <td>{@code 0x1.8p1}</td> + * <tr><th scope="row">{@code 0.5}</th> <td>{@code 0x1.0p-1}</td> + * <tr><th scope="row">{@code 0.25}</th> <td>{@code 0x1.0p-2}</td> + * <tr><th scope="row">{@code Float.MAX_VALUE}</th> * <td>{@code 0x1.fffffep127}</td> - * <tr><td>{@code Minimum Normal Value}</td> + * <tr><th scope="row">{@code Minimum Normal Value}</th> * <td>{@code 0x1.0p-126}</td> - * <tr><td>{@code Maximum Subnormal Value}</td> + * <tr><th scope="row">{@code Maximum Subnormal Value}</th> * <td>{@code 0x0.fffffep-126}</td> - * <tr><td>{@code Float.MIN_VALUE}</td> + * <tr><th scope="row">{@code Float.MIN_VALUE}</th> * <td>{@code 0x0.000002p-126}</td> * </tbody> * </table>
--- a/src/java.base/share/classes/java/lang/String.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/String.java Mon Aug 14 10:47:56 2017 -0700 @@ -2208,29 +2208,29 @@ * <caption style="display:none">Split example showing regex, limit, and result</caption> * <thead> * <tr> - * <th>Regex</th> - * <th>Limit</th> - * <th>Result</th> + * <th scope="col">Regex</th> + * <th scope="col">Limit</th> + * <th scope="col">Result</th> * </tr> * </thead> * <tbody> - * <tr><td style="text-align:center">:</td> - * <td style="text-align:center">2</td> + * <tr><th scope="row" rowspan="3" style="font-weight:normal">:</th> + * <th scope="row" style="font-weight:normal; text-align:right; padding-right:1em">2</th> * <td>{@code { "boo", "and:foo" }}</td></tr> - * <tr><td style="text-align:center">:</td> - * <td style="text-align:center">5</td> + * <tr><!-- : --> + * <th scope="row" style="font-weight:normal; text-align:right; padding-right:1em">5</th> * <td>{@code { "boo", "and", "foo" }}</td></tr> - * <tr><td style="text-align:center">:</td> - * <td style="text-align:center">-2</td> + * <tr><!-- : --> + * <th scope="row" style="font-weight:normal; text-align:right; padding-right:1em">-2</th> * <td>{@code { "boo", "and", "foo" }}</td></tr> - * <tr><td style="text-align:center">o</td> - * <td style="text-align:center">5</td> + * <tr><th scope="row" rowspan="3" style="font-weight:normal">o</th> + * <th scope="row" style="font-weight:normal; text-align:right; padding-right:1em">5</th> * <td>{@code { "b", "", ":and:f", "", "" }}</td></tr> - * <tr><td style="text-align:center">o</td> - * <td style="text-align:center">-2</td> + * <tr><!-- o --> + * <th scope="row" style="font-weight:normal; text-align:right; padding-right:1em">-2</th> * <td>{@code { "b", "", ":and:f", "", "" }}</td></tr> - * <tr><td style="text-align:center">o</td> - * <td style="text-align:center">0</td> + * <tr><!-- o --> + * <th scope="row" style="font-weight:normal; text-align:right; padding-right:1em">0</th> * <td>{@code { "b", "", ":and:f" }}</td></tr> * </tbody> * </table></blockquote> @@ -2336,14 +2336,14 @@ * <caption style="display:none">Split examples showing regex and result</caption> * <thead> * <tr> - * <th>Regex</th> - * <th>Result</th> + * <th scope="col">Regex</th> + * <th scope="col">Result</th> * </tr> * </thead> * <tbody> - * <tr><td style="text-align:center">:</td> + * <tr><th scope="row" style="text-weight:normal">:</th> * <td>{@code { "boo", "and", "foo" }}</td></tr> - * <tr><td style="text-align:center">o</td> + * <tr><th scope="row" style="text-weight:normal">o</th> * <td>{@code { "b", "", ":and:f" }}</td></tr> * </tbody> * </table></blockquote> @@ -2460,36 +2460,37 @@ * <caption style="display:none">Lowercase mapping examples showing language code of locale, upper case, lower case, and description</caption> * <thead> * <tr> - * <th>Language Code of Locale</th> - * <th>Upper Case</th> - * <th>Lower Case</th> - * <th>Description</th> + * <th scope="col">Language Code of Locale</th> + * <th scope="col">Upper Case</th> + * <th scope="col">Lower Case</th> + * <th scope="col">Description</th> * </tr> * </thead> * <tbody> * <tr> * <td>tr (Turkish)</td> - * <td>\u0130</td> + * <th scope="row" style="font-weight:normal; text-align:left">\u0130</th> * <td>\u0069</td> * <td>capital letter I with dot above -> small letter i</td> * </tr> * <tr> * <td>tr (Turkish)</td> - * <td>\u0049</td> + * <th scope="row" style="font-weight:normal; text-align:left">\u0049</th> * <td>\u0131</td> * <td>capital letter I -> small letter dotless i </td> * </tr> * <tr> * <td>(all)</td> - * <td>French Fries</td> + * <th scope="row" style="font-weight:normal; text-align:left">French Fries</th> * <td>french fries</td> * <td>lowercased all chars in String</td> * </tr> * <tr> * <td>(all)</td> - * <td><img src="doc-files/capiota.gif" alt="capiota"><img src="doc-files/capchi.gif" alt="capchi"> + * <th scope="row" style="font-weight:normal; text-align:left"> + * <img src="doc-files/capiota.gif" alt="capiota"><img src="doc-files/capchi.gif" alt="capchi"> * <img src="doc-files/captheta.gif" alt="captheta"><img src="doc-files/capupsil.gif" alt="capupsil"> - * <img src="doc-files/capsigma.gif" alt="capsigma"></td> + * <img src="doc-files/capsigma.gif" alt="capsigma"></th> * <td><img src="doc-files/iota.gif" alt="iota"><img src="doc-files/chi.gif" alt="chi"> * <img src="doc-files/theta.gif" alt="theta"><img src="doc-files/upsilon.gif" alt="upsilon"> * <img src="doc-files/sigma1.gif" alt="sigma"></td> @@ -2546,34 +2547,34 @@ * <caption style="display:none">Examples of locale-sensitive and 1:M case mappings. Shows Language code of locale, lower case, upper case, and description.</caption> * <thead> * <tr> - * <th>Language Code of Locale</th> - * <th>Lower Case</th> - * <th>Upper Case</th> - * <th>Description</th> + * <th scope="col">Language Code of Locale</th> + * <th scope="col">Lower Case</th> + * <th scope="col">Upper Case</th> + * <th scope="col">Description</th> * </tr> * </thead> * <tbody> * <tr> * <td>tr (Turkish)</td> - * <td>\u0069</td> + * <th scope="row" style="font-weight:normal; text-align:left">\u0069</th> * <td>\u0130</td> * <td>small letter i -> capital letter I with dot above</td> * </tr> * <tr> * <td>tr (Turkish)</td> - * <td>\u0131</td> + * <th scope="row" style="font-weight:normal; text-align:left">\u0131</th> * <td>\u0049</td> * <td>small letter dotless i -> capital letter I</td> * </tr> * <tr> * <td>(all)</td> - * <td>\u00df</td> + * <th scope="row" style="font-weight:normal; text-align:left">\u00df</th> * <td>\u0053 \u0053</td> * <td>small letter sharp s -> two letters: SS</td> * </tr> * <tr> * <td>(all)</td> - * <td>Fahrvergnügen</td> + * <th scope="row" style="font-weight:normal; text-align:left">Fahrvergnügen</th> * <td>FAHRVERGNÜGEN</td> * <td></td> * </tr>
--- a/src/java.base/share/classes/java/lang/System.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/System.java Mon Aug 14 10:47:56 2017 -0700 @@ -583,7 +583,7 @@ * system properties, a set of system properties is first created and * initialized. This set of system properties always includes values * for the following keys: - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption style="display:none">Shows property keys and associated values</caption> * <thead> * <tr><th scope="col">Key</th> @@ -1049,26 +1049,28 @@ * of corresponding severity. * <br>The mapping is as follows: * <br><br> - * <table border="1"> + * <table class="striped"> * <caption>System.Logger Severity Level Mapping</caption> - * <tr><td><b>System.Logger Levels</b></td> - * <td>{@link Logger.Level#ALL ALL}</td> - * <td>{@link Logger.Level#TRACE TRACE}</td> - * <td>{@link Logger.Level#DEBUG DEBUG}</td> - * <td>{@link Logger.Level#INFO INFO}</td> - * <td>{@link Logger.Level#WARNING WARNING}</td> - * <td>{@link Logger.Level#ERROR ERROR}</td> - * <td>{@link Logger.Level#OFF OFF}</td> - * </tr> - * <tr><td><b>java.util.logging Levels</b></td> - * <td>{@link java.util.logging.Level#ALL ALL}</td> - * <td>{@link java.util.logging.Level#FINER FINER}</td> - * <td>{@link java.util.logging.Level#FINE FINE}</td> - * <td>{@link java.util.logging.Level#INFO INFO}</td> - * <td>{@link java.util.logging.Level#WARNING WARNING}</td> - * <td>{@link java.util.logging.Level#SEVERE SEVERE}</td> - * <td>{@link java.util.logging.Level#OFF OFF}</td> - * </tr> + * <thead> + * <tr><th scope="col">System.Logger Levels</th> + * <th scope="col">java.util.logging Levels</th> + * </thead> + * <tbody> + * <tr><th scope="row">{@link Logger.Level#ALL ALL}</th> + * <td>{@link java.util.logging.Level#ALL ALL}</td> + * <tr><th scope="row">{@link Logger.Level#TRACE TRACE}</th> + * <td>{@link java.util.logging.Level#FINER FINER}</td> + * <tr><th scope="row">{@link Logger.Level#DEBUG DEBUG}</th> + * <td>{@link java.util.logging.Level#FINE FINE}</td> + * <tr><th scope="row">{@link Logger.Level#INFO INFO}</th> + * <td>{@link java.util.logging.Level#INFO INFO}</td> + * <tr><th scope="row">{@link Logger.Level#WARNING WARNING}</th> + * <td>{@link java.util.logging.Level#WARNING WARNING}</td> + * <tr><th scope="row">{@link Logger.Level#ERROR ERROR}</th> + * <td>{@link java.util.logging.Level#SEVERE SEVERE}</td> + * <tr><th scope="row">{@link Logger.Level#OFF OFF}</th> + * <td>{@link java.util.logging.Level#OFF OFF}</td> + * </tbody> * </table> * * @since 9
--- a/src/java.base/share/classes/java/lang/Thread.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/Thread.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -347,7 +347,7 @@ * the calling thread indicates to the runtime that it is busy-waiting. * The runtime may take action to improve the performance of invoking * spin-wait loop constructions. - * <p> + * * @apiNote * As an example consider a method in a class that spins in a loop until * some flag is set outside of that method. A call to the {@code onSpinWait} @@ -373,7 +373,7 @@ * method was not called at all. However on some architectures the Java * Virtual Machine may issue the processor instructions to address such * code patterns in a more beneficial way. - * <p> + * * @since 9 */ @HotSpotIntrinsicCandidate
--- a/src/java.base/share/classes/java/lang/invoke/LambdaMetafactory.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/invoke/LambdaMetafactory.java Mon Aug 14 10:47:56 2017 -0700 @@ -149,24 +149,24 @@ * capture argument (corresponding to the receiver) must be non-null. * * <p>A type Q is considered adaptable to S as follows: - * <table class="borderless"> + * <table class="striped"> * <caption style="display:none">adaptable types</caption> * <thead> - * <tr><th>Q</th><th>S</th><th>Link-time checks</th><th>Invocation-time checks</th></tr> + * <tr><th scope="col">Q</th><th scope="col">S</th><th scope="col">Link-time checks</th><th scope="col">Invocation-time checks</th></tr> * </thead> * <tbody> * <tr> - * <td>Primitive</td><td>Primitive</td> + * <th scope="row">Primitive</th><th scope="row">Primitive</th> * <td>Q can be converted to S via a primitive widening conversion</td> * <td>None</td> * </tr> * <tr> - * <td>Primitive</td><td>Reference</td> + * <th scope="row">Primitive</th><th scope="row">Reference</th> * <td>S is a supertype of the Wrapper(Q)</td> * <td>Cast from Wrapper(Q) to S</td> * </tr> * <tr> - * <td>Reference</td><td>Primitive</td> + * <th scope="row">Reference</th><th scope="row">Primitive</th> * <td>for parameter types: Q is a primitive wrapper and Primitive(Q) * can be widened to S * <br>for return types: If Q is a primitive wrapper, check that @@ -175,7 +175,7 @@ * for example Number for numeric types</td> * </tr> * <tr> - * <td>Reference</td><td>Reference</td> + * <th scope="row">Reference</th><th scope="row">Reference</th> * <td>for parameter types: S is a supertype of Q * <br>for return types: none</td> * <td>Cast from Q to S</td>
--- a/src/java.base/share/classes/java/lang/invoke/MethodHandle.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandle.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -889,7 +889,7 @@ * <p> * This method behaves very much like {@link #asSpreader(Class, int)}, but accepts an additional {@code spreadArgPos} * argument to indicate at which position in the parameter list the spreading should take place. - * <p> + * * @apiNote Example: * <blockquote><pre>{@code MethodHandle compare = LOOKUP.findStatic(Objects.class, "compare", methodType(int.class, Object.class, Object.class, Comparator.class)); @@ -1094,7 +1094,7 @@ * This method behaves very much like {@link #asCollector(Class, int)}, but differs in that its {@code * collectArgPos} argument indicates at which position in the parameter list arguments should be collected. This * index is zero-based. - * <p> + * * @apiNote Examples: * <blockquote><pre>{@code StringWriter swr = new StringWriter();
--- a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Mon Aug 14 10:47:56 2017 -0700 @@ -3353,7 +3353,7 @@ * That is, it returns a zero primitive value, a {@code null}, or {@code void}. * <p>The returned method handle is equivalent to * {@code dropArguments(zero(type.returnType()), 0, type.parameterList())}. - * <p> + * * @apiNote Given a predicate and target, a useful "if-then" construct can be produced as * {@code guardWithTest(pred, target, empty(target.type())}. * @param type the type of the desired method handle @@ -3676,7 +3676,7 @@ * Given these assumptions, the result of an invocation of {@code dropArgumentsToMatch} will have the parameter type * list {@code S..., P..., M..., A...}, with the {@code P} and {@code A} types inserted as if by * {@link #dropArguments(MethodHandle, int, Class[])}. - * <p> + * * @apiNote * Two method handles whose argument lists are "effectively identical" (i.e., identical in a common prefix) may be * mutually converted to a common type by two calls to {@code dropArgumentsToMatch}, as follows: @@ -4169,7 +4169,7 @@ * position in the parameter list at which folding takes place. The argument controlling this, {@code pos}, is a * zero-based index. The aforementioned method {@link #foldArguments(MethodHandle, MethodHandle)} assumes position * 0. - * <p> + * * @apiNote Example: * <blockquote><pre>{@code import static java.lang.invoke.MethodHandles.*; @@ -4698,7 +4698,7 @@ * Note that the parameter type lists {@code (V...)} and {@code (A...)} have been expanded * to their full length, even though individual clause functions may neglect to take them all. * As noted above, missing parameters are filled in as if by {@link #dropArgumentsToMatch}. - * <p> + * * @apiNote Example: * <blockquote><pre>{@code * // iterative implementation of the factorial function as a loop handle @@ -4991,7 +4991,7 @@ * return v; * } * }</pre></blockquote> - * <p> + * * @apiNote Example: * <blockquote><pre>{@code * // implement the zip function for lists as a loop handle @@ -5010,7 +5010,7 @@ * assertEquals(zipped, (List<String>) loop.invoke(a.iterator(), b.iterator())); * }</pre></blockquote> * - * <p> + * * @apiNote The implementation of this method can be expressed as follows: * <blockquote><pre>{@code * MethodHandle whileLoop(MethodHandle init, MethodHandle pred, MethodHandle body) { @@ -5104,7 +5104,7 @@ * return v; * } * }</pre></blockquote> - * <p> + * * @apiNote Example: * <blockquote><pre>{@code * // int i = 0; while (i < limit) { ++i; } return i; => limit @@ -5116,7 +5116,7 @@ * assertEquals(23, loop.invoke(23)); * }</pre></blockquote> * - * <p> + * * @apiNote The implementation of this method can be expressed as follows: * <blockquote><pre>{@code * MethodHandle doWhileLoop(MethodHandle init, MethodHandle body, MethodHandle pred) { @@ -5248,7 +5248,7 @@ * return v; * } * }</pre></blockquote> - * <p> + * * @apiNote Example with a fully conformant body method: * <blockquote><pre>{@code * // String s = "Lambdaman!"; for (int i = 0; i < 13; ++i) { s = "na " + s; } return s; @@ -5260,7 +5260,7 @@ * MethodHandle loop = MethodHandles.countedLoop(fit13, start, MH_step); * assertEquals("na na na na na na na na na na na na na Lambdaman!", loop.invoke("Lambdaman!")); * }</pre></blockquote> - * <p> + * * @apiNote Example with the simplest possible body method type, * and passing the number of iterations to the loop invocation: * <blockquote><pre>{@code @@ -5273,7 +5273,7 @@ * MethodHandle loop = MethodHandles.countedLoop(count, start, MH_step); // (v, i) -> "na " + v * assertEquals("na na na na na na na na na na na na na Lambdaman!", loop.invoke(13, "Lambdaman!")); * }</pre></blockquote> - * <p> + * * @apiNote Example that treats the number of iterations, string to append to, and string to append * as loop parameters: * <blockquote><pre>{@code @@ -5286,7 +5286,7 @@ * MethodHandle loop = MethodHandles.countedLoop(count, start, MH_step); // (v, i, _, pre, _) -> pre + " " + v * assertEquals("na na na na na na na na na na na na na Lambdaman!", loop.invoke(13, "na", "Lambdaman!")); * }</pre></blockquote> - * <p> + * * @apiNote Example that illustrates the usage of {@link #dropArgumentsToMatch(MethodHandle, int, List, int)} * to enforce a loop type: * <blockquote><pre>{@code @@ -5301,7 +5301,7 @@ * MethodHandle loop = MethodHandles.countedLoop(count, start, body); // (v, i, pre, _, _) -> pre + " " + v * assertEquals("na na na na na na na na na na na na na Lambdaman!", loop.invoke("na", 13, "Lambdaman!")); * }</pre></blockquote> - * <p> + * * @apiNote The implementation of this method can be expressed as follows: * <blockquote><pre>{@code * MethodHandle countedLoop(MethodHandle iterations, MethodHandle init, MethodHandle body) { @@ -5406,7 +5406,6 @@ * } * }</pre></blockquote> * - * <p> * @apiNote The implementation of this method can be expressed as follows: * <blockquote><pre>{@code * MethodHandle countedLoop(MethodHandle start, MethodHandle end, MethodHandle init, MethodHandle body) { @@ -5607,7 +5606,7 @@ * return v; * } * }</pre></blockquote> - * <p> + * * @apiNote Example: * <blockquote><pre>{@code * // get an iterator from a list @@ -5622,7 +5621,7 @@ * List<String> reversedList = Arrays.asList("e", "d", "c", "b", "a"); * assertEquals(reversedList, (List<String>) loop.invoke(list)); * }</pre></blockquote> - * <p> + * * @apiNote The implementation of this method can be expressed approximately as follows: * <blockquote><pre>{@code * MethodHandle iteratedLoop(MethodHandle iterator, MethodHandle init, MethodHandle body) {
--- a/src/java.base/share/classes/java/lang/invoke/package-info.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/invoke/package-info.java Mon Aug 14 10:47:56 2017 -0700 @@ -165,28 +165,33 @@ * <p> * Given these rules, here are examples of legal bootstrap method declarations, * given various numbers {@code N} of extra arguments. - * The first rows (marked {@code *}) will work for any number of extra arguments. - * <table class="plain"> + * The first row (marked {@code *}) will work for any number of extra arguments. + * <table class="plain" style="vertical-align:top"> * <caption style="display:none">Static argument types</caption> - * <tr><th>N</th><th>Sample bootstrap method</th></tr> - * <tr><td>*</td> - * <td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code></td></tr> - * <tr><td>*</td><td> - * <code>CallSite bootstrap(Object... args)</code></td></tr> - * <tr><td>*</td><td> - * <code>CallSite bootstrap(Object caller, Object... nameAndTypeWithArgs)</code></td></tr> - * <tr><td>0</td><td> - * <code>CallSite bootstrap(Lookup caller, String name, MethodType type)</code></td></tr> - * <tr><td>0</td><td> - * <code>CallSite bootstrap(Lookup caller, Object... nameAndType)</code></td></tr> - * <tr><td>1</td><td> + * <thead> + * <tr><th scope="col">N</th><th scope="col">Sample bootstrap method</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row" style="font-weight:normal; vertical-align:top">*</th><td> + * <ul style="list-style:none; padding-left: 0; margin:0"> + * <li><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code> + * <li><code>CallSite bootstrap(Object... args)</code> + * <li><code>CallSite bootstrap(Object caller, Object... nameAndTypeWithArgs)</code> + * </ul></td></tr> + * <tr><th scope="row" style="font-weight:normal; vertical-align:top">0</th><td> + * <ul style="list-style:none; padding-left: 0; margin:0"> + * <li><code>CallSite bootstrap(Lookup caller, String name, MethodType type)</code> + * <li><code>CallSite bootstrap(Lookup caller, Object... nameAndType)</code> + * </ul></td></tr> + * <tr><th scope="row" style="font-weight:normal; vertical-align:top">1</th><td> * <code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object arg)</code></td></tr> - * <tr><td>2</td><td> - * <code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code></td></tr> - * <tr><td>2</td><td> - * <code>CallSite bootstrap(Lookup caller, String name, MethodType type, String... args)</code></td></tr> - * <tr><td>2</td> - * <td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, String x, int y)</code></td></tr> + * <tr><th scope="row" style="font-weight:normal; vertical-align:top">2</th><td> + * <ul style="list-style:none; padding-left: 0; margin:0"> + * <li><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code> + * <li><code>CallSite bootstrap(Lookup caller, String name, MethodType type, String... args)</code> + * <li><code>CallSite bootstrap(Lookup caller, String name, MethodType type, String x, int y)</code> + * </ul></td></tr> + * </tbody> * </table> * The last example assumes that the extra arguments are of type * {@code CONSTANT_String} and {@code CONSTANT_Integer}, respectively.
--- a/src/java.base/share/classes/java/lang/reflect/AnnotatedElement.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/lang/reflect/AnnotatedElement.java Mon Aug 14 10:47:56 2017 -0700 @@ -108,27 +108,39 @@ * <table class="plain"> * <caption>Overview of kind of presence detected by different AnnotatedElement methods</caption> * <thead> - * <tr><th colspan=2></th><th colspan=4>Kind of Presence</th> - * <tr><th colspan=2>Method</th><th>Directly Present</th><th>Indirectly Present</th><th>Present</th><th>Associated</th> + * <tr><th colspan=2 scope="col">Method</th> + * <th colspan=4 scope="col">Kind of Presence</th> + * <tr><th scope="col">Return Type</th> + * <th scope="col">Signature</th> + * <th scope="col">Directly Present</th> + * <th scope="col">Indirectly Present</th> + * <th scope="col">Present</th> + * <th scope="col">Associated</th> * </thead> * <tbody> - * <tr><td style="text-align:right">{@code T}</td><td>{@link #getAnnotation(Class) getAnnotation(Class<T>)} - * <td></td><td></td><td>X</td><td></td> + * <tr><td style="text-align:right">{@code T}</td> + * <th scope="row" style="font-weight:normal; text-align:left">{@link #getAnnotation(Class) getAnnotation(Class<T>)} + * <td></td><td></td><td style="text-align:center">X</td><td></td> * </tr> - * <tr><td style="text-align:right">{@code Annotation[]}</td><td>{@link #getAnnotations getAnnotations()} - * <td></td><td></td><td>X</td><td></td> + * <tr><td style="text-align:right">{@code Annotation[]}</td> + * <th scope="row" style="font-weight:normal; text-align:left">{@link #getAnnotations getAnnotations()} + * <td></td><td></td><td style="text-align:center">X</td><td></td> * </tr> - * <tr><td style="text-align:right">{@code T[]}</td><td>{@link #getAnnotationsByType(Class) getAnnotationsByType(Class<T>)} - * <td></td><td></td><td></td><td>X</td> + * <tr><td style="text-align:right">{@code T[]}</td> + * <th scope="row" style="font-weight:normal; text-align:left">{@link #getAnnotationsByType(Class) getAnnotationsByType(Class<T>)} + * <td></td><td></td><td></td><td style="text-align:center">X</td> * </tr> - * <tr><td style="text-align:right">{@code T}</td><td>{@link #getDeclaredAnnotation(Class) getDeclaredAnnotation(Class<T>)} - * <td>X</td><td></td><td></td><td></td> + * <tr><td style="text-align:right">{@code T}</td> + * <th scope="row" style="font-weight:normal; text-align:left">{@link #getDeclaredAnnotation(Class) getDeclaredAnnotation(Class<T>)} + * <td style="text-align:center">X</td><td></td><td></td><td></td> * </tr> - * <tr><td style="text-align:right">{@code Annotation[]}</td><td>{@link #getDeclaredAnnotations getDeclaredAnnotations()} - * <td>X</td><td></td><td></td><td></td> + * <tr><td style="text-align:right">{@code Annotation[]}</td> + * <th scope="row" style="font-weight:normal; text-align:left">{@link #getDeclaredAnnotations getDeclaredAnnotations()} + * <td style="text-align:center">X</td><td></td><td></td><td></td> * </tr> - * <tr><td style="text-align:right">{@code T[]}</td><td>{@link #getDeclaredAnnotationsByType(Class) getDeclaredAnnotationsByType(Class<T>)} - * <td>X</td><td>X</td><td></td><td></td> + * <tr><td style="text-align:right">{@code T[]}</td> + * <th scope="row" style="font-weight:normal; text-align:left">{@link #getDeclaredAnnotationsByType(Class) getDeclaredAnnotationsByType(Class<T>)} + * <td style="text-align:center">X</td><td style="text-align:center">X</td><td></td><td></td> * </tr> * </tbody> * </table>
--- a/src/java.base/share/classes/java/math/BigDecimal.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/math/BigDecimal.java Mon Aug 14 10:47:56 2017 -0700 @@ -120,18 +120,18 @@ * preferred scale for representing a result. The preferred * scale for each operation is listed in the table below. * - * <table class="plain"> - * <caption><b>Preferred Scales for Results of Arithmetic Operations - * </b></caption> + * <table class="striped" style="text-align:left"> + * <caption>Preferred Scales for Results of Arithmetic Operations + * </caption> * <thead> - * <tr><th>Operation</th><th>Preferred Scale of Result</th></tr> + * <tr><th scope="col">Operation</th><th scope="col">Preferred Scale of Result</th></tr> * </thead> * <tbody> - * <tr><td>Add</td><td>max(addend.scale(), augend.scale())</td> - * <tr><td>Subtract</td><td>max(minuend.scale(), subtrahend.scale())</td> - * <tr><td>Multiply</td><td>multiplier.scale() + multiplicand.scale()</td> - * <tr><td>Divide</td><td>dividend.scale() - divisor.scale()</td> - * <tr><td>Square root</td><td>radicand.scale()/2</td> + * <tr><th scope="row">Add</th><td>max(addend.scale(), augend.scale())</td> + * <tr><th scope="row">Subtract</th><td>max(minuend.scale(), subtrahend.scale())</td> + * <tr><th scope="row">Multiply</th><td>multiplier.scale() + multiplicand.scale()</td> + * <tr><th scope="row">Divide</th><td>dividend.scale() - divisor.scale()</td> + * <tr><th scope="row">Square root</th><td>radicand.scale()/2</td> * </tbody> * </table> *
--- a/src/java.base/share/classes/java/math/RoundingMode.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/math/RoundingMode.java Mon Aug 14 10:47:56 2017 -0700 @@ -51,13 +51,13 @@ * proper {@code MathContext}. A summary table showing the results * of these rounding operations for all rounding modes appears below. * - *<table class="plain"> + *<table class="striped"> * <caption><b>Summary of Rounding Operations Under Different Rounding Modes</b></caption> * <thead> - * <tr><th></th><th colspan=8>Result of rounding input to one digit with the given + * <tr><th scope="col" rowspan="2">Input Number</th><th scope="col"colspan=8>Result of rounding input to one digit with the given * rounding mode</th> * <tr style="vertical-align:top"> - * <th>Input Number</th> <th>{@code UP}</th> + * <th>{@code UP}</th> * <th>{@code DOWN}</th> * <th>{@code CEILING}</th> * <th>{@code FLOOR}</th> @@ -66,18 +66,18 @@ * <th>{@code HALF_EVEN}</th> * <th>{@code UNNECESSARY}</th> * </thead> - * <tbody> + * <tbody style="text-align:right"> * - * <tr style="text-align:right"><td>5.5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>2.5</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>1.6</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>1.1</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>1.0</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> - * <tr style="text-align:right"><td>-1.0</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> - * <tr style="text-align:right"><td>-1.1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>-1.6</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>-2.5</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>-3</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td> - * <tr style="text-align:right"><td>-5.5</td> <td>-6</td> <td>-5</td> <td>-5</td> <td>-6</td> <td>-6</td> <td>-5</td> <td>-6</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">5.5</th> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">2.5</th> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">1.6</th> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">1.1</th> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">1.0</th> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> + * <tr><th scope="row">-1.0</th> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> + * <tr><th scope="row">-1.1</th> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">-1.6</th> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">-2.5</th> <td>-3</td> <td>-2</td> <td>-2</td> <td>-3</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td> + * <tr><th scope="row">-5.5</th> <td>-6</td> <td>-5</td> <td>-5</td> <td>-6</td> <td>-6</td> <td>-5</td> <td>-6</td> <td>throw {@code ArithmeticException}</td> * </tbody> * </table> * @@ -104,23 +104,23 @@ * value. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode UP Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode UP Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code UP} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code UP} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>6</td> - *<tr style="text-align:right"><td>2.5</td> <td>3</td> - *<tr style="text-align:right"><td>1.6</td> <td>2</td> - *<tr style="text-align:right"><td>1.1</td> <td>2</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-2</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-2</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-3</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-6</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>6</td> + *<tr><th scope="row">2.5</th> <td>3</td> + *<tr><th scope="row">1.6</th> <td>2</td> + *<tr><th scope="row">1.1</th> <td>2</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-2</td> + *<tr><th scope="row">-1.6</th> <td>-2</td> + *<tr><th scope="row">-2.5</th> <td>-3</td> + *<tr><th scope="row">-5.5</th> <td>-6</td> *</tbody> *</table> */ @@ -132,23 +132,23 @@ * rounding mode never increases the magnitude of the calculated value. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode DOWN Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode DOWN Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code DOWN} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code DOWN} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>5</td> - *<tr style="text-align:right"><td>2.5</td> <td>2</td> - *<tr style="text-align:right"><td>1.6</td> <td>1</td> - *<tr style="text-align:right"><td>1.1</td> <td>1</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-1</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-2</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-5</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>5</td> + *<tr><th scope="row">2.5</th> <td>2</td> + *<tr><th scope="row">1.6</th> <td>1</td> + *<tr><th scope="row">1.1</th> <td>1</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-1</td> + *<tr><th scope="row">-1.6</th> <td>-1</td> + *<tr><th scope="row">-2.5</th> <td>-2</td> + *<tr><th scope="row">-5.5</th> <td>-5</td> *</tbody> *</table> */ @@ -161,23 +161,23 @@ * that this rounding mode never decreases the calculated value. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode CEILING Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode CEILING Examples</caption> *<thead> *<tr style="vertical-align:top"><th>Input Number</th> * <th>Input rounded to one digit<br> with {@code CEILING} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>6</td> - *<tr style="text-align:right"><td>2.5</td> <td>3</td> - *<tr style="text-align:right"><td>1.6</td> <td>2</td> - *<tr style="text-align:right"><td>1.1</td> <td>2</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-1</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-2</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-5</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>6</td> + *<tr><th scope="row">2.5</th> <td>3</td> + *<tr><th scope="row">1.6</th> <td>2</td> + *<tr><th scope="row">1.1</th> <td>2</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-1</td> + *<tr><th scope="row">-1.6</th> <td>-1</td> + *<tr><th scope="row">-2.5</th> <td>-2</td> + *<tr><th scope="row">-5.5</th> <td>-5</td> *</tbody> *</table> */ @@ -190,23 +190,23 @@ * this rounding mode never increases the calculated value. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode FLOOR Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode FLOOR Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code FLOOR} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code FLOOR} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>5</td> - *<tr style="text-align:right"><td>2.5</td> <td>2</td> - *<tr style="text-align:right"><td>1.6</td> <td>1</td> - *<tr style="text-align:right"><td>1.1</td> <td>1</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-2</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-2</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-3</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-6</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>5</td> + *<tr><th scope="row">2.5</th> <td>2</td> + *<tr><th scope="row">1.6</th> <td>1</td> + *<tr><th scope="row">1.1</th> <td>1</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-2</td> + *<tr><th scope="row">-1.6</th> <td>-2</td> + *<tr><th scope="row">-2.5</th> <td>-3</td> + *<tr><th scope="row">-5.5</th> <td>-6</td> *</tbody> *</table> */ @@ -221,23 +221,23 @@ * mode commonly taught at school. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode HALF_UP Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode HALF_UP Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code HALF_UP} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code HALF_UP} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>6</td> - *<tr style="text-align:right"><td>2.5</td> <td>3</td> - *<tr style="text-align:right"><td>1.6</td> <td>2</td> - *<tr style="text-align:right"><td>1.1</td> <td>1</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-2</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-3</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-6</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>6</td> + *<tr><th scope="row">2.5</th> <td>3</td> + *<tr><th scope="row">1.6</th> <td>2</td> + *<tr><th scope="row">1.1</th> <td>1</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-1</td> + *<tr><th scope="row">-1.6</th> <td>-2</td> + *<tr><th scope="row">-2.5</th> <td>-3</td> + *<tr><th scope="row">-5.5</th> <td>-6</td> *</tbody> *</table> */ @@ -251,23 +251,23 @@ * {@code RoundingMode.DOWN}. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode HALF_DOWN Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode HALF_DOWN Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code HALF_DOWN} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code HALF_DOWN} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>5</td> - *<tr style="text-align:right"><td>2.5</td> <td>2</td> - *<tr style="text-align:right"><td>1.6</td> <td>2</td> - *<tr style="text-align:right"><td>1.1</td> <td>1</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-2</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-2</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-5</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>5</td> + *<tr><th scope="row">2.5</th> <td>2</td> + *<tr><th scope="row">1.6</th> <td>2</td> + *<tr><th scope="row">1.1</th> <td>1</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-1</td> + *<tr><th scope="row">-1.6</th> <td>-2</td> + *<tr><th scope="row">-2.5</th> <td>-2</td> + *<tr><th scope="row">-5.5</th> <td>-5</td> *</tbody> *</table> */ @@ -288,23 +288,23 @@ * arithmetic in Java. * *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode HALF_EVEN Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode HALF_EVEN Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code HALF_EVEN} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code HALF_EVEN} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>6</td> - *<tr style="text-align:right"><td>2.5</td> <td>2</td> - *<tr style="text-align:right"><td>1.6</td> <td>2</td> - *<tr style="text-align:right"><td>1.1</td> <td>1</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.6</td> <td>-2</td> - *<tr style="text-align:right"><td>-2.5</td> <td>-2</td> - *<tr style="text-align:right"><td>-5.5</td> <td>-6</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>6</td> + *<tr><th scope="row">2.5</th> <td>2</td> + *<tr><th scope="row">1.6</th> <td>2</td> + *<tr><th scope="row">1.1</th> <td>1</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>-1</td> + *<tr><th scope="row">-1.6</th> <td>-2</td> + *<tr><th scope="row">-2.5</th> <td>-2</td> + *<tr><th scope="row">-5.5</th> <td>-6</td> *</tbody> *</table> */ @@ -316,23 +316,23 @@ * specified on an operation that yields an inexact result, an * {@code ArithmeticException} is thrown. *<p>Example: - *<table class="plain"> - * <caption><b>Rounding mode UNNECESSARY Examples</b></caption> + *<table class="striped"> + * <caption>Rounding mode UNNECESSARY Examples</caption> *<thead> - *<tr style="vertical-align:top"><th>Input Number</th> - * <th>Input rounded to one digit<br> with {@code UNNECESSARY} rounding + *<tr style="vertical-align:top"><th scope="col">Input Number</th> + * <th scope="col">Input rounded to one digit<br> with {@code UNNECESSARY} rounding *</thead> - *<tbody> - *<tr style="text-align:right"><td>5.5</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>2.5</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>1.6</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>1.1</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>1.0</td> <td>1</td> - *<tr style="text-align:right"><td>-1.0</td> <td>-1</td> - *<tr style="text-align:right"><td>-1.1</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>-1.6</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>-2.5</td> <td>throw {@code ArithmeticException}</td> - *<tr style="text-align:right"><td>-5.5</td> <td>throw {@code ArithmeticException}</td> + *<tbody style="text-align:right"> + *<tr><th scope="row">5.5</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">2.5</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">1.6</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">1.1</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">1.0</th> <td>1</td> + *<tr><th scope="row">-1.0</th> <td>-1</td> + *<tr><th scope="row">-1.1</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">-1.6</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">-2.5</th> <td>throw {@code ArithmeticException}</td> + *<tr><th scope="row">-5.5</th> <td>throw {@code ArithmeticException}</td> *</tbody> *</table> */
--- a/src/java.base/share/classes/java/nio/channels/package-info.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/nio/channels/package-info.java Mon Aug 14 10:47:56 2017 -0700 @@ -30,46 +30,50 @@ * * <a id="channels"></a> * - * <blockquote><table class="borderless"> + * <table class="striped" style="text-align:left; margin-left:2em"> * <caption style="display:none">Lists channels and their descriptions</caption> - * <tr><th style="text-align:left">Channels</th> - * <th style="text-align:left">Description</th></tr> - * <tr><td style="vertical-align:top"><i>{@link java.nio.channels.Channel}</i></td> + * <thead> + * <tr><th scope="col">Channels</th> + * <th scope="col">Description</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row"><i>{@link java.nio.channels.Channel}</i></th> * <td>A nexus for I/O operations</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.ReadableByteChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.channels.ReadableByteChannel}</i></span></th> * <td>Can read into a buffer</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.ScatteringByteChannel} </i></td> - * <td>Can read into a sequence of buffers</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.WritableByteChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"><i>{@link java.nio.channels.ScatteringByteChannel}</i></span></th> + * <td>Can read into a sequence of buffers</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.channels.WritableByteChannel}</i></span></th> * <td>Can write from a buffer</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.GatheringByteChannel}</i></td> - * <td>Can write from a sequence of buffers</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.ByteChannel}</i></td> - * <td>Can read/write to/from a buffer</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.SeekableByteChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"><i>{@link java.nio.channels.GatheringByteChannel}</i></span></th> + * <td>Can write from a sequence of buffers</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.channels.ByteChannel}</i></span></th> + * <td>Can read/write to/from a buffer</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:2em"><i>{@link java.nio.channels.SeekableByteChannel}</i></span></th> * <td>A {@code ByteChannel} connected to an entity that contains a variable-length * sequence of bytes</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.AsynchronousChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.channels.AsynchronousChannel}</i></span></th> * <td>Supports asynchronous I/O operations.</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.AsynchronousByteChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"><i>{@link java.nio.channels.AsynchronousByteChannel}</i></span></th> * <td>Can read and write bytes asynchronously</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.NetworkChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.channels.NetworkChannel}</i></span></th> * <td>A channel to a network socket</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.channels.MulticastChannel}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"><i>{@link java.nio.channels.MulticastChannel}</i></span></th> * <td>Can join Internet Protocol (IP) multicast groups</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.channels.Channels}</td> + * <tr><th scope="row">{@link java.nio.channels.Channels}</th> * <td>Utility methods for channel/stream interoperation</td></tr> - * </table></blockquote> + * </tbody> + * </table> * * <p> A <i>channel</i> represents an open connection to an entity such as a * hardware device, a file, a network socket, or a program component that is @@ -122,21 +126,25 @@ * be constructed that uses a given charset to encode characters into bytes and * write them to a given writable byte channel. * - * <blockquote><table class="borderless"> + * <table class="striped" style="margin-left:2em; text-align:left"> * <caption style="display:none"> * Lists file channels and their descriptions</caption> - * <tr><th style="text-align:left">File channels</th> - * <th style="text-align:left">Description</th></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.FileChannel}</td> + * <thead> + * <tr><th scope="col">File channels</th> + * <th scope="col">Description</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row"> + * {@link java.nio.channels.FileChannel}</th> * <td>Reads, writes, maps, and manipulates files</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.FileLock}</td> + * <tr><th scope="row"> + * {@link java.nio.channels.FileLock}</th> * <td>A lock on a (region of a) file</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.MappedByteBuffer} </td> - * <td>A direct byte buffer mapped to a region of a file</td></tr> - * </table></blockquote> + * <tr><th scope="row"> + * {@link java.nio.MappedByteBuffer}</th> + * <td>A direct byte buffer mapped to a region of a file</td></tr> + * </tbody> + * </table> * * <p> The {@link java.nio.channels.FileChannel} class supports the usual * operations of reading bytes from, and writing bytes to, a channel connected to @@ -156,36 +164,40 @@ * class. * * <a id="multiplex"></a> - * <blockquote><table class="borderless"> + * <table class="striped" style="margin-left:2em; text-align:left"> * <caption style="display:none"> * Lists multiplexed, non-blocking channels and their descriptions</caption> - * <tr><th style="text-align:left">Multiplexed, non-blocking I/O</th> - * <th style="text-align:left">Description</th></tr> - * <tr><td style="vertical-align:top">{@link java.nio.channels.SelectableChannel}</td> + * <thead> + * <tr><th scope="col">Multiplexed, non-blocking I/O</th> + * <th scope="col">Description</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row">{@link java.nio.channels.SelectableChannel}</th> * <td>A channel that can be multiplexed</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.DatagramChannel}</td> + * <tr><th scope="row"> + * <span style="padding-left:2em">{@link java.nio.channels.DatagramChannel}</span></th> * <td>A channel to a datagram-oriented socket</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.Pipe.SinkChannel}</td> + * <tr><th scope="row"> + * <span style="padding-left:2em">{@link java.nio.channels.Pipe.SinkChannel}</span></th> * <td>The write end of a pipe</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.Pipe.SourceChannel}</td> + * <tr><th scope="row"> + * <span style="padding-left:2em">{@link java.nio.channels.Pipe.SourceChannel}</span></th> * <td>The read end of a pipe</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.ServerSocketChannel} </td> + * <tr><th scope="row"> + * <span style="padding-left:2em">{@link java.nio.channels.ServerSocketChannel}</span></th> * <td>A channel to a stream-oriented listening socket</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.SocketChannel}</td> + * <tr><th scope="row"> + * <span style="padding-left:2em">{@link java.nio.channels.SocketChannel}</span></th> * <td>A channel for a stream-oriented connecting socket</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.channels.Selector}</td> + * <tr><th scope="row">{@link java.nio.channels.Selector}</th> * <td>A multiplexor of selectable channels</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.channels.SelectionKey}</td> - * <td>A token representing the registration <br> of a channel - * with a selector</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.channels.Pipe}</td> - * <td>Two channels that form a unidirectional pipe</td></tr> - * </table></blockquote> + * <tr><th scope="row">{@link java.nio.channels.SelectionKey}</th> + * <td>A token representing the registration of a channel + * with a selector</td></tr> + * <tr><th scope="row">{@link java.nio.channels.Pipe}</th> + * <td>Two channels that form a unidirectional pipe</td></tr> + * </tbody> + * </table> * * <p> Multiplexed, non-blocking I/O, which is much more scalable than * thread-oriented, blocking I/O, is provided by <i>selectors</i>, <i>selectable @@ -251,27 +263,31 @@ * * <a id="async"></a> * - * <blockquote><table class="borderless"> + * <table class="striped" style="padding-left:2em; text-align:left"> * <caption style="display:none"> * Lists asynchronous channels and their descriptions</caption> - * <tr><th style="text-align:left"> - * Asynchronous I/O</th><th style="text-align:left">Description</th></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.AsynchronousFileChannel}</td> + * <thead> + * <tr><th scope="col">Asynchronous I/O</th> + * <th scope="col">Description</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row"> + * {@link java.nio.channels.AsynchronousFileChannel}</th> * <td>An asynchronous channel for reading, writing, and manipulating a file</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.AsynchronousSocketChannel}</td> + * <tr><th scope="row"> + * {@link java.nio.channels.AsynchronousSocketChannel}</th> * <td>An asynchronous channel to a stream-oriented connecting socket</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.AsynchronousServerSocketChannel} </td> + * <tr><th scope="row"> + * {@link java.nio.channels.AsynchronousServerSocketChannel}</th> * <td>An asynchronous channel to a stream-oriented listening socket</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.CompletionHandler}</td> + * <tr><th scope="row"> + * {@link java.nio.channels.CompletionHandler}</th> * <td>A handler for consuming the result of an asynchronous operation</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.channels.AsynchronousChannelGroup}</td> + * <tr><th scope="row"> + * {@link java.nio.channels.AsynchronousChannelGroup}</th> * <td>A grouping of asynchronous channels for the purpose of resource sharing</td></tr> - * </table></blockquote> + * </tbody> + * </table> * * <p> {@link java.nio.channels.AsynchronousChannel Asynchronous channels} are a * special type of channel capable of asynchronous I/O operations. Asynchronous
--- a/src/java.base/share/classes/java/nio/charset/package-info.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/nio/charset/package-info.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,22 +27,25 @@ * Defines charsets, decoders, and encoders, for translating between * bytes and Unicode characters. * - * <blockquote><table class="borderless"> + * <table class="striped" style="margin-left:2em; text-align:left"> * <caption style="display:none">Summary of charsets, decoders, and encoders in this package</caption> - * <tr><th style="text-align:left">Class name</th> - * <th style="text-align:left"><th>DescriptiPath - * <tr><td style="vertical-align:top">{@link java.nio.charset.Charset}</td> - * <td>A named mapping between characters<br>and bytes</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.charset.CharsetDecoder}</td> + * <thead> + * <tr><th scope="col">Class name</th> + * <th scope="col">Description + * </thead> + * <tbody> + * <tr><th scope="row">{@link java.nio.charset.Charset}</th> + * <td>A named mapping between characters and bytes</td></tr> + * <tr><th scope="row">{@link java.nio.charset.CharsetDecoder}</th> * <td>Decodes bytes into characters</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.charset.CharsetEncoder}</td> + * <tr><th scope="row">{@link java.nio.charset.CharsetEncoder}</th> * <td>Encodes characters into bytes</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.charset.CoderResult}</td> + * <tr><th scope="row">{@link java.nio.charset.CoderResult}</th> * <td>Describes coder results</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.charset.CodingErrorAction}</td> - * <td>Describes actions to take when<br>coding errors are detected</td></tr> - * - * </table></blockquote> + * <tr><th scope="row">{@link java.nio.charset.CodingErrorAction}</th> + * <td>Describes actions to take when coding errors are detected</td></tr> + * </tbody> + * </table> * * <p> A <i>charset</i> is named mapping between sequences of * sixteen-bit Unicode characters and sequences of bytes, in the sense
--- a/src/java.base/share/classes/java/nio/file/FileSystem.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/nio/file/FileSystem.java Mon Aug 14 10:47:56 2017 -0700 @@ -314,45 +314,49 @@ * representation of the path is matched using a limited pattern language * that resembles regular expressions but with a simpler syntax. For example: * - * <blockquote> - * <table class="borderless"> + * <table class="striped" style="text-align:left; margin-left:2em"> * <caption style="display:none">Pattern Language</caption> + * <thead> + * <tr> + * <th scope="col">Example + * <th scope="col">Description + * </tr> + * </thead> * <tbody> * <tr> - * <td>{@code *.java}</td> + * <th scope="row">{@code *.java}</th> * <td>Matches a path that represents a file name ending in {@code .java}</td> * </tr> * <tr> - * <td>{@code *.*}</td> + * <th scope="row">{@code *.*}</th> * <td>Matches file names containing a dot</td> * </tr> * <tr> - * <td>{@code *.{java,class}}</td> + * <th scope="row">{@code *.{java,class}}</th> * <td>Matches file names ending with {@code .java} or {@code .class}</td> * </tr> * <tr> - * <td>{@code foo.?}</td> + * <th scope="row">{@code foo.?}</th> * <td>Matches file names starting with {@code foo.} and a single * character extension</td> * </tr> * <tr> - * <td><code>/home/*/*</code> + * <th scope="row"><code>/home/*/*</code> * <td>Matches <code>/home/gus/data</code> on UNIX platforms</td> * </tr> * <tr> - * <td><code>/home/**</code> + * <th scope="row"><code>/home/**</code> * <td>Matches <code>/home/gus</code> and * <code>/home/gus/data</code> on UNIX platforms</td> * </tr> * <tr> - * <td><code>C:\\*</code> + * <th scope="row"><code>C:\\*</code> * <td>Matches <code>C:\foo</code> and <code>C:\bar</code> on the Windows * platform (note that the backslash is escaped; as a string literal in the * Java Language the pattern would be <code>"C:\\\\*"</code>) </td> * </tr> * </tbody> * </table> - * </blockquote> * * <p> The following rules are used to interpret glob patterns: *
--- a/src/java.base/share/classes/java/nio/file/Files.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/nio/file/Files.java Mon Aug 14 10:47:56 2017 -0700 @@ -1923,30 +1923,33 @@ * <p> The following examples demonstrate possible values for the {@code * attributes} parameter: * - * <blockquote> - * <table class="borderless"> + * <table class="striped" style="text-align: left; margin-left:2em"> * <caption style="display:none">Possible values</caption> + * <thead> + * <tr> + * <th scope="col">Example + * <th scope="col">Description + * </thead> * <tbody> * <tr> - * <td> {@code "*"} </td> + * <th scope="row"> {@code "*"} </th> * <td> Read all {@link BasicFileAttributes basic-file-attributes}. </td> * </tr> * <tr> - * <td> {@code "size,lastModifiedTime,lastAccessTime"} </td> + * <th scope="row"> {@code "size,lastModifiedTime,lastAccessTime"} </th> * <td> Reads the file size, last modified time, and last access time * attributes. </td> * </tr> * <tr> - * <td> {@code "posix:*"} </td> + * <th scope="row"> {@code "posix:*"} </th> * <td> Read all {@link PosixFileAttributes POSIX-file-attributes}. </td> * </tr> * <tr> - * <td> {@code "posix:permissions,owner,size"} </td> + * <th scope="row"> {@code "posix:permissions,owner,size"} </th> * <td> Reads the POSIX file permissions, owner, and file size. </td> * </tr> * </tbody> * </table> - * </blockquote> * * <p> The {@code options} array may be used to indicate how symbolic links * are handled for the case that the file is a symbolic link. By default,
--- a/src/java.base/share/classes/java/nio/file/attribute/package-info.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/nio/file/attribute/package-info.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,43 +26,47 @@ /** * Interfaces and classes providing access to file and file system attributes. * - * <blockquote><table class="borderless"> + * <table class="striped" style="padding-left:2em; text-align:left"> * <caption style="display:none">Attribute views</caption> - * <tr><th style="text-align:left">Attribute views</th> - * <th style="text-align:left">Description</th></tr> - * <tr><td><i>{@link java.nio.file.attribute.AttributeView}</i></td> + * <thead> + * <tr><th scope="col">Attribute views</th> + * <th scope="col">Description</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row"><i>{@link java.nio.file.attribute.AttributeView}</i></th> * <td>Can read or update non-opaque values associated with objects in a file system</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.file.attribute.FileAttributeView}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.file.attribute.FileAttributeView}</i></span></th> * <td>Can read or update file attributes</td></tr> - * <tr><td style="vertical-align:top"> - * - * <i>{@link java.nio.file.attribute.BasicFileAttributeView} </i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"> + * <i>{@link java.nio.file.attribute.BasicFileAttributeView}</i></span></th> * <td>Can read or update a basic set of file attributes</td></tr> - * <tr><td style="vertical-align:top"> - * - * <i>{@link java.nio.file.attribute.PosixFileAttributeView} </i></td> + * <tr><th scope="row"> + * <span style="padding-left:3em"> + * <i>{@link java.nio.file.attribute.PosixFileAttributeView}</i></span></th> * <td>Can read or update POSIX defined file attributes</td></tr> - * <tr><td style="vertical-align:top"> - * - * <i>{@link java.nio.file.attribute.DosFileAttributeView} </i></td> + * <tr><th scope="row"> + * <span style="padding-left:3em"> + * <i>{@link java.nio.file.attribute.DosFileAttributeView}</i></span></th> * <td>Can read or update FAT file attributes</td></tr> - * <tr><td style="vertical-align:top"> - * - * <i>{@link java.nio.file.attribute.FileOwnerAttributeView} </i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"> + * <i>{@link java.nio.file.attribute.FileOwnerAttributeView}</i></span></th> * <td>Can read or update the owner of a file</td></tr> - * <tr><td style="vertical-align:top"> - * - * <i>{@link java.nio.file.attribute.AclFileAttributeView} </i></td> + * <tr><th scope="row"> + * <span style="padding-left:3em"> + * <i>{@link java.nio.file.attribute.AclFileAttributeView}</i></span></th> * <td>Can read or update Access Control Lists</td></tr> - * <tr><td style="vertical-align:top"> - * - * <i>{@link java.nio.file.attribute.UserDefinedFileAttributeView} </i></td> + * <tr><th scope="row"> + * <span style="padding-left:2em"> + * <i>{@link java.nio.file.attribute.UserDefinedFileAttributeView}</i></span></th> * <td>Can read or update user-defined file attributes</td></tr> - * <tr><td style="vertical-align:top"> - * <i>{@link java.nio.file.attribute.FileStoreAttributeView}</i></td> + * <tr><th scope="row"> + * <span style="padding-left:1em"><i>{@link java.nio.file.attribute.FileStoreAttributeView}</i></span></th> * <td>Can read or update file system attributes</td></tr> - * </table></blockquote> + * </tbody> + * </table> * * <p> An attribute view provides a read-only or updatable view of the non-opaque * values, or <em>metadata</em>, associated with objects in a file system.
--- a/src/java.base/share/classes/java/nio/package-info.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/nio/package-info.java Mon Aug 14 10:47:56 2017 -0700 @@ -48,7 +48,7 @@ * <li><p> <i>Selectors</i> and <i>selection keys</i>, which * together with <br> <i>selectable channels</i> define a <a * href="channels/package-summary.html#multiplex">multiplexed, - * non-blocking <br> I/O</a> facility. </p></li> + * non-blocking <br> I/O</a> facility. </p></li> * * </ul> * @@ -62,33 +62,44 @@ * * <a id="buffers"> </a> * - * <blockquote><table class="borderless"> + * <table class="striped" style="margin-left:2em; text-align:left"> * <caption style="display:none">Description of the various buffers</caption> - * <tr><th style="text-align:left">Buffers</th> - * <th style="text-align:left">Description</th></tr> - * <tr><td style="vertical-align:top">{@link java.nio.Buffer}</td> + * <thead> + * <tr><th scope="col">Buffers</th> + * <th scope="col">Description</th></tr> + * </thead> + * <tbody> + * <tr><th scope="row">{@link java.nio.Buffer}</th> * <td>Position, limit, and capacity; - * <br>clear, flip, rewind, and mark/reset</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.ByteBuffer}</td> - * <td>Get/put, compact, views; allocate, wrap</td></tr> - * <tr><td style="vertical-align:top"> - * {@link java.nio.MappedByteBuffer} </td> + * clear, flip, rewind, and mark/reset</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.ByteBuffer}</span></th> + * <td>Get/put, compact, views; allocate, wrap</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:2em">{@link java.nio.MappedByteBuffer}</span></th> * <td>A byte buffer mapped to a file</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.CharBuffer}</td> - * <td>Get/put, compact; allocate, wrap</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.DoubleBuffer}</td> - * <td> ' '</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.FloatBuffer}</td> - * <td> ' '</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.IntBuffer}</td> - * <td> ' '</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.LongBuffer}</td> - * <td> ' '</td></tr> - * <tr><td style="vertical-align:top"> {@link java.nio.ShortBuffer}</td> - * <td> ' '</td></tr> - * <tr><td style="vertical-align:top">{@link java.nio.ByteOrder}</td> - * <td>Typesafe enumeration for byte orders</td></tr> - * </table></blockquote> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.CharBuffer}</span></th> + * <td>Get/put, compact; allocate, wrap</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.DoubleBuffer}</span></th> + * <td>Get/put, compact; allocate, wrap</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.FloatBuffer}</span></th> + * <td>Get/put, compact; allocate, wrap</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.IntBuffer}</span></th> + * <td>Get/put, compact; allocate, wrap</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.LongBuffer}</span></th> + * <td>Get/put, compact; allocate, wrap</td></tr> + * <tr><th scope="row"> + * <span style="padding-left:1em">{@link java.nio.ShortBuffer}</span></th> + * <td>Get/put, compact; allocate, wrap</td></tr> + * <tr><th scope="row">{@link java.nio.ByteOrder}</th> + * <td>Typesafe enumeration for byte orders</td></tr> + * </tbody> + * </table> * * <p> A <i>buffer</i> is a container for a fixed amount of data of a * specific primitive type. In addition to its content a buffer has a
--- a/src/java.base/share/classes/java/text/MessageFormat.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/text/MessageFormat.java Mon Aug 14 10:47:56 2017 -0700 @@ -150,73 +150,73 @@ * <caption style="display:none">Shows how FormatType and FormatStyle values map to Format instances</caption> * <thead> * <tr> - * <th id="ft" class="TableHeadingColor">FormatType - * <th id="fs" class="TableHeadingColor">FormatStyle - * <th id="sc" class="TableHeadingColor">Subformat Created + * <th scope="col" class="TableHeadingColor">FormatType + * <th scope="col" class="TableHeadingColor">FormatStyle + * <th scope="col" class="TableHeadingColor">Subformat Created * </thead> * <tbody> * <tr> - * <td headers="ft"><i>(none)</i> - * <td headers="fs"><i>(none)</i> - * <td headers="sc"><code>null</code> + * <th scope="row" style="text-weight: normal"><i>(none)</i> + * <th scope="row" style="text-weight: normal"><i>(none)</i> + * <td>{@code null} * <tr> - * <td headers="ft" rowspan=5><code>number</code> - * <td headers="fs"><i>(none)</i> - * <td headers="sc">{@link NumberFormat#getInstance(Locale) NumberFormat.getInstance}{@code (getLocale())} + * <th scope="row" style="text-weight: normal" rowspan=5>{@code number} + * <th scope="row" style="text-weight: normal"><i>(none)</i> + * <td>{@link NumberFormat#getInstance(Locale) NumberFormat.getInstance}{@code (getLocale())} * <tr> - * <td headers="fs"><code>integer</code> - * <td headers="sc">{@link NumberFormat#getIntegerInstance(Locale) NumberFormat.getIntegerInstance}{@code (getLocale())} + * <th scope="row" style="text-weight: normal">{@code integer} + * <td>{@link NumberFormat#getIntegerInstance(Locale) NumberFormat.getIntegerInstance}{@code (getLocale())} * <tr> - * <td headers="fs"><code>currency</code> - * <td headers="sc">{@link NumberFormat#getCurrencyInstance(Locale) NumberFormat.getCurrencyInstance}{@code (getLocale())} + * <th scope="row" style="text-weight: normal">{@code currency} + * <td>{@link NumberFormat#getCurrencyInstance(Locale) NumberFormat.getCurrencyInstance}{@code (getLocale())} * <tr> - * <td headers="fs"><code>percent</code> - * <td headers="sc">{@link NumberFormat#getPercentInstance(Locale) NumberFormat.getPercentInstance}{@code (getLocale())} + * <th scope="row" style="text-weight: normal">{@code percent} + * <td>{@link NumberFormat#getPercentInstance(Locale) NumberFormat.getPercentInstance}{@code (getLocale())} * <tr> - * <td headers="fs"><i>SubformatPattern</i> - * <td headers="sc">{@code new} {@link DecimalFormat#DecimalFormat(String,DecimalFormatSymbols) DecimalFormat}{@code (subformatPattern,} {@link DecimalFormatSymbols#getInstance(Locale) DecimalFormatSymbols.getInstance}{@code (getLocale()))} + * <th scope="row" style="text-weight: normal"><i>SubformatPattern</i> + * <td>{@code new} {@link DecimalFormat#DecimalFormat(String,DecimalFormatSymbols) DecimalFormat}{@code (subformatPattern,} {@link DecimalFormatSymbols#getInstance(Locale) DecimalFormatSymbols.getInstance}{@code (getLocale()))} * <tr> - * <td headers="ft" rowspan=6><code>date</code> - * <td headers="fs"><i>(none)</i> - * <td headers="sc">{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} + * <th scope="row" style="text-weight: normal" rowspan=6>{@code date} + * <th scope="row" style="text-weight: normal"><i>(none)</i> + * <td>{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * <tr> - * <td headers="fs"><code>short</code> - * <td headers="sc">{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#SHORT}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code short} + * <td>{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#SHORT}{@code , getLocale())} * <tr> - * <td headers="fs"><code>medium</code> - * <td headers="sc">{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code medium} + * <td>{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * <tr> - * <td headers="fs"><code>long</code> - * <td headers="sc">{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#LONG}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code long} + * <td>{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#LONG}{@code , getLocale())} * <tr> - * <td headers="fs"><code>full</code> - * <td headers="sc">{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#FULL}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code full} + * <td>{@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#FULL}{@code , getLocale())} * <tr> - * <td headers="fs"><i>SubformatPattern</i> - * <td headers="sc">{@code new} {@link SimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat}{@code (subformatPattern, getLocale())} + * <th scope="row" style="text-weight: normal"><i>SubformatPattern</i> + * <td>{@code new} {@link SimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat}{@code (subformatPattern, getLocale())} * <tr> - * <td headers="ft" rowspan=6><code>time</code> - * <td headers="fs"><i>(none)</i> - * <td headers="sc">{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} + * <th scope="row" style="text-weight: normal" rowspan=6>{@code time} + * <th scope="row" style="text-weight: normal"><i>(none)</i> + * <td>{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * <tr> - * <td headers="fs"><code>short</code> - * <td headers="sc">{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#SHORT}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code short} + * <td>{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#SHORT}{@code , getLocale())} * <tr> - * <td headers="fs"><code>medium</code> - * <td headers="sc">{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code medium} + * <td>{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * <tr> - * <td headers="fs"><code>long</code> - * <td headers="sc">{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#LONG}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code long} + * <td>{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#LONG}{@code , getLocale())} * <tr> - * <td headers="fs"><code>full</code> - * <td headers="sc">{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#FULL}{@code , getLocale())} + * <th scope="row" style="text-weight: normal">{@code full} + * <td>{@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#FULL}{@code , getLocale())} * <tr> - * <td headers="fs"><i>SubformatPattern</i> - * <td headers="sc">{@code new} {@link SimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat}{@code (subformatPattern, getLocale())} + * <th scope="row" style="text-weight: normal"><i>SubformatPattern</i> + * <td>{@code new} {@link SimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat}{@code (subformatPattern, getLocale())} * <tr> - * <td headers="ft"><code>choice</code> - * <td headers="fs"><i>SubformatPattern</i> - * <td headers="sc">{@code new} {@link ChoiceFormat#ChoiceFormat(String) ChoiceFormat}{@code (subformatPattern)} + * <th scope="row" style="text-weight: normal">{@code choice} + * <th scope="row" style="text-weight: normal"><i>SubformatPattern</i> + * <td>{@code new} {@link ChoiceFormat#ChoiceFormat(String) ChoiceFormat}{@code (subformatPattern)} * </tbody> * </table> * @@ -776,44 +776,40 @@ * <caption style="display:none">Examples of subformat,argument,and formatted text</caption> * <thead> * <tr> - * <th>Subformat - * <th>Argument - * <th>Formatted Text + * <th scope="col">Subformat + * <th scope="col">Argument + * <th scope="col">Formatted Text * </thead> * <tbody> * <tr> - * <td><i>any</i> - * <td><i>unavailable</i> + * <th scope="row" style="text-weight-normal" rowspan=2><i>any</i> + * <th scope="row" style="text-weight-normal"><i>unavailable</i> * <td><code>"{" + argumentIndex + "}"</code> * <tr> - * <td><i>any</i> - * <td><code>null</code> + * <th scope="row" style="text-weight-normal"><code>null</code> * <td><code>"null"</code> * <tr> - * <td><code>instanceof ChoiceFormat</code> - * <td><i>any</i> + * <th scope="row" style="text-weight-normal"><code>instanceof ChoiceFormat</code> + * <th scope="row" style="text-weight-normal"><i>any</i> * <td><code>subformat.format(argument).indexOf('{') >= 0 ?<br> * (new MessageFormat(subformat.format(argument), getLocale())).format(argument) : * subformat.format(argument)</code> * <tr> - * <td><code>!= null</code> - * <td><i>any</i> + * <th scope="row" style="text-weight-normal"><code>!= null</code> + * <th scope="row" style="text-weight-normal"><i>any</i> * <td><code>subformat.format(argument)</code> * <tr> - * <td><code>null</code> - * <td><code>instanceof Number</code> + * <th scope="row" style="text-weight-normal" rowspan=4><code>null</code> + * <th scope="row" style="text-weight-normal"><code>instanceof Number</code> * <td><code>NumberFormat.getInstance(getLocale()).format(argument)</code> * <tr> - * <td><code>null</code> - * <td><code>instanceof Date</code> + * <th scope="row" style="text-weight-normal"><code>instanceof Date</code> * <td><code>DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale()).format(argument)</code> * <tr> - * <td><code>null</code> - * <td><code>instanceof String</code> + * <th scope="row" style="text-weight-normal"><code>instanceof String</code> * <td><code>argument</code> * <tr> - * <td><code>null</code> - * <td><i>any</i> + * <th scope="row" style="text-weight-normal"><i>any</i> * <td><code>argument.toString()</code> * </tbody> * </table>
--- a/src/java.base/share/classes/java/time/chrono/HijrahChronology.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/chrono/HijrahChronology.java Mon Aug 14 10:47:56 2017 -0700 @@ -103,19 +103,19 @@ * * <p> * CLDR and LDML identify variants: - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption style="display:none">Variants of Hijrah Calendars</caption> * <thead> * <tr> - * <th style="text-align:left" >Chronology ID</th> - * <th style="text-align:left" >Calendar Type</th> - * <th style="text-align:left" >Locale extension, see {@link java.util.Locale}</th> - * <th style="text-align:left" >Description</th> + * <th scope="col">Chronology ID</th> + * <th scope="col">Calendar Type</th> + * <th scope="col">Locale extension, see {@link java.util.Locale}</th> + * <th scope="col">Description</th> * </tr> * </thead> * <tbody> * <tr> - * <td>Hijrah-umalqura</td> + * <th scope="row">Hijrah-umalqura</th> * <td>islamic-umalqura</td> * <td>ca-islamic-umalqura</td> * <td>Islamic - Umm Al-Qura calendar of Saudi Arabia</td> @@ -148,38 +148,38 @@ * <p> * The Hijrah property resource is a set of properties that describe the calendar. * The syntax is defined by {@code java.util.Properties#load(Reader)}. - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption style="display:none">Configuration of Hijrah Calendar</caption> * <thead> * <tr> - * <th style="text-align:left" > Property Name</th> - * <th style="text-align:left" > Property value</th> - * <th style="text-align:left" > Description </th> + * <th scope="col">Property Name</th> + * <th scope="col">Property value</th> + * <th scope="col">Description</th> * </tr> * </thead> * <tbody> * <tr> - * <td>id</td> + * <th scope="row">id</th> * <td>Chronology Id, for example, "Hijrah-umalqura"</td> * <td>The Id of the calendar in common usage</td> * </tr> * <tr> - * <td>type</td> + * <th scope="row">type</th> * <td>Calendar type, for example, "islamic-umalqura"</td> * <td>LDML defines the calendar types</td> * </tr> * <tr> - * <td>version</td> + * <th scope="row">version</th> * <td>Version, for example: "1.8.0_1"</td> * <td>The version of the Hijrah variant data</td> * </tr> * <tr> - * <td>iso-start</td> + * <th scope="row">iso-start</th> * <td>ISO start date, formatted as {@code yyyy-MM-dd}, for example: "1900-04-30"</td> * <td>The ISO date of the first day of the minimum Hijrah year.</td> * </tr> * <tr> - * <td>yyyy - a numeric 4 digit year, for example "1434"</td> + * <th scope="row">yyyy - a numeric 4 digit year, for example "1434"</th> * <td>The value is a sequence of 12 month lengths, * for example: "29 30 29 30 29 30 30 30 29 30 29 29"</td> * <td>The lengths of the 12 months of the year separated by whitespace.
--- a/src/java.base/share/classes/java/time/chrono/IsoEra.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/chrono/IsoEra.java Mon Aug 14 10:47:56 2017 -0700 @@ -70,27 +70,27 @@ * A definition has therefore been created with two eras - 'Current era' (CE) for * years on or after 0001-01-01 (ISO), and 'Before current era' (BCE) for years before that. * - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption style="display:none">ISO years and eras</caption> * <thead> * <tr> - * <th style="text-align:left">year-of-era</th> - * <th style="text-align:left">era</th> - * <th style="text-align:left">proleptic-year</th> + * <th scope="col">year-of-era</th> + * <th scope="col">era</th> + * <th scope="col">proleptic-year</th> * </tr> * </thead> * <tbody> * <tr> - * <td>2</td><td>CE</td><td>2</td> + * <td>2</td><td>CE</td><th scope="row">2</th> * </tr> * <tr> - * <td>1</td><td>CE</td><td>1</td> + * <td>1</td><td>CE</td><th scope="row">1</th> * </tr> * <tr> - * <td>1</td><td>BCE</td><td>0</td> + * <td>1</td><td>BCE</td><th scope="row">0</th> * </tr> * <tr> - * <td>2</td><td>BCE</td><td>-1</td> + * <td>2</td><td>BCE</td><th scope="row">-1</th> * </tr> * </tbody> * </table>
--- a/src/java.base/share/classes/java/time/chrono/MinguoEra.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/chrono/MinguoEra.java Mon Aug 14 10:47:56 2017 -0700 @@ -71,28 +71,28 @@ * All previous years, zero or earlier in the proleptic count or one and greater * in the year-of-era count, are part of the 'Before Republic of China' era. * - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption style="display:none">Minguo years and eras</caption> * <thead> * <tr> - * <th style="text-align:left">year-of-era</th> - * <th style="text-align:left">era</th> - * <th style="text-align:left">proleptic-year</th> - * <th style="text-align:left">ISO proleptic-year</th> + * <th>year-of-era</th> + * <th>era</th> + * <th>proleptic-year</th> + * <th>ISO proleptic-year</th> * </tr> * </thead> * <tbody> * <tr> - * <td>2</td><td>ROC</td><td>2</td><td>1913</td> + * <td>2</td><td>ROC</td><th scope="row">2</th><td>1913</td> * </tr> * <tr> - * <td>1</td><td>ROC</td><td>1</td><td>1912</td> + * <td>1</td><td>ROC</td><th scope="row">1</th><td>1912</td> * </tr> * <tr> - * <td>1</td><td>BEFORE_ROC</td><td>0</td><td>1911</td> + * <td>1</td><td>BEFORE_ROC</td><th scope="row">0</th><td>1911</td> * </tr> * <tr> - * <td>2</td><td>BEFORE_ROC</td><td>-1</td><td>1910</td> + * <td>2</td><td>BEFORE_ROC</td><th scope="row">-1</th><td>1910</td> * </tr> * </tbody> * </table>
--- a/src/java.base/share/classes/java/time/chrono/ThaiBuddhistEra.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/chrono/ThaiBuddhistEra.java Mon Aug 14 10:47:56 2017 -0700 @@ -71,28 +71,28 @@ * All previous years, zero or earlier in the proleptic count or one and greater * in the year-of-era count, are part of the 'Before Buddhist' era. * - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption style="display:none">Buddhist years and eras</caption> * <thead> * <tr> - * <th style="text-align:left">year-of-era</th> - * <th style="text-align:left">era</th> - * <th style="text-align:left">proleptic-year</th> - * <th style="text-align:left">ISO proleptic-year</th> + * <th scope="col">year-of-era</th> + * <th scope="col">era</th> + * <th scope="col">proleptic-year</th> + * <th scope="col">ISO proleptic-year</th> * </tr> * </thead> * <tbody> * <tr> - * <td>2</td><td>BE</td><td>2</td><td>-542</td> + * <td>2</td><td>BE</td><th scope="row">2</th><td>-542</td> * </tr> * <tr> - * <td>1</td><td>BE</td><td>1</td><td>-543</td> + * <td>1</td><td>BE</td><th scope="row">1</th><td>-543</td> * </tr> * <tr> - * <td>1</td><td>BEFORE_BE</td><td>0</td><td>-544</td> + * <td>1</td><td>BEFORE_BE</td><th scope="row">0</th><td>-544</td> * </tr> * <tr> - * <td>2</td><td>BEFORE_BE</td><td>-1</td><td>-545</td> + * <td>2</td><td>BEFORE_BE</td><th scope="row">-1</th><td>-545</td> * </tr> * </tbody> * </table>
--- a/src/java.base/share/classes/java/time/format/DateTimeFormatter.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/format/DateTimeFormatter.java Mon Aug 14 10:47:56 2017 -0700 @@ -150,13 +150,13 @@ * implementation of {@code java.text.Format}. * * <h3 id="predefined">Predefined Formatters</h3> - * <table class="striped"> + * <table class="striped" style="text-align:left"> * <caption>Predefined Formatters</caption> * <thead> * <tr> - * <th scope="col" style="text-align:left">Formatter</th> - * <th scope="col" style="text-align:left">Description</th> - * <th scope="col" style="text-align:left">Example</th> + * <th scope="col">Formatter</th> + * <th scope="col">Description</th> + * <th scope="col">Example</th> * </tr> * </thead> * <tbody> @@ -276,56 +276,60 @@ * <p> * All letters 'A' to 'Z' and 'a' to 'z' are reserved as pattern letters. The * following pattern letters are defined: - * <pre> - * Symbol Meaning Presentation Examples - * ------ ------- ------------ ------- - * G era text AD; Anno Domini; A - * u year year 2004; 04 - * y year-of-era year 2004; 04 - * D day-of-year number 189 - * M/L month-of-year number/text 7; 07; Jul; July; J - * d day-of-month number 10 - * g modified-julian-day number 2451334 + * <table class="striped"> + * <caption>Pattern Letters and Symbols</caption> + * <thead> + * <tr><th scope="col">Symbol</th> <th scope="col">Meaning</th> <th scope="col">Presentation</th> <th scope="col">Examples</th> + * </thead> + * <tbody> + * <tr><th scope="row">G</th> <td>era</td> <td>text</td> <td>AD; Anno Domini; A</td> + * <tr><th scope="row">u</th> <td>year</td> <td>year</td> <td>2004; 04</td> + * <tr><th scope="row">y</th> <td>year-of-era</td> <td>year</td> <td>2004; 04</td> + * <tr><th scope="row">D</th> <td>day-of-year</td> <td>number</td> <td>189</td> + * <tr><th scope="row">M/L</th> <td>month-of-year</td> <td>number/text</td> <td>7; 07; Jul; July; J</td> + * <tr><th scope="row">d</th> <td>day-of-month</td> <td>number</td> <td>10</td> + * <tr><th scope="row">g</th> <td>modified-julian-day</td> <td>number</td> <td>2451334</td> * - * Q/q quarter-of-year number/text 3; 03; Q3; 3rd quarter - * Y week-based-year year 1996; 96 - * w week-of-week-based-year number 27 - * W week-of-month number 4 - * E day-of-week text Tue; Tuesday; T - * e/c localized day-of-week number/text 2; 02; Tue; Tuesday; T - * F day-of-week-in-month number 3 + * <tr><th scope="row">Q/q</th> <td>quarter-of-year</td> <td>number/text</td> <td>3; 03; Q3; 3rd quarter</td> + * <tr><th scope="row">Y</th> <td>week-based-year</td> <td>year</td> <td>1996; 96</td> + * <tr><th scope="row">w</th> <td>week-of-week-based-year</td> <td>number</td> <td>27</td> + * <tr><th scope="row">W</th> <td>week-of-month</td> <td>number</td> <td>4</td> + * <tr><th scope="row">E</th> <td>day-of-week</td> <td>text</td> <td>Tue; Tuesday; T</td> + * <tr><th scope="row">e/c</th> <td>localized day-of-week</td> <td>number/text</td> <td>2; 02; Tue; Tuesday; T</td> + * <tr><th scope="row">F</th> <td>day-of-week-in-month</td> <td>number</td> <td>3</td> * - * a am-pm-of-day text PM - * h clock-hour-of-am-pm (1-12) number 12 - * K hour-of-am-pm (0-11) number 0 - * k clock-hour-of-day (1-24) number 24 + * <tr><th scope="row">a</th> <td>am-pm-of-day</td> <td>text</td> <td>PM</td> + * <tr><th scope="row">h</th> <td>clock-hour-of-am-pm (1-12)</td> <td>number</td> <td>12</td> + * <tr><th scope="row">K</th> <td>hour-of-am-pm (0-11)</td> <td>number</td> <td>0</td> + * <tr><th scope="row">k</th> <td>clock-hour-of-day (1-24)</td> <td>number</td> <td>24</td> * - * H hour-of-day (0-23) number 0 - * m minute-of-hour number 30 - * s second-of-minute number 55 - * S fraction-of-second fraction 978 - * A milli-of-day number 1234 - * n nano-of-second number 987654321 - * N nano-of-day number 1234000000 + * <tr><th scope="row">H</th> <td>hour-of-day (0-23)</td> <td>number</td> <td>0</td> + * <tr><th scope="row">m</th> <td>minute-of-hour</td> <td>number</td> <td>30</td> + * <tr><th scope="row">s</th> <td>second-of-minute</td> <td>number</td> <td>55</td> + * <tr><th scope="row">S</th> <td>fraction-of-second</td> <td>fraction</td> <td>978</td> + * <tr><th scope="row">A</th> <td>milli-of-day</td> <td>number</td> <td>1234</td> + * <tr><th scope="row">n</th> <td>nano-of-second</td> <td>number</td> <td>987654321</td> + * <tr><th scope="row">N</th> <td>nano-of-day</td> <td>number</td> <td>1234000000</td> * - * V time-zone ID zone-id America/Los_Angeles; Z; -08:30 - * v generic time-zone name zone-name Pacific Time; PT - * z time-zone name zone-name Pacific Standard Time; PST - * O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00 - * X zone-offset 'Z' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15 - * x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15 - * Z zone-offset offset-Z +0000; -0800; -08:00 + * <tr><th scope="row">V</th> <td>time-zone ID</td> <td>zone-id</td> <td>America/Los_Angeles; Z; -08:30</td> + * <tr><th scope="row">v</th> <td>generic time-zone name</td> <td>zone-name</td> <td>Pacific Time; PT</td> + * <tr><th scope="row">z</th> <td>time-zone name</td> <td>zone-name</td> <td>Pacific Standard Time; PST</td> + * <tr><th scope="row">O</th> <td>localized zone-offset</td> <td>offset-O</td> <td>GMT+8; GMT+08:00; UTC-08:00</td> + * <tr><th scope="row">X</th> <td>zone-offset 'Z' for zero</td> <td>offset-X</td> <td>Z; -08; -0830; -08:30; -083015; -08:30:15</td> + * <tr><th scope="row">x</th> <td>zone-offset</td> <td>offset-x</td> <td>+0000; -08; -0830; -08:30; -083015; -08:30:15</td> + * <tr><th scope="row">Z</th> <td>zone-offset</td> <td>offset-Z</td> <td>+0000; -0800; -08:00</td> * - * p pad next pad modifier 1 + * <tr><th scope="row">p</th> <td>pad next</td> <td>pad modifier</td> <td>1</td> * - * ' escape for text delimiter - * '' single quote literal ' - * [ optional section start - * ] optional section end - * # reserved for future use - * { reserved for future use - * } reserved for future use - * </pre> + * <tr><th scope="row">'</th> <td>escape for text</td> <td>delimiter</td> <td></td> + * <tr><th scope="row">''</th> <td>single quote</td> <td>literal</td> <td>'</td> + * <tr><th scope="row">[</th> <td>optional section start</td> <td></td> <td></td> + * <tr><th scope="row">]</th> <td>optional section end</td> <td></td> <td></td> + * <tr><th scope="row">#</th> <td>reserved for future use</td> <td></td> <td></td> + * <tr><th scope="row">{</th> <td>reserved for future use</td> <td></td> <td></td> + * <tr><th scope="row">}</th> <td>reserved for future use</td> <td></td> <td></td> + * </tbody> + * </table> * <p> * The count of pattern letters determines the format. * <p>
--- a/src/java.base/share/classes/java/time/temporal/IsoFields.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/temporal/IsoFields.java Mon Aug 14 10:47:56 2017 -0700 @@ -136,18 +136,18 @@ * <p> * For example: * - * <table class=striped style="text-align: left; width: 50%;"> + * <table class=striped style="text-align: left"> * <caption>Examples of Week based Years</caption> * <thead> - * <tr><th>Date</th><th>Day-of-week</th><th>Field values</th></tr> + * <tr><th scope="col">Date</th><th scope="col">Day-of-week</th><th scope="col">Field values</th></tr> * </thead> * <tbody> - * <tr><th>2008-12-28</th><td>Sunday</td><td>Week 52 of week-based-year 2008</td></tr> - * <tr><th>2008-12-29</th><td>Monday</td><td>Week 1 of week-based-year 2009</td></tr> - * <tr><th>2008-12-31</th><td>Wednesday</td><td>Week 1 of week-based-year 2009</td></tr> - * <tr><th>2009-01-01</th><td>Thursday</td><td>Week 1 of week-based-year 2009</td></tr> - * <tr><th>2009-01-04</th><td>Sunday</td><td>Week 1 of week-based-year 2009</td></tr> - * <tr><th>2009-01-05</th><td>Monday</td><td>Week 2 of week-based-year 2009</td></tr> + * <tr><th scope="row">2008-12-28</th><td>Sunday</td><td>Week 52 of week-based-year 2008</td></tr> + * <tr><th scope="row">2008-12-29</th><td>Monday</td><td>Week 1 of week-based-year 2009</td></tr> + * <tr><th scope="row">2008-12-31</th><td>Wednesday</td><td>Week 1 of week-based-year 2009</td></tr> + * <tr><th scope="row">2009-01-01</th><td>Thursday</td><td>Week 1 of week-based-year 2009</td></tr> + * <tr><th scope="row">2009-01-04</th><td>Sunday</td><td>Week 1 of week-based-year 2009</td></tr> + * <tr><th scope="row">2009-01-05</th><td>Monday</td><td>Week 2 of week-based-year 2009</td></tr> * </tbody> * </table> *
--- a/src/java.base/share/classes/java/time/temporal/WeekFields.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/time/temporal/WeekFields.java Mon Aug 14 10:47:56 2017 -0700 @@ -130,17 +130,17 @@ * <table class=striped style="text-align: left"> * <caption>Examples of WeekFields</caption> * <thead> - * <tr><th>Date</th><td>Day-of-week</td> - * <td>First day: Monday<br>Minimal days: 4</td><td>First day: Monday<br>Minimal days: 5</td></tr> + * <tr><th scope="col">Date</th><th scope="col">Day-of-week</th> + * <th scope="col">First day: Monday<br>Minimal days: 4</th><th scope="col">First day: Monday<br>Minimal days: 5</th></tr> * </thead> * <tbody> - * <tr><th>2008-12-31</th><td>Wednesday</td> + * <tr><th scope="row">2008-12-31</th><td>Wednesday</td> * <td>Week 5 of December 2008</td><td>Week 5 of December 2008</td></tr> - * <tr><th>2009-01-01</th><td>Thursday</td> + * <tr><th scope="row">2009-01-01</th><td>Thursday</td> * <td>Week 1 of January 2009</td><td>Week 0 of January 2009</td></tr> - * <tr><th>2009-01-04</th><td>Sunday</td> + * <tr><th scope="row">2009-01-04</th><td>Sunday</td> * <td>Week 1 of January 2009</td><td>Week 0 of January 2009</td></tr> - * <tr><th>2009-01-05</th><td>Monday</td> + * <tr><th scope="row">2009-01-05</th><td>Monday</td> * <td>Week 2 of January 2009</td><td>Week 1 of January 2009</td></tr> * </tbody> * </table> @@ -164,17 +164,17 @@ * <table class=striped style="text-align: left;"> * <caption>Examples of WeekFields for week-based-year</caption> * <thead> - * <tr><th>Date</th><td>Day-of-week</td> - * <td>First day: Monday<br>Minimal days: 4</td><td>First day: Monday<br>Minimal days: 5</td></tr> + * <tr><th scope="col">Date</th><th scope="col">Day-of-week</th> + * <th scope="col">First day: Monday<br>Minimal days: 4</th><th scope="col">First day: Monday<br>Minimal days: 5</th></tr> * </thead> * <tbody> - * <tr><th>2008-12-31</th><td>Wednesday</td> + * <tr><th scope="row">2008-12-31</th><td>Wednesday</td> * <td>Week 1 of 2009</td><td>Week 53 of 2008</td></tr> - * <tr><th>2009-01-01</th><td>Thursday</td> + * <tr><th scope="row">2009-01-01</th><td>Thursday</td> * <td>Week 1 of 2009</td><td>Week 53 of 2008</td></tr> - * <tr><th>2009-01-04</th><td>Sunday</td> + * <tr><th scope="row">2009-01-04</th><td>Sunday</td> * <td>Week 1 of 2009</td><td>Week 53 of 2008</td></tr> - * <tr><th>2009-01-05</th><td>Monday</td> + * <tr><th scope="row">2009-01-05</th><td>Monday</td> * <td>Week 2 of 2009</td><td>Week 1 of 2009</td></tr> * </tbody> * </table>
--- a/src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListSet.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListSet.java Mon Aug 14 10:47:56 2017 -0700 @@ -35,8 +35,7 @@ package java.util.concurrent; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; +import java.lang.reflect.Field; import java.util.AbstractSet; import java.util.Collection; import java.util.Collections; @@ -506,19 +505,21 @@ : ((ConcurrentSkipListMap.SubMap<E,?>)m).new SubMapKeyIterator(); } - // Support for resetting map in clone + /** Initializes map field; for use in clone. */ private void setMap(ConcurrentNavigableMap<E,Object> map) { - MAP.setVolatile(this, map); - } - - // VarHandle mechanics - private static final VarHandle MAP; - static { + Field mapField = java.security.AccessController.doPrivileged( + (java.security.PrivilegedAction<Field>) () -> { + try { + Field f = ConcurrentSkipListSet.class + .getDeclaredField("m"); + f.setAccessible(true); + return f; + } catch (ReflectiveOperationException e) { + throw new Error(e); + }}); try { - MethodHandles.Lookup l = MethodHandles.lookup(); - MAP = l.findVarHandle(ConcurrentSkipListSet.class, "m", - ConcurrentNavigableMap.class); - } catch (ReflectiveOperationException e) { + mapField.set(this, map); + } catch (IllegalAccessException e) { throw new Error(e); } }
--- a/src/java.base/share/classes/java/util/concurrent/Flow.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/util/concurrent/Flow.java Mon Aug 14 10:47:56 2017 -0700 @@ -85,9 +85,9 @@ * this.executor = executor; * } * public synchronized void request(long n) { - * if (n != 0 && !completed) { + * if (!completed) { * completed = true; - * if (n < 0) { + * if (n <= 0) { * IllegalArgumentException ex = new IllegalArgumentException(); * executor.execute(() -> subscriber.onError(ex)); * } else {
--- a/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java Mon Aug 14 10:47:56 2017 -0700 @@ -576,7 +576,7 @@ private static final RuntimePermission shutdownPerm = new RuntimePermission("modifyThread"); - /* The context to be used when executing the finalizer, or null. */ + /** The context to be used when executing the finalizer, or null. */ private final AccessControlContext acc; /** @@ -1314,9 +1314,9 @@ throw new IllegalArgumentException(); if (workQueue == null || threadFactory == null || handler == null) throw new NullPointerException(); - this.acc = System.getSecurityManager() == null ? - null : - AccessController.getContext(); + this.acc = (System.getSecurityManager() == null) + ? null + : AccessController.getContext(); this.corePoolSize = corePoolSize; this.maximumPoolSize = maximumPoolSize; this.workQueue = workQueue;
--- a/src/java.base/share/classes/sun/security/provider/KeyProtector.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/sun/security/provider/KeyProtector.java Mon Aug 14 10:47:56 2017 -0700 @@ -35,6 +35,7 @@ import java.security.UnrecoverableKeyException; import java.util.*; +import jdk.internal.ref.CleanerFactory; import sun.security.pkcs.PKCS8Key; import sun.security.pkcs.EncryptedPrivateKeyInfo; import sun.security.x509.AlgorithmId; @@ -141,18 +142,10 @@ passwdBytes[j++] = (byte)(password[i] >> 8); passwdBytes[j++] = (byte)password[i]; } - } - - /** - * Ensures that the password bytes of this key protector are - * set to zero when there are no more references to it. - */ - @SuppressWarnings("deprecation") - protected void finalize() { - if (passwdBytes != null) { - Arrays.fill(passwdBytes, (byte)0x00); - passwdBytes = null; - } + // Use the cleaner to zero the password when no longer referenced + final byte[] k = this.passwdBytes; + CleanerFactory.cleaner().register(this, + () -> java.util.Arrays.fill(k, (byte)0x00)); } /*
--- a/src/java.base/share/classes/sun/security/tools/keytool/Main.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/sun/security/tools/keytool/Main.java Mon Aug 14 10:47:56 2017 -0700 @@ -3071,8 +3071,14 @@ private String withWeak(PublicKey key) { if (DISABLED_CHECK.permits(SIG_PRIMITIVE_SET, key)) { - return String.format(rb.getString("key.bit"), - KeyUtil.getKeySize(key), key.getAlgorithm()); + int kLen = KeyUtil.getKeySize(key); + if (kLen >= 0) { + return String.format(rb.getString("key.bit"), + kLen, key.getAlgorithm()); + } else { + return String.format( + rb.getString("unknown.size.1"), key.getAlgorithm()); + } } else { return String.format(rb.getString("key.bit.weak"), KeyUtil.getKeySize(key), key.getAlgorithm());
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources.java Mon Aug 14 10:47:56 2017 -0700 @@ -462,6 +462,7 @@ {"with.weak", "%s (weak)"}, {"key.bit", "%d-bit %s key"}, {"key.bit.weak", "%d-bit %s key (weak)"}, + {"unknown.size.1", "unknown size %s key"}, {".PATTERN.printX509Cert.with.weak", "Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignature algorithm name: {7}\nSubject Public Key Algorithm: {8}\nVersion: {9}"}, {"PKCS.10.with.weak",
--- a/src/java.logging/share/classes/java/util/logging/LogManager.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.logging/share/classes/java/util/logging/LogManager.java Mon Aug 14 10:47:56 2017 -0700 @@ -1887,13 +1887,17 @@ * The registered {@linkplain #addConfigurationListener configuration * listeners} will be invoked after the configuration is successfully updated. * <br><br> - * <table><caption style="display:none">Updating configuration properties</caption> + * <table class="striped"> + * <caption style="display:none">Updating configuration properties</caption> + * <thead> * <tr> - * <th>Property</th> - * <th>Resulting Behavior</th> + * <th scope="col">Property</th> + * <th scope="col">Resulting Behavior</th> * </tr> + * </thead> + * <tbody> * <tr> - * <td valign="top">{@code <logger>.level}</td> + * <th scope="row" valign="top">{@code <logger>.level}</th> * <td> * <ul> * <li>If the resulting configuration defines a level for a logger and @@ -1914,7 +1918,7 @@ * </ul> * </td> * <tr> - * <td valign="top">{@code <logger>.useParentHandlers}</td> + * <th scope="row" valign="top">{@code <logger>.useParentHandlers}</th> * <td> * <ul> * <li>If either the resulting or the old value for the useParentHandlers @@ -1928,7 +1932,7 @@ * </td> * </tr> * <tr> - * <td valign="top">{@code <logger>.handlers}</td> + * <th scope="row" valign="top">{@code <logger>.handlers}</th> * <td> * <ul> * <li>If the resulting configuration defines a list of handlers for a @@ -1952,7 +1956,7 @@ * </td> * </tr> * <tr> - * <td valign="top">{@code <handler-name>.*}</td> + * <th scope="row" valign="top">{@code <handler-name>.*}</th> * <td> * <ul> * <li>Properties configured/changed on handler classes will only affect @@ -1964,7 +1968,7 @@ * </td> * </tr> * <tr> - * <td valign="top">{@code config} and any other property</td> + * <th scope="row" valign="top">{@code config} and any other property</th> * <td> * <ul> * <li>The resulting value for these property will be stored in the @@ -1974,6 +1978,7 @@ * </ul> * </td> * </tr> + * </tbody> * </table> * <p> * <em>Example mapper functions:</em>
--- a/src/java.logging/share/classes/java/util/logging/Logger.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.logging/share/classes/java/util/logging/Logger.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1497,7 +1497,7 @@ * The {@code msg} string is localized using the given resource bundle. * If the resource bundle is {@code null}, then the {@code msg} string is not * localized. - * <p> + * * @param level One of the message level identifiers, e.g., {@code SEVERE} * @param bundle Resource bundle to localize {@code msg}; * can be {@code null}. @@ -1614,7 +1614,7 @@ * processed specially by output {@code Formatter} objects and is not treated * as a formatting parameter to the {@code LogRecord} {@code message} * property. - * <p> + * * @param level One of the message level identifiers, e.g., {@code SEVERE} * @param bundle Resource bundle to localize {@code msg}; * can be {@code null}.
--- a/src/java.logging/share/classes/java/util/logging/SimpleFormatter.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/java.logging/share/classes/java/util/logging/SimpleFormatter.java Mon Aug 14 10:47:56 2017 -0700 @@ -41,7 +41,7 @@ * The {@code SimpleFormatter} is initialized with the * <a href="../Formatter.html#syntax">format string</a> * specified in the {@code java.util.logging.SimpleFormatter.format} - * property to {@linkplain #format format} the log messages. + * property to {@linkplain #format(LogRecord) format} the log messages. * This property can be defined * in the {@linkplain LogManager#getProperty logging properties} * configuration file
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/HttpConnection.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/HttpConnection.java Mon Aug 14 10:47:56 2017 -0700 @@ -154,6 +154,12 @@ { HttpConnection c = null; InetSocketAddress proxy = request.proxy(client); + if (proxy != null && proxy.isUnresolved()) { + // The default proxy selector may select a proxy whose + // address is unresolved. We must resolve the address + // before using it to connect. + proxy = new InetSocketAddress(proxy.getHostString(), proxy.getPort()); + } boolean secure = request.secure(); ConnectionPool pool = client.connectionPool(); String[] alpn = null;
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java Mon Aug 14 10:47:56 2017 -0700 @@ -1088,8 +1088,12 @@ private String withWeak(PublicKey key) { if (DISABLED_CHECK.permits(SIG_PRIMITIVE_SET, key)) { - return String.format( - rb.getString("key.bit"), KeyUtil.getKeySize(key)); + int kLen = KeyUtil.getKeySize(key); + if (kLen >= 0) { + return String.format(rb.getString("key.bit"), kLen); + } else { + return rb.getString("unknown.size"); + } } else { seeWeak = true; return String.format(
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java Mon Aug 14 10:47:56 2017 -0700 @@ -164,6 +164,7 @@ {"with.weak", "%s (weak)"}, {"key.bit", "%d-bit key"}, {"key.bit.weak", "%d-bit key (weak)"}, + {"unknown.size", "unknown size"}, {"jarsigner.", "jarsigner: "}, {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
--- a/src/jdk.jdi/share/classes/com/sun/jdi/InvalidModuleException.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jdi/share/classes/com/sun/jdi/InvalidModuleException.java Mon Aug 14 10:47:56 2017 -0700 @@ -28,7 +28,6 @@ /** * Thrown to indicate that the requested module is invalid * or became invalid after the module was unloaded. - * <p> * * @since 9 */
--- a/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java Mon Aug 14 10:47:56 2017 -0700 @@ -40,17 +40,20 @@ * permission allows, and discusses the risks of granting code the * permission. * - * <table class="plain"> + * <table class="striped"> * <caption style="display:none">Table shows permission target name, what the * permission allows, and associated risks</caption> + * <thead> * <tr> - * <th>Permission Target Name</th> - * <th>What the Permission Allows</th> - * <th>Risks of Allowing this Permission</th> + * <th scope="col">Permission Target Name</th> + * <th scope="col">What the Permission Allows</th> + * <th scope="col">Risks of Allowing this Permission</th> * </tr> + * </thead> * + * <tbody> * <tr> - * <td>virtualMachineManager</td> + * <th scope="row">virtualMachineManager</th> * <td>Ability to inspect and modify the JDI objects in the * {@code VirtualMachineManager} * </td> @@ -59,6 +62,7 @@ * misbehave. * </td> * </tr> + * </tbody> * * </table> *
--- a/src/jdk.jdi/share/classes/com/sun/jdi/Type.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jdi/share/classes/com/sun/jdi/Type.java Mon Aug 14 10:47:56 2017 -0700 @@ -43,79 +43,86 @@ * {@link ArrayType#componentType()} * </BLOCKQUOTE> * <P> - * The following table illustrates which subinterfaces of Type + * The following tables illustrate which subinterfaces of Type * are used to mirror types in the target VM -- - * <TABLE BORDER="1"> - * <CAPTION style="display:none">Maps each type declared in target to a mirrored - * instance of a subinterface of PrimitiveType or ReferenceType"</CAPTION> - * <TR style="background-color:#EEEEFF"> - * <TH id="primtype" colspan=3>Subinterfaces of {@link PrimitiveType}</TH> - * <TR style="background-color:#EEEEFF"> - * <TH id="declared" style="text-align:left" colspan=2>Type declared in target as</TH> - * <TH id="mirrored" style="text-align:left">Is mirrored as an instance of</TH> + * <TABLE class="plain"> + * <CAPTION>Subinterfaces of {@link PrimitiveType}</CAPTION> + * <THEAD style="background-color:#EEEEFF; text-align:left"> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>boolean</CODE></TD> - * <TD headers="primtype mirrored"> {@link BooleanType}</TD> + * <TH scope="col" style="width:25em">Type declared in target as</TH> + * <TH scope="col" style="width:20em">Is mirrored as an instance of</TH> + * </THEAD> + * <TBODY style="text-align:left"> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>byte</CODE></TD> - * <TD headers="primtype mirrored">{@link ByteType}</TD> + * <TH scope="row"><CODE>boolean</CODE></TH> + * <TD> {@link BooleanType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>char</CODE></TD> - * <TD headers="primtype mirrored">{@link CharType}</TD> + * <TH scope="row"><CODE>byte</CODE></TH> + * <TD>{@link ByteType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>double</CODE></TD> - * <TD headers="primtype mirrored">{@link DoubleType}</TD> + * <TH scope="row"><CODE>char</CODE></TH> + * <TD>{@link CharType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>float</CODE></TD> - * <TD headers="primtype mirrored">{@link FloatType}</TD> + * <TH scope="row"><CODE>double</CODE></TH> + * <TD>{@link DoubleType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>int</CODE></TD> - * <TD headers="primtype mirrored">{@link IntegerType}</TD> + * <TH scope="row"><CODE>float</CODE></TH> + * <TD>{@link FloatType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>long</CODE></TD> - * <TD headers="primtype mirrored">{@link LongType}</TD> + * <TH scope="row"><CODE>int</CODE></TH> + * <TD>{@link IntegerType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>short</CODE></TD> - * <TD headers="primtype mirrored">{@link ShortType}</TD> + * <TH scope="row"><CODE>long</CODE></TH> + * <TD>{@link LongType}</TD> * <TR> - * <TD headers="primtype declared" colspan=2><CODE>void</CODE></TD> - * <TD headers="primtype mirrored">{@link VoidType}</TD> - * <TR style="background-color:#EEEEFF"> - * <TH id="reftype" colspan=3>Subinterfaces of {@link ReferenceType}</TH> - * <TR style="background-color:#EEEEFF"> - * <TH id="declared2"style="text-align:left">Type declared in target as</TH> - * <TH id="example2" style="text-align:left">For example</TH> - * <TH id="mirrored2" style="text-align:left">Is mirrored as an instance of</TH> + * <TH scope="row"><CODE>short</CODE></TH> + * <TD>{@link ShortType}</TD> * <TR> - * <TD headers="reftype declared2"><I>a class</I></TD> - * <TD headers="reftype example2"><CODE>Date</CODE></TD> - * <TD headers="reftype mirrored2">{@link ClassType}</TD> + * <TH scope="row"><CODE>void</CODE></TH> + * <TD>{@link VoidType}</TD> + * </TBODY> + * </TABLE> + * + * <TABLE class="plain"> + * <CAPTION>Subinterfaces of {@link ReferenceType}</CAPTION> + * <THEAD style="background-color:#EEEEFF; text-align:left"> * <TR> - * <TD headers="reftype declared2"><I>an interface</I></TD> - * <TD headers="reftype example2"><CODE>Runnable</CODE></TD> - * <TD headers="reftype mirrored2">{@link InterfaceType}</TD> + * <TH scope="col" style="width:15em">Type declared in target as</TH> + * <TH scope="col" style="width:10em">For example</TH> + * <TH scope="col" style="width:20em">Is mirrored as an instance of</TH> + * </THEAD> + * <TBODY style="text-align:left"> * <TR> - * <TD headers="reftype declared2"><I>an array</I></TD> - * <TD headers="reftype example2"> </TD> - * <TD headers="reftype mirrored2">{@link ArrayType}</TD> + * <TH scope="row"><I>a class</I></TH> + * <TH scope="row"><CODE>Date</CODE></TH> + * <TD>{@link ClassType}</TD> * <TR> - * <TD headers="reftype declared2"><I>an array</I></TD> - * <TD headers="reftype example2"><CODE>int[]</CODE></TD> - * <TD headers="reftype mirrored2">{@link ArrayType} whose + * <TH scope="row"><I>an interface</I></TH> + * <TH scope="row"><CODE>Runnable</CODE></TH> + * <TD>{@link InterfaceType}</TD> + * <TR> + * <TH scope="row" rowspan="4"><I>an array</I></TH> + * <TH scope="row"><i>(any)</i></TH> + * <TD>{@link ArrayType}</TD> + * <TR> + * <!--<TH scope="row"><I>an array</I></TH>--> + * <TH scope="row"><CODE>int[]</CODE></TH> + * <TD>{@link ArrayType} whose * {@link ArrayType#componentType() componentType()} is * {@link IntegerType}</TD> * <TR> - * <TD headers="reftype declared2"><I>an array</I></TD> - * <TD headers="reftype example2"><CODE>Date[]</CODE></TD> - * <TD headers="reftype mirrored2">{@link ArrayType} whose + * <!--<TH scope="row"><I>an array</I></TH>--> + * <TH scope="row"><CODE>Date[]</CODE></TH> + * <TD>{@link ArrayType} whose * {@link ArrayType#componentType() componentType()} is * {@link ClassType}</TD> * <TR> - * <TD headers="reftype declared2"><I>an array</I></TD> - * <TD headers="reftype example2"><CODE>Runnable[]</CODE></TD> - * <TD headers="reftype mirrored2">{@link ArrayType} whose + * <!--<TH scope="row"><I>an array</I></TH>--> + * <TH scope="row"><CODE>Runnable[]</CODE></TH> + * <TD>{@link ArrayType} whose * {@link ArrayType#componentType() componentType()} is * {@link InterfaceType}</TD> + * </TBODY> * </TABLE> * * @see PrimitiveType Subinterface PrimitiveType
--- a/src/jdk.jdi/share/classes/com/sun/jdi/Value.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jdi/share/classes/com/sun/jdi/Value.java Mon Aug 14 10:47:56 2017 -0700 @@ -33,7 +33,7 @@ * value hierarchy encompassing primitive values and object values. * <P> * Some examples of where values may be accessed: - * <BLOCKQUOTE><TABLE><CAPTION style="display:none">layout</CAPTION> + * <BLOCKQUOTE><TABLE role="presentation"> * <TR> * <TD>{@link ObjectReference#getValue(Field) * ObjectReference.getValue(Field)} @@ -52,117 +52,130 @@ * <TD>- returned with an event * </TABLE></BLOCKQUOTE> * <P> - * The following table illustrates which subinterfaces of Value + * The following tables illustrate which subinterfaces of Value * are used to mirror values in the target VM -- - * <TABLE BORDER="1"> - * <CAPTION style="display:none">Maps each kind of value to a mirrored - * instance of a subinterface of Value</CAPTION> - * <TR style="background-color:#EEEEFF"> - * <TH id="primval" colspan=4>Subinterfaces of {@link PrimitiveValue}</TH> - * <TR style="background-color:#EEEEFF"> - * <TH id="kind" style="text-align:left">Kind of value</TH> - * <TH id="example" style="text-align:left">For example -<br>expression in target</TH> - * <TH id="mirrored" style="text-align:left">Is mirrored as an<br>instance of</TH> - * <TH id="type" style="text-align:left">{@link Type} of value<br>{@link #type() Value.type()}</TH> + * <TABLE class="plain"> + * <CAPTION>Subinterfaces of {@link PrimitiveValue}</CAPTION> + * <THEAD style="background-color:#EEEEFF; text-align:left"> * <TR> - * <TD headers="primval kind"> a boolean</TD> - * <TD headers="primval example"> {@code true}</TD> - * <TD headers="primval mirrored"> {@link BooleanValue}</TD> - * <TD headers="primval type"> {@link BooleanType}</TD> + * <TH scope="col" style="width:10em">Kind of value</TH> + * <TH scope="col" style="width:15em">For example -<br>expression in target</TH> + * <TH scope="col" style="width:15em">Is mirrored as an<br>instance of</TH> + * <TH scope="col" style="width:15em">{@link Type} of value<br>{@link #type() Value.type()}</TH> + * </THEAD> + * <TBODY style="text-align:left"> * <TR> - * <TD headers="primval kind"> a byte</TD> - * <TD headers="primval example"> {@code (byte)4}</TD> - * <TD headers="primval mirrored"> {@link ByteValue}</TD> - * <TD headers="primval type"> {@link ByteType}</TD> + * <TH scope="row">a boolean</TH> + * <TD>{@code true}</TD> + * <TD>{@link BooleanValue}</TD> + * <TD>{@link BooleanType}</TD> * <TR> - * <TD headers="primval kind"> a char</TD> - * <TD headers="primval example"> {@code 'a'}</TD> - * <TD headers="primval mirrored"> {@link CharValue}</TD> - * <TD headers="primval type"> {@link CharType}</TD> + * <TH scope="row">a byte</TH> + * <TD>{@code (byte)4}</TD> + * <TD>{@link ByteValue}</TD> + * <TD>{@link ByteType}</TD> * <TR> - * <TD headers="primval kind"> a double</TD> - * <TD headers="primval example"> {@code 3.1415926}</TD> - * <TD headers="primval mirrored"> {@link DoubleValue}</TD> - * <TD headers="primval type"> {@link DoubleType}</TD> + * <TH scope="row">a char</TH> + * <TD>{@code 'a'}</TD> + * <TD>{@link CharValue}</TD> + * <TD>{@link CharType}</TD> * <TR> - * <TD headers="primval kind"> a float</TD> - * <TD headers="primval example"> {@code 2.5f}</TD> - * <TD headers="primval mirrored"> {@link FloatValue}</TD> - * <TD headers="primval type"> {@link FloatType}</TD> + * <TH scope="row">a double</TH> + * <TD>{@code 3.1415926}</TD> + * <TD>{@link DoubleValue}</TD> + * <TD>{@link DoubleType}</TD> * <TR> - * <TD headers="primval kind"> an int</TD> - * <TD headers="primval example"> {@code 22}</TD> - * <TD headers="primval mirrored"> {@link IntegerValue}</TD> - * <TD headers="primval type"> {@link IntegerType}</TD> + * <TH scope="row">a float</TH> + * <TD>{@code 2.5f}</TD> + * <TD>{@link FloatValue}</TD> + * <TD>{@link FloatType}</TD> * <TR> - * <TD headers="primval kind"> a long</TD> - * <TD headers="primval example"> {@code 1024L}</TD> - * <TD headers="primval mirrored"> {@link LongValue}</TD> - * <TD headers="primval type"> {@link LongType}</TD> + * <TH scope="row">an int</TH> + * <TD>{@code 22}</TD> + * <TD>{@link IntegerValue}</TD> + * <TD>{@link IntegerType}</TD> * <TR> - * <TD headers="primval kind"> a short</TD> - * <TD headers="primval example"> {@code (short)12}</TD> - * <TD headers="primval mirrored"> {@link ShortValue}</TD> - * <TD headers="primval type"> {@link ShortType}</TD> + * <TH scope="row">a long</TH> + * <TD>{@code 1024L}</TD> + * <TD>{@link LongValue}</TD> + * <TD>{@link LongType}</TD> * <TR> - * <TD headers="primval kind"> a void</TD> - * <TD headers="primval example"> </TD> - * <TD headers="primval mirrored"> {@link VoidValue}</TD> - * <TD headers="primval type"> {@link VoidType}</TD> - * <TR style="background-color:#EEEEFF"> - * <TH id="objref" colspan=4>Subinterfaces of {@link ObjectReference}</TH> - * <TR style="background-color:#EEEEFF"> - * <TH id="kind2" style="text-align:left">Kind of value</TH> - * <TH id="example2" style="text-align:left">For example -<br>expression in target</TH> - * <TH id="mirrored2" style="text-align:left">Is mirrored as an<br>instance of</TH> - * <TH id="type2" style="text-align:left">{@link Type} of value<br>{@link #type() Value.type()}</TH> + * <TH scope="row">a short</TH> + * <TD>{@code (short)12}</TD> + * <TD>{@link ShortValue}</TD> + * <TD>{@link ShortType}</TD> * <TR> - * <TD headers="objref kind2"> a class instance</TD> - * <TD headers="objref example2"> {@code this}</TD> - * <TD headers="objref mirrored2"> {@link ObjectReference}</TD> - * <TD headers="objref type2"> {@link ClassType}</TD> + * <TH scope="row">a void</TH> + * <TD></TD> + * <TD>{@link VoidValue}</TD> + * <TD>{@link VoidType}</TD> + * </TBODY> + * </TABLE> + * + * <TABLE class="plain"> + * <CAPTION>Subinterfaces of {@link ObjectReference}</CAPTION> + * <THEAD style="background-color:#EEEEFF; text-align:left"> * <TR> - * <TD headers="objref kind2"> an array</TD> - * <TD headers="objref example2"> {@code new int[5]}</TD> - * <TD headers="objref mirrored2"> {@link ArrayReference}</TD> - * <TD headers="objref type2"> {@link ArrayType}</TD> + * <TH scope="col" style="width:10em">Kind of value</TH> + * <TH scope="col" style="width:15em">For example -<br>expression in target</TH> + * <TH scope="col" style="width:15em">Is mirrored as an<br>instance of</TH> + * <TH scope="col" style="width:15em">{@link Type} of value<br>{@link #type() Value.type()}</TH> + * </THEAD> + * <TBODY style="text-align:left"> * <TR> - * <TD headers="objref kind2"> a string</TD> - * <TD headers="objref example2"> {@code "hello"}</TD> - * <TD headers="objref mirrored2"> {@link StringReference}</TD> - * <TD headers="objref type2"> {@link ClassType}</TD> + * <TH scope="row">a class instance</TH> + * <TD>{@code this}</TD> + * <TD>{@link ObjectReference}</TD> + * <TD>{@link ClassType}</TD> * <TR> - * <TD headers="objref kind2"> a thread</TD> - * <TD headers="objref example2"> {@code Thread.currentThread()}</TD> - * <TD headers="objref mirrored2"> {@link ThreadReference}</TD> - * <TD headers="objref type2"> {@link ClassType}</TD> + * <TH scope="row">an array</TH> + * <TD>{@code new int[5]}</TD> + * <TD>{@link ArrayReference}</TD> + * <TD>{@link ArrayType}</TD> * <TR> - * <TD headers="objref kind2"> a thread group</TD> - * <TD headers="objref example2"> {@code Thread.currentThread()}<br> {@code .getThreadGroup()}</TD> - * <TD headers="objref mirrored2"> {@link ThreadGroupReference}</TD> - * <TD headers="objref type2"> {@link ClassType}</TD> + * <TH scope="row">a string</TH> + * <TD>{@code "hello"}</TD> + * <TD>{@link StringReference}</TD> + * <TD>{@link ClassType}</TD> * <TR> - * <TD headers="objref kind2"> a {@code java.lang.Class}<br>instance</TD> - * <TD headers="objref example2"> {@code this.getClass()}</TD> - * <TD headers="objref mirrored2"> {@link ClassObjectReference}</TD> - * <TD headers="objref type2"> {@link ClassType}</TD> + * <TH scope="row">a thread</TH> + * <TD>{@code Thread.currentThread()}</TD> + * <TD>{@link ThreadReference}</TD> + * <TD>{@link ClassType}</TD> * <TR> - * <TD headers="objref kind2"> a class loader</TD> - * <TD headers="objref example2"> {@code this.getClass()}<br> {@code .getClassLoader()}</TD> - * <TD headers="objref mirrored2"> {@link ClassLoaderReference}</TD> - * <TD headers="objref type2"> {@link ClassType}</TD> - * <TR style="background-color:#EEEEFF"> - * <TH id="other" colspan=4>Other</TH> - * <TR style="background-color:#EEEEFF"> - * <TD id="kind3" style="text-align:left">Kind of value</TD> - * <TD id="example3" style="text-align:left">For example -<br>expression in target</TD> - * <TD id="mirrored3" style="text-align:left">Is mirrored as</TD> - * <TD id="type3" style="text-align:left">{@link Type} of value</TD> + * <TH scope="row">a thread group</TH> + * <TD>{@code Thread.currentThread()}<br> {@code .getThreadGroup()}</TD> + * <TD>{@link ThreadGroupReference}</TD> + * <TD>{@link ClassType}</TD> * <TR> - * <TD headers="other kind3"> null</TD> - * <TD headers="other example3"> {@code null}</TD> - * <TD headers="other mirrored3"> {@code null}</TD> - * <TD headers="other type3"> n/a</TD> + * <TH scope="row">a {@code java.lang.Class}<br>instance</TH> + * <TD>{@code this.getClass()}</TD> + * <TD>{@link ClassObjectReference}</TD> + * <TD>{@link ClassType}</TD> + * <TR> + * <TH scope="row">a class loader</TH> + * <TD>{@code this.getClass()}<br> {@code .getClassLoader()}</TD> + * <TD>{@link ClassLoaderReference}</TD> + * <TD>{@link ClassType}</TD> + * </TBODY> + * </TABLE> + * + * <TABLE class="plain"> + * <CAPTION>Other values</CAPTION> + * <THEAD style="background-color:#EEEEFF; text-align:left"> + * <TR> + * <TH scope="col" style="width:10em">Kind of value</TH> + * <TH scope="col" style="width:15em">For example -<br>expression in target</TH> + * <TH scope="col" style="width:15em">Is mirrored as</TH> + * <TH scope="col" style="width:15em">{@link Type} of value</TH> + * </THEAD> + * <TBODY style="text-align:left"> + * <TR> + * <TH scope="row">null</TH> + * <TD>{@code null}</TD> + * <TD>{@code null}</TD> + * <TD>n/a</TD> + * </TBODY> * </TABLE> * * @author Robert Field
--- a/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java Mon Aug 14 10:47:56 2017 -0700 @@ -59,13 +59,16 @@ * Some {@link Connector} implementations may require slightly * different handling than presented below. * - * <TABLE BORDER="1" style="width:75%"> + * <TABLE class="striped"> * <CAPTION style="display:none">Four scenarios for connecting a debugger to a virtual machine"</CAPTION> + * <THEAD> * <TR> - * <TH scope=col>Scenario</TH> - * <TH scope=col>Description</TH> + * <TH scope="col">Scenario</TH> + * <TH scope="col">Description</TH> + * </THEAD> + * <TBODY> * <TR> - * <TD>Debugger launches target VM (simplest, most-common scenario)</TD> + * <TH scope="row">Debugger launches target VM (simplest, most-common scenario)</TH> * * <TD>Debugger calls the {@link LaunchingConnector#launch(java.util.Map)} * method of the default connector, obtained with {@link #defaultConnector}. The @@ -86,7 +89,7 @@ * </TD> * </TR> * <TR> - * <TD>Debugger attaches to previously-running VM</TD> + * <TH scope="row">Debugger attaches to previously-running VM</TH> * <TD> * <UL> * <LI> @@ -113,7 +116,7 @@ * </TR> * * <TR> - * <TD>Target VM attaches to previously-running debugger</TD> + * <TH scope="row">Target VM attaches to previously-running debugger</TH> * <TD> * <UL> * <LI> @@ -146,7 +149,7 @@ * </TR> * * <TR> - * <TD>Target VM launches debugger (sometimes called "Just-In-Time" debugging)</TD> + * <TH scope="row">Target VM launches debugger (sometimes called "Just-In-Time" debugging)</TH> * <TD> * <UL> * <LI>
--- a/src/jdk.jdi/share/classes/com/sun/jdi/doc-files/signature.html Fri Aug 11 18:17:00 2017 +0530 +++ b/src/jdk.jdi/share/classes/com/sun/jdi/doc-files/signature.html Mon Aug 14 10:47:56 2017 -0700 @@ -1,34 +1,42 @@ <!DOCTYPE HTML> -<HTML> +<HTML lang="EN"> <HEAD> <TITLE> JDI Type Signatures </TITLE> +<META charset="UTF-8"> +<STYLE type="text/css"> +tbody th { font-weight: normal } +</STYLE> </HEAD> <BODY style="background-color:white"> <dl><dd> <Table Border="0"> -<caption><font size=5><b>JDI Type Signatures</b></font></caption> -<tr><th>Type Signature -<th>Java Type -<tr><td>Z<td>boolean -<tr><td>B<td>byte -<tr><td>C<td>char -<tr><td>S<td>short -<tr><td>I<td>int -<tr><td>J<td>long -<tr><td>F<td>float -<tr><td>D<td>double -<tr><td><strong>L</strong> <em>fully-qualified-class</em> +<caption style="font-size:x-large"><b>JDI Type Signatures</b></caption> +<thead> +<tr><th scope="col">Type Signature +<th scope="col">Java Type +</thead> +<tbody> +<tr><th scope="row">Z<td>boolean +<tr><th scope="row">B<td>byte +<tr><th scope="row">C<td>char +<tr><th scope="row">S<td>short +<tr><th scope="row">I<td>int +<tr><th scope="row">J<td>long +<tr><th scope="row">F<td>float +<tr><th scope="row">D<td>double +<tr><th scope="row"><strong>L</strong> <em>fully-qualified-class</em> <strong>;</strong> <td>fully-qualified-class -<tr><td><strong>[</strong> <em>type +<tr><th scope="row"><strong>[</strong> <em>type </em> <td><em>type</em>[] -<tr><td> +<tr><th scope="row"> <strong>(</strong> <em>arg-types </em><strong>)</strong> <em>ret-type </em> <td>method type (including constructors) +</tbody> </Table> </dd></dl> <p>For example, the Java method:
--- a/test/TEST.ROOT Fri Aug 11 18:17:00 2017 +0530 +++ b/test/TEST.ROOT Mon Aug 14 10:47:56 2017 -0700 @@ -10,9 +10,11 @@ # randomness tests. # # A "headful" test requires a graphical environment to meaningfully -# run. Tests that are not headful are "headless." +# run. Tests that are not headful are "headless". +# A test flagged with key "printer" requires a printer to succeed, else +# throws a PrinterException or the like. -keys=2d dnd i18n intermittent randomness headful +keys=2d dnd headful i18n intermittent printer randomness # Tests that must run in othervm mode othervm.dirs=java/awt java/beans javax/accessibility javax/imageio javax/sound javax/print javax/management com/sun/awt sun/awt sun/java2d sun/pisces javax/xml/jaxp/testng/validation java/lang/ProcessHandle
--- a/test/com/apple/eawt/DefaultMenuBar/DefaultMenuBarTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/com/apple/eawt/DefaultMenuBar/DefaultMenuBarTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8007267 * @summary [macosx] com.apple.eawt.Application.setDefaultMenuBar is not working * @requires (os.family == "mac")
--- a/test/com/apple/laf/ScreenMenu/ScreenMenuMemoryLeakTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/com/apple/laf/ScreenMenu/ScreenMenuMemoryLeakTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,13 +20,16 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -/* + +/** * @test + * @key headful * @bug 8158325 * @summary Memory leak in com.apple.laf.ScreenMenu: removed JMenuItems are still referenced * @requires (os.family == "mac") * @run main/timeout=300/othervm -Xmx16m ScreenMenuMemoryLeakTest */ + import java.awt.EventQueue; import java.lang.ref.WeakReference; import java.lang.reflect.InvocationTargetException;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/com/sun/crypto/provider/Cipher/DES/DESKeyCleanupTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @modules java.base/com.sun.crypto.provider:+open + * @run main/othervm DESKeyCleanupTest + * @summary Verify that key storage is cleared + */ + +import java.lang.ref.PhantomReference; +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.lang.reflect.Field; +import java.util.Arrays; + +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; + +/** + * Test that the array holding the key bytes is cleared when it is + * no longer referenced by the key. + */ + +public class DESKeyCleanupTest { + + private final static String SunJCEProvider = "SunJCE"; + + public static void main(String[] args) throws Exception { + testCleanupSecret("DES"); + testCleanupSecret("DESede"); + } + + static void testCleanupSecret(String algorithm) throws Exception { + KeyGenerator desGen = KeyGenerator.getInstance(algorithm, SunJCEProvider); + SecretKey key = desGen.generateKey(); + + // Break into the implementation to observe the key byte array. + Class<?> keyClass = key.getClass(); + Field keyField = keyClass.getDeclaredField("key"); + keyField.setAccessible(true); + byte[] array = (byte[])keyField.get(key); + + byte[] zeros = new byte[array.length]; + do { + // Wait for array to be cleared; if not cleared test will timeout + System.out.printf("%s array: %s%n", algorithm, Arrays.toString(array)); + key = null; + System.gc(); // attempt to reclaim the key + } while (Arrays.compare(zeros, array) != 0); + System.out.printf("%s array: %s%n", algorithm, Arrays.toString(array)); + + Reference.reachabilityFence(key); // Keep key alive + Reference.reachabilityFence(array); // Keep array alive + } +} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @modules java.base/com.sun.crypto.provider:+open + * @run main/othervm PBEKeyCleanupTest + * @summary Verify that key storage is cleared + */ + +import java.lang.ref.PhantomReference; +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.Random; + +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; + +/** + * Test that the array holding the key bytes is cleared when it is + * no longer referenced by the key. + */ +public class PBEKeyCleanupTest { + + private final static String SunJCEProvider = "SunJCE"; + + private static final String PASS_PHRASE = "some hidden string"; + private static final int ITERATION_COUNT = 1000; + private static final int KEY_SIZE = 128; + + public static void main(String[] args) throws Exception { + testPBESecret("PBEWithMD5AndDES"); + testPBKSecret("PBKDF2WithHmacSHA1"); + } + + private static void testPBESecret(String algorithm) throws Exception { + char[] password = new char[] {'f', 'o', 'o'}; + PBEKeySpec pbeKeySpec = new PBEKeySpec(password); + SecretKeyFactory keyFac = + SecretKeyFactory.getInstance(algorithm, SunJCEProvider); + + testCleanupSecret(algorithm, keyFac.generateSecret(pbeKeySpec)); + } + + private static void testPBKSecret(String algorithm) throws Exception { + byte[] salt = new byte[8]; + new Random().nextBytes(salt); + char[] password = new char[] {'f', 'o', 'o'}; + PBEKeySpec pbeKeySpec = new PBEKeySpec(PASS_PHRASE.toCharArray(), salt, + ITERATION_COUNT, KEY_SIZE); + SecretKeyFactory keyFac = + SecretKeyFactory.getInstance(algorithm, SunJCEProvider); + + testCleanupSecret(algorithm, keyFac.generateSecret(pbeKeySpec)); + } + + static void testCleanupSecret(String algorithm, SecretKey key) throws Exception { + + // Break into the implementation to observe the key byte array. + Class<?> keyClass = key.getClass(); + Field keyField = keyClass.getDeclaredField("key"); + keyField.setAccessible(true); + byte[] array = (byte[])keyField.get(key); + + byte[] zeros = new byte[array.length]; + do { + // Wait for array to be cleared; if not cleared test will timeout + System.out.printf("%s array: %s%n", algorithm, Arrays.toString(array)); + key = null; + System.gc(); // attempt to reclaim the key + } while (Arrays.compare(zeros, array) != 0); + System.out.printf("%s array: %s%n", algorithm, Arrays.toString(array)); + + Reference.reachabilityFence(key); // Keep key alive + Reference.reachabilityFence(array); // Keep array alive + } +} + + +
--- a/test/java/awt/Choice/ChoiceHiDpi/ChoiceTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Choice/ChoiceHiDpi/ChoiceTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8144594 * @summary HiDPI: awt.Choice looks improperly (Win 8) * @run main ChoiceTest
--- a/test/java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8157827 * @summary AWT_Desktop/Automated/Exceptions/BasicTest loads incorrect GTK * version when jdk.gtk.version=3
--- a/test/java/awt/Dialog/CloseDialog/CloseDialogTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Dialog/CloseDialog/CloseDialogTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,11 +30,13 @@ /** * @test + * @key headful * @bug 8043705 * @summary Can't exit color chooser dialog when running as an applet * @modules java.desktop/sun.awt * @run main CloseDialogTest */ + public class CloseDialogTest { private static volatile Frame frame;
--- a/test/java/awt/Dialog/NestedDialogs/Modal/NestedModalDialogTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Dialog/NestedDialogs/Modal/NestedModalDialogTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,17 +21,19 @@ * questions. */ - /* - @test 8155740 - @summary See <rdar://problem/3429130>: Events: actionPerformed() method not - called when it is button is clicked (system load related) - @summary com.apple.junit.java.awt.Frame - @library ../../../regtesthelpers - @build VisibilityValidator - @build Util - @build Waypoint - @run main NestedModalDialogTest +/** + * @test 8155740 + * @key headful + * @summary See <rdar://problem/3429130>: Events: actionPerformed() method not + * called when it is button is clicked (system load related) + * @summary com.apple.junit.java.awt.Frame + * @library ../../../regtesthelpers + * @build VisibilityValidator + * @build Util + * @build Waypoint + * @run main NestedModalDialogTest */ + ////////////////////////////////////////////////////////////////////////////// // NestedModalDialogTest.java // The test launches a parent frame. From this parent frame it launches a modal
--- a/test/java/awt/Dialog/NestedDialogs/Modeless/NestedModelessDialogTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Dialog/NestedDialogs/Modeless/NestedModelessDialogTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,17 +21,19 @@ * questions. */ - /* - @test 8155740 - @summary See <rdar://problem/3429130>: Events: actionPerformed() method not - called when it is button is clicked (system load related) - @summary com.apple.junit.java.awt.Frame - @library ../../../regtesthelpers - @build VisibilityValidator - @build Util - @build Waypoint - @run main NestedModelessDialogTest +/** + * @test 8155740 + * @key headful + * @summary See <rdar://problem/3429130>: Events: actionPerformed() method not + * called when it is button is clicked (system load related) + * @summary com.apple.junit.java.awt.Frame + * @library ../../../regtesthelpers + * @build VisibilityValidator + * @build Util + * @build Waypoint + * @run main NestedModelessDialogTest -Xlog:exception */ + ///////////////////////////////////////////////////////////////////////////// // NestedModelessDialogTest.java // The test launches a parent frame. From this parent frame it launches a modal
--- a/test/java/awt/EmbeddedFrame/DisplayChangedTest/DisplayChangedTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/EmbeddedFrame/DisplayChangedTest/DisplayChangedTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,24 +21,20 @@ * questions. */ -/* - @test - @bug 4980592 8171363 - @summary switching user in XP causes an NPE in - sun.awt.windows.WWindowPeer.displayChanged - @requires (os.family == "windows") - @modules java.desktop/java.awt.peer - @modules java.desktop/sun.awt.windows:open - @modules java.desktop/sun.awt - @author son@sparc.spb.su: area=embedded - @run main DisplayChangedTest +/** + * @test + * @key headful + * @bug 4980592 8171363 + * @summary switching user in XP causes an NPE in + * sun.awt.windows.WWindowPeer.displayChanged + * @requires (os.family == "windows") + * @modules java.desktop/java.awt.peer + * @modules java.desktop/sun.awt.windows:open + * @modules java.desktop/sun.awt + * @author son@sparc.spb.su: area=embedded + * @run main DisplayChangedTest */ -/** - * DisplayChangedTest.java - * - * summary: switching user in XP causes an NPE in - * sun.awt.windows.WWindowPeer.displayChanged - */ + import java.awt.Frame; import java.awt.Dialog; import java.awt.TextArea;
--- a/test/java/awt/EmbeddedFrame/EmbeddedFrameGrabTest/EmbeddedFrameGrabTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/EmbeddedFrame/EmbeddedFrameGrabTest/EmbeddedFrameGrabTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,22 +21,19 @@ * questions. */ -/* - @test - @bug 6345003 8171363 - @summary grab problems with EmbeddedFrame - @requires (os.family == "windows") - @modules java.desktop/java.awt.peer - @modules java.desktop/sun.awt - @modules java.desktop/sun.awt.windows:open - @author Oleg.Semenov@sun.com area=EmbeddedFrame - @run main EmbeddedFrameGrabTest +/** + * @test + * @key headful + * @bug 6345003 8171363 + * @summary grab problems with EmbeddedFrame + * @requires (os.family == "windows") + * @modules java.desktop/java.awt.peer + * @modules java.desktop/sun.awt + * @modules java.desktop/sun.awt.windows:open + * @author Oleg.Semenov@sun.com area=EmbeddedFrame + * @run main EmbeddedFrameGrabTest */ -/** - * EmbeddedFrameGrabTest.java - * - * summary: grab problems with EmbeddedFrame - */ + import java.awt.Frame; import java.awt.peer.FramePeer; import javax.swing.JComboBox;
--- a/test/java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ <!-- - Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ <HTML> <!-- @test + @key headful @bug 4023283 @summary Checks that an Error which propogate up to the EventDispatch loop does not crash AWT.
--- a/test/java/awt/EventQueue/6980209/bug6980209.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/EventQueue/6980209/bug6980209.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,11 +21,13 @@ * questions. */ -/* @test - @bug 6980209 - @summary Make tracking SecondaryLoop.enter/exit methods easier - @author Semyon Sadetsky - */ +/** + * @test + * @key headful + * @bug 6980209 + * @summary Make tracking SecondaryLoop.enter/exit methods easier + * @author Semyon Sadetsky + */ import javax.swing.*; import java.awt.*;
--- a/test/java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8157163 8159132 * @summary AWT FileDialog does not inherit icon image from parent Frame * @requires os.family=="windows" @@ -68,8 +70,8 @@ "owning window. Wrong color: " + color); } } finally { - dialog.dispose(); - frame.dispose(); + if (dialog != null) { dialog.dispose(); } + if (frame != null) { frame.dispose(); } } }
--- a/test/java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,20 +21,21 @@ * questions. */ -/* - @test - @bug 6516675 - @summary Tests that EmbeddedFrame can be focused. - @author anton.tarasov: area=awt-focus - @requires (os.family == "windows") - @modules java.desktop/java.awt.peer - java.desktop/sun.awt - java.desktop/sun.awt.windows - @library /java/awt/patchlib ../../regtesthelpers - @build java.desktop/java.awt.Helper - @build Util UtilInternal - @run main FocusEmbeddedFrameTest -*/ +/** + * @test + * @key headful + * @bug 6516675 + * @summary Tests that EmbeddedFrame can be focused. + * @author anton.tarasov: area=awt-focus + * @requires (os.family == "windows") + * @modules java.desktop/java.awt.peer + * java.desktop/sun.awt + * java.desktop/sun.awt.windows + * @library /java/awt/patchlib ../../regtesthelpers + * @build java.desktop/java.awt.Helper + * @build Util UtilInternal + * @run main FocusEmbeddedFrameTest + */ import java.awt.*; import java.awt.event.*;
--- a/test/java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,15 @@ * questions. */ - /* - @test - @bug 8154043 8172509 - @summary Fields not reachable anymore by tab-key, because of new tabbing - behaviour of radio button groups. - @run main ButtonGroupLayoutTraversalTest +/** + * @test + * @key headful + * @bug 8154043 8172509 + * @summary Fields not reachable anymore by tab-key, because of new tabbing + * behaviour of radio button groups. + * @run main ButtonGroupLayoutTraversalTest */ + import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout;
--- a/test/java/awt/Focus/RequestFocusByCause/RequestFocusByCauseTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Focus/RequestFocusByCause/RequestFocusByCauseTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,14 @@ * questions. */ -/* - @test - @bug 8154434 - @summary Open the request focus methods of the java.awt.Component which accept - FocusEvent.Cause - @run main RequestFocusByCauseTest -*/ +/** + * @test + * @key headful + * @bug 8154434 + * @summary Open the request focus methods of the java.awt.Component which accept + * FocusEvent.Cause + * @run main RequestFocusByCauseTest + */ import java.awt.*; import java.awt.event.FocusEvent; @@ -148,4 +149,5 @@ frame.dispose(); } } -} \ No newline at end of file +} +
--- a/test/java/awt/FontClass/HelvLtOblTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/FontClass/HelvLtOblTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8064833 * @summary Test correct font is obtained via famil+style * @run main HelvLtOblTest
--- a/test/java/awt/FontClass/SurrogateTest/SuppCharTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/FontClass/SurrogateTest/SuppCharTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8015556 * @summary Surrogate pairs do not render properly on MacOS X. */
--- a/test/java/awt/Frame/8158918/SetExtendedState.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/8158918/SetExtendedState.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,14 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8158918 * @summary setExtendedState(1) for maximized Frame results in state==7 * @run main SetExtendedState */ + import java.awt.Frame; public class SetExtendedState {
--- a/test/java/awt/Frame/DecoratedFrameInsets/DecoratedFrameInsetsTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/DecoratedFrameInsets/DecoratedFrameInsetsTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8165619 * @summary Frame is not repainted if created in state=MAXIMIZED_BOTH on Unity * @run main DecoratedFrameInsetsTest
--- a/test/java/awt/Frame/ExceptionOnSetExtendedStateTest/ExceptionOnSetExtendedStateTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/ExceptionOnSetExtendedStateTest/ExceptionOnSetExtendedStateTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,14 @@ * questions. */ -/* @test - @bug 8032078 - @summary Frame.setExtendedState throws RuntimeException, if - windowState=ICONIFIED|MAXIMIZED_BOTH, on OS X - @author Anton Litvinov -*/ +/** + * @test + * @key headful + * @bug 8032078 + * @summary Frame.setExtendedState throws RuntimeException, if + * windowState=ICONIFIED|MAXIMIZED_BOTH, on OS X + * @author Anton Litvinov + */ import java.awt.*;
--- a/test/java/awt/Frame/MaximizedByPlatform/MaximizedByPlatform.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/MaximizedByPlatform/MaximizedByPlatform.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8026143 * @summary [macosx] Maximized state could be inconsistent between peer and frame * @author Petr Pchelko @@ -70,7 +72,7 @@ throw new RuntimeException("Maximized state was not set for frame in setBounds"); } } finally { - frame.dispose(); + if (frame != null) frame.dispose(); } @@ -87,7 +89,7 @@ throw new RuntimeException("Maximized state was not set for frame in setVisible"); } } finally { - frame.dispose(); + if (frame != null) frame.dispose(); } }
--- a/test/java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8171949 * @summary Tests that bitwise mask is set and state listener is notified during state transition. * @author Dmitry Markov
--- a/test/java/awt/Frame/SetMaximizedBounds/MaximizedMovedWindow.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/SetMaximizedBounds/MaximizedMovedWindow.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,16 @@ */ import java.awt.*; -/* +/** * @test + * @key headful * @bug 8065739 * @summary Moved window is maximazed to new screen * @author Alexandr Scherbatiy * * @run main MaximizedMovedWindow */ + public class MaximizedMovedWindow { public static void main(String[] args) throws Exception {
--- a/test/java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ */ import java.awt.*; -/* + +/** * @test + * @key headful * @bug 8065739 8131339 * @summary When Frame.setExtendedState(Frame.MAXIMIZED_BOTH) * is called for a Frame after been called setMaximizedBounds() with
--- a/test/java/awt/Frame/WindowDragTest/WindowDragTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Frame/WindowDragTest/WindowDragTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,15 +21,16 @@ * questions. */ -/* - @test - @bug 7128738 7161759 - @summary dragged dialog freezes system on dispose - @author Oleg Pekhovskiy: area=awt.toplevel - @library ../../regtesthelpers - @build Util - @run main WindowDragTest -*/ +/** + * @test + * @key headful + * @bug 7128738 7161759 + * @summary dragged dialog freezes system on dispose + * @author Oleg Pekhovskiy: area=awt.toplevel + * @library ../../regtesthelpers + * @build Util + * @run main WindowDragTest + */ import java.awt.Frame; import java.awt.event.InputEvent;
--- a/test/java/awt/FullScreen/CurrentDisplayModeTest/CurrentDisplayModeTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/FullScreen/CurrentDisplayModeTest/CurrentDisplayModeTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test + * @key headful * @bug 8022810 * @summary Device.getDisplayMode() doesn't report refresh rate on Linux in case * of dual screen
--- a/test/java/awt/GraphicsDevice/DisplayModes/CompareToXrandrTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/GraphicsDevice/DisplayModes/CompareToXrandrTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test + * @key headful * @bug 8022810 * @summary Cannot list all the available display modes on Ubuntu linux in case * of two screen devices
--- a/test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,14 @@ * questions. */ -/* - @test - @bug 6741526 8004693 - @summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components - @author Andrei Dmitriev : area=awt-focus - @run main DefaultPolicyChange_Swing -*/ +/** + * @test + * @key headful + * @bug 6741526 8004693 + * @summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components + * @author Andrei Dmitriev : area=awt-focus + * @run main DefaultPolicyChange_Swing + */ import java.awt.*;
--- a/test/java/awt/MenuBar/8007006/bug8007006.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/MenuBar/8007006/bug8007006.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8007006 * @summary [macosx] Closing subwindow loses main window menus. * @author Leonid Romanov
--- a/test/java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. +* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,8 +32,9 @@ import java.lang.reflect.Method; import java.lang.reflect.Proxy; -/* +/** * @test + * @key headful * @bug 8013468 * @summary Cursor does not update properly when in fullscreen mode on Mac * The core reason of the issue was the lack of a mouse entered event in fullscreen @@ -45,6 +46,7 @@ * @author Petr Pchelko area=awt.event * @run main FullscreenEnterEventTest */ + public class FullscreenEnterEventTest { private static String OS = System.getProperty("os.name").toLowerCase();
--- a/test/java/awt/Robot/HiDPIMouseClick/HiDPIRobotMouseClick.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Robot/HiDPIMouseClick/HiDPIRobotMouseClick.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,13 +29,16 @@ import java.awt.event.MouseEvent; import javax.swing.UIManager; -/* @test +/** + * @test + * @key headful * @bug 8073320 * @summary Windows HiDPI support * @author Alexander Scherbatiy * @requires (os.family == "windows") * @run main/othervm -Dsun.java2d.win.uiScale=2 HiDPIRobotMouseClick */ + public class HiDPIRobotMouseClick { private static volatile int mouseX;
--- a/test/java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,7 +32,9 @@ import java.awt.image.BufferedImage; import javax.swing.UIManager; -/* @test +/** + * @test + * @key headful * @bug 8073320 * @summary Windows HiDPI support * @author Alexander Scherbatiy @@ -40,6 +42,7 @@ * @run main/othervm -Dsun.java2d.win.uiScaleX=3 -Dsun.java2d.win.uiScaleY=2 * HiDPIRobotScreenCaptureTest */ + public class HiDPIRobotScreenCaptureTest { private static final Color[] COLORS = {
--- a/test/java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,9 +26,11 @@ /** * @test + * @key headful * @bug 4449139 * @summary test MouseWheelEvent generation by Scrollbar component */ + public final class ScrollbarMouseWheelTest implements MouseWheelListener, WindowListener {
--- a/test/java/awt/SplashScreen/FullscreenAfterSplash/FullScreenAfterSplash.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/SplashScreen/FullscreenAfterSplash/FullScreenAfterSplash.java Mon Aug 14 10:47:56 2017 -0700 @@ -34,8 +34,9 @@ import javax.swing.SwingUtilities; import javax.swing.WindowConstants; -/* +/** * @test + * @key headful * @bug 8024185 * @summary Native Mac OS X full screen does not work after showing the splash * @requires (os.family == "mac") @@ -48,6 +49,7 @@ * @author Petr Pchelko area=awt.event * @run main/othervm -splash:test.png FullScreenAfterSplash */ + public class FullScreenAfterSplash { private static JFrame frame;
--- a/test/java/awt/SplashScreen/MultiResolutionSplash/unix/UnixMultiResolutionSplashTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/SplashScreen/MultiResolutionSplash/unix/UnixMultiResolutionSplashTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,12 +45,14 @@ /** * @test + * @key headful * @bug 8145174 8151787 8168657 * @summary HiDPI splash screen support on Linux * @modules java.desktop/sun.java2d * @requires (os.family == "linux") * @run main UnixMultiResolutionSplashTest */ + public class UnixMultiResolutionSplashTest { private static final int IMAGE_WIDTH = 300;
--- a/test/java/awt/TextArea/AutoScrollOnSelectAndAppend/AutoScrollOnSelectAndAppend.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/TextArea/AutoScrollOnSelectAndAppend/AutoScrollOnSelectAndAppend.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,13 @@ * questions. */ - /* - @test - @bug 5003402 8151588 - @summary TextArea must scroll automatically when calling append and select, - even when not in focus. - @run main AutoScrollOnSelectAndAppend +/** + * @test + * @key headful + * @bug 5003402 8151588 + * @summary TextArea must scroll automatically when calling append and select, + * even when not in focus. + * @run main AutoScrollOnSelectAndAppend */ import java.awt.Button;
--- a/test/java/awt/TextArea/OverScrollTest/OverScrollTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/TextArea/OverScrollTest/OverScrollTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,13 @@ * questions. */ -/* - @test - @bug 8149636 - @summary TextArea over scrolls to right when selecting text towards right. - @requires os.family == "windows" - @run main OverScrollTest +/** + * @test + * @key headful + * @bug 8149636 + * @summary TextArea over scrolls to right when selecting text towards right. + * @requires os.family == "windows" + * @run main OverScrollTest */ import java.awt.Frame;
--- a/test/java/awt/TextField/OverScrollTest/OverScrollTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/TextField/OverScrollTest/OverScrollTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,13 @@ * questions. */ -/* - @test - @bug 8149636 - @summary TextField over scrolls to right when selecting text towards right. - @requires os.family == "windows" - @run main OverScrollTest +/** + * @test + * @key headful + * @bug 8149636 + * @summary TextField over scrolls to right when selecting text towards right. + * @requires os.family == "windows" + * @run main OverScrollTest */ import java.awt.Frame;
--- a/test/java/awt/Window/GetScreenLocation/GetScreenLocationTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Window/GetScreenLocation/GetScreenLocationTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test @summary setLocationRelativeTo stopped working in Ubuntu 13.10 (Unity) + * @key headful * @bug 8036915 8161273 * @run main/othervm -Dsun.java2d.uiScale=1 GetScreenLocationTest * @run main/othervm -Dsun.java2d.uiScale=2 GetScreenLocationTest
--- a/test/java/awt/Window/SetWindowLocationByPlatformTest/SetWindowLocationByPlatformTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/Window/SetWindowLocationByPlatformTest/SetWindowLocationByPlatformTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8025130 * @summary setLocationByPlatform has no effect * @author Dmitry Markov @@ -29,6 +31,7 @@ * @build Util * @run main SetWindowLocationByPlatformTest */ + import java.awt.*; import test.java.awt.regtesthelpers.Util;
--- a/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,15 +21,16 @@ * questions. */ -/* - test - @bug 6193279 - @summary REGRESSION: AppletViewer throws IOException when path is encoded URL - @author Dmitry Cherepanov: area=appletviewer - @run compile IOExceptionIfEncodedURLTest.java - @run main IOExceptionIfEncodedURLTest - @run shell IOExceptionIfEncodedURLTest.sh -*/ +/** + * @test + * @key headful + * @bug 6193279 + * @summary REGRESSION: AppletViewer throws IOException when path is encoded URL + * @author Dmitry Cherepanov: area=appletviewer + * @run compile IOExceptionIfEncodedURLTest.java + * @run main IOExceptionIfEncodedURLTest + * @run shell IOExceptionIfEncodedURLTest.sh + */ import java.applet.Applet; import sun.net.www.ParseUtil;
--- a/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh Mon Aug 14 10:47:56 2017 -0700 @@ -24,6 +24,7 @@ #!/bin/ksh -p # # @test IOExceptionIfEncodedURLTest.sh +# @key headful # @bug 6193279 6619458 8137087 # @summary REGRESSION: AppletViewer throws IOException when path is encoded URL # @author Dmitry Cherepanov: area=appletviewer
--- a/test/java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ /** * @test + * @key headful * @bug 8076106 * @author Hendrik Schreiber * @summary [macosx] Drag image of TransferHandler does not honor
--- a/test/java/awt/datatransfer/HTMLDataFlavors/HTMLDataFlavorTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/datatransfer/HTMLDataFlavors/HTMLDataFlavorTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,17 +21,19 @@ * questions. */ -/* - @test - @bug 7075105 - @summary WIN: Provide a way to format HTML on drop - @author Denis Fokin: area=datatransfer - @library ../../../../lib/testlibrary - @build HtmlTransferable PutAllHtmlFlavorsOnClipboard - @build PutOnlyAllHtmlFlavorOnClipboard PutSelectionAndFragmentHtmlFlavorsOnClipboard - @build jdk.testlibrary.OSInfo - @run main HTMLDataFlavorTest -*/ +/** + * @test + * @key headful + * @bug 7075105 + * @summary WIN: Provide a way to format HTML on drop + * @author Denis Fokin: area=datatransfer + * @requires (os.family == "windows") + * @library ../../../../lib/testlibrary + * @build HtmlTransferable PutAllHtmlFlavorsOnClipboard + * @build PutOnlyAllHtmlFlavorOnClipboard PutSelectionAndFragmentHtmlFlavorsOnClipboard + * @build jdk.testlibrary.OSInfo + * @run main HTMLDataFlavorTest + */ import java.awt.*; import java.awt.datatransfer.*;
--- a/test/java/awt/event/KeyEvent/8020209/bug8020209.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/event/KeyEvent/8020209/bug8020209.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8020209 * @summary [macosx] Mac OS X key event confusion for "COMMAND PLUS" * @author leonid.romanov@oracle.com
--- a/test/java/awt/event/KeyEvent/DeadKey/DeadKeyMacOSXInputText.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/event/KeyEvent/DeadKey/DeadKeyMacOSXInputText.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 7199180 * @summary [macosx] Dead keys handling for input methods * @author alexandr.scherbatiy area=awt.event @@ -30,6 +31,7 @@ * @build jdk.testlibrary.OSInfo * @run main DeadKeyMacOSXInputText */ + import java.awt.*; import java.awt.event.*; import java.awt.event.KeyEvent;
--- a/test/java/awt/event/KeyEvent/DeadKey/deadKeyMacOSX.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/event/KeyEvent/DeadKey/deadKeyMacOSX.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 7196547 * @summary Dead Key implementation for KeyEvent on Mac OS X * @author alexandr.scherbatiy area=awt.event
--- a/test/java/awt/font/TextLayout/TestSinhalaChar.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/font/TextLayout/TestSinhalaChar.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,7 +21,9 @@ * */ -/* @test @(#)TestSinhalaChar.java +/** + * @test @(#)TestSinhalaChar.java + * @key headful * @summary verify lack of crash on U+0DDD. * @bug 6795060 */
--- a/test/java/awt/hidpi/properties/HiDPIPropertiesWindowsTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/hidpi/properties/HiDPIPropertiesWindowsTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,7 +28,9 @@ import java.awt.geom.AffineTransform; import javax.swing.UIManager; -/* @test +/** + * @test + * @key headful * @bug 8073320 * @summary Windows HiDPI support * @author Alexander Scherbatiy
--- a/test/java/awt/im/6396526/IMLookAndFeel.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/im/6396526/IMLookAndFeel.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,12 +21,13 @@ * questions. */ -/* +/** * @test - * @bug 6396526 - * @summary Verify below-the-spot IM in the swing L&F JFrame. - * Although the swing component is decorated with L&F - * the IM window should have no decoration. + * @key headful + * @bug 6396526 + * @summary Verify below-the-spot IM in the swing L&F JFrame. + * Although the swing component is decorated with L&F + * the IM window should have no decoration. * @author yuriko.yamasaki */
--- a/test/java/awt/im/8041990/bug8041990.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/im/8041990/bug8041990.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,13 +22,14 @@ */ -/* - @test - @bug 8041990 - @summary Language specific keys does not work in applets when opened outside the browser - @author Petr Pchelko - @modules java.desktop/sun.awt -*/ +/** + * @test + * @key headful + * @bug 8041990 + * @summary Language specific keys does not work in applets when opened outside the browser + * @author Petr Pchelko + * @modules java.desktop/sun.awt + */ import sun.awt.SunToolkit;
--- a/test/java/awt/image/MultiResolutionImageTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/image/MultiResolutionImageTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,7 @@ /** * @test @bug 8011059 + * @key headful * @author Alexander Scherbatiy * @summary [macosx] Make JDK demos look perfect on retina displays * @library /test/lib @@ -53,6 +54,7 @@ * @run main MultiResolutionImageTest TOOLKIT_LOAD * @run main MultiResolutionImageTest TOOLKIT */ + public class MultiResolutionImageTest { private static final int IMAGE_WIDTH = 300;
--- a/test/java/awt/image/multiresolution/Corrupted2XImageTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/image/multiresolution/Corrupted2XImageTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8142406 * @author a.stepanov * @summary [HiDPI] [macosx] check that for a pair of images
--- a/test/java/awt/image/multiresolution/MultiResolutionToolkitImageTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/image/multiresolution/MultiResolutionToolkitImageTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,7 @@ /** * @test + * @key headful * @bug 8040291 * @author Alexander Scherbatiy * @summary [macosx] Http-Images are not fully loaded when using ImageIcon @@ -43,6 +44,7 @@ * java.desktop/sun.awt.image * @run main MultiResolutionToolkitImageTest */ + public class MultiResolutionToolkitImageTest { private static final int IMAGE_WIDTH = 300;
--- a/test/java/awt/keyboard/AllKeyCode/AllKeyCode.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/keyboard/AllKeyCode/AllKeyCode.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,13 @@ * questions. */ -/* - @test - @bug 8149456 8147834 8150230 8155740 - @requires os.family == "mac" - @summary Tests key codes for all keys supported in Java for Mac OS X. - @run main AllKeyCode +/** + * @test + * @key headful + * @bug 8149456 8147834 8150230 8155740 + * @requires os.family == "mac" + * @summary Tests key codes for all keys supported in Java for Mac OS X. + * @run main AllKeyCode */ import java.awt.AWTException;
--- a/test/java/awt/keyboard/AltPlusNumberKeyCombinationsTest/AltPlusNumberKeyCombinationsTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/keyboard/AltPlusNumberKeyCombinationsTest/AltPlusNumberKeyCombinationsTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,16 +25,15 @@ import java.awt.event.*; /** - * Test that it is possible to type "Alt code" on Windows. - * Windows-only test. + * @test + * @key headful + * @summary Test that it is possible to type "Alt code" on Windows. + * @requires (os.family == "windows") + * @library ../../../../lib/testlibrary + * @build ExtendedRobot + * @run main AltPlusNumberKeyCombinationsTest */ -/* -@test -@summary Test that it is possible to type "Alt code" on Windows. -@library ../../../../lib/testlibrary -@build ExtendedRobot -@run main AltPlusNumberKeyCombinationsTest -*/ + public class AltPlusNumberKeyCombinationsTest { private Frame frame;
--- a/test/java/awt/print/PrinterJob/CheckPrivilege.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/CheckPrivilege.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test + * @key printer * @bug 4151151 * @summary Confirm that low-level print code does doPrivilege. * @author Graham Hamilton
--- a/test/java/awt/print/PrinterJob/ExceptionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/ExceptionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -23,6 +23,7 @@ /** * @test + * @key printer * @bug 6467557 * @summary No exception should be thrown. * @run main ExceptionTest
--- a/test/java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test + * @key printer * @bug 8061392 * @summary Test no NPE when printing transparency with null clip. */
--- a/test/java/awt/print/PrinterJob/Margins.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/Margins.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test + * @key headful * @bug 6543815 6601097 8160888 * @summary Image should be sent to printer, no exceptions thrown. * The 3 printouts should have a rectangle which is the minimum
--- a/test/java/awt/print/PrinterJob/PaintText.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/PaintText.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /** * @test + * @key headful printer * @bug 6498340 * @summary No exception when printing text with a paint. * @run main PaintText
--- a/test/java/awt/print/PrinterJob/PrintCrashTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/PrintCrashTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key printer * @bug 8163889 * @summary Printing crashes on OSX. * @run main PrintCrashTest
--- a/test/java/awt/print/PrinterJob/PrintTextPane.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/PrintTextPane.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,14 +21,15 @@ * questions. */ -/* - @test PrintTextPane.java - @bug 6452415 6570471 - @summary Test that swing text prints using GDI printer fonts. - @author prr: area=PrinterJob - @run main PrintTextPane +/** + * @test PrintTextPane.java + * @key headful printer + * @bug 6452415 6570471 + * @summary Test that swing text prints using GDI printer fonts. + * @author prr: area=PrinterJob + * @run main PrintTextPane + */ - */ import java.io.*; import java.net.*; import java.awt.*;
--- a/test/java/awt/print/PrinterJob/PrtException.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/awt/print/PrinterJob/PrtException.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,12 +20,14 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -/* - @test - @bug 4429544 - @summary This test should not throw a printer exception. Test has been modified to correspond with the behavior of 1.5 and above. - @run main PrtException -*/ + +/** + * @test + * @key printer + * @bug 4429544 + * @summary This test should not throw a printer exception. Test has been modified to correspond with the behavior of 1.5 and above. + * @run main PrtException + */ import java.awt.*; import java.awt.print.*;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/net/httpclient/ProxyTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import com.sun.net.httpserver.HttpContext; +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; +import com.sun.net.httpserver.HttpServer; +import com.sun.net.httpserver.HttpsConfigurator; +import com.sun.net.httpserver.HttpsParameters; +import com.sun.net.httpserver.HttpsServer; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.io.Writer; +import java.net.HttpURLConnection; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.ProxySelector; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; +import java.security.NoSuchAlgorithmException; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import jdk.incubator.http.HttpClient; +import jdk.incubator.http.HttpRequest; +import jdk.incubator.http.HttpResponse; +import jdk.testlibrary.SimpleSSLContext; + +/** + * @test + * @bug 8185852 + * @summary verifies that passing a proxy with an unresolved address does + * not cause java.nio.channels.UnresolvedAddressException + * @modules jdk.incubator.httpclient + * @library /lib/testlibrary/ + * @build jdk.testlibrary.SimpleSSLContext ProxyTest + * @run main/othervm ProxyTest + * @author danielfuchs + */ +public class ProxyTest { + + static { + try { + HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { + public boolean verify(String hostname, SSLSession session) { + return true; + } + }); + SSLContext.setDefault(new SimpleSSLContext().get()); + } catch (IOException ex) { + throw new ExceptionInInitializerError(ex); + } + } + + static final String RESPONSE = "<html><body><p>Hello World!</body></html>"; + static final String PATH = "/foo/"; + + static HttpServer createHttpsServer() throws IOException, NoSuchAlgorithmException { + HttpsServer server = com.sun.net.httpserver.HttpsServer.create(); + HttpContext context = server.createContext(PATH); + context.setHandler(new HttpHandler() { + @Override + public void handle(HttpExchange he) throws IOException { + he.getResponseHeaders().add("encoding", "UTF-8"); + he.sendResponseHeaders(200, RESPONSE.length()); + he.getResponseBody().write(RESPONSE.getBytes(StandardCharsets.UTF_8)); + he.close(); + } + }); + + server.setHttpsConfigurator(new Configurator(SSLContext.getDefault())); + server.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0), 0); + return server; + } + + public static void main(String[] args) + throws IOException, + URISyntaxException, + NoSuchAlgorithmException, + InterruptedException + { + HttpServer server = createHttpsServer(); + server.start(); + try { + test(server, HttpClient.Version.HTTP_1_1); + // test(server, HttpClient.Version.HTTP_2); + } finally { + server.stop(0); + System.out.println("Server stopped"); + } + } + + public static void test(HttpServer server, HttpClient.Version version) + throws IOException, + URISyntaxException, + NoSuchAlgorithmException, + InterruptedException + { + System.out.println("Server is: " + server.getAddress().toString()); + System.out.println("Verifying communication with server"); + URI uri = new URI("https:/" + server.getAddress().toString() + PATH + "x"); + try (InputStream is = uri.toURL().openConnection().getInputStream()) { + String resp = new String(is.readAllBytes(), StandardCharsets.UTF_8); + System.out.println(resp); + if (!RESPONSE.equals(resp)) { + throw new AssertionError("Unexpected response from server"); + } + } + System.out.println("Communication with server OK"); + + TunnelingProxy proxy = new TunnelingProxy(server); + proxy.start(); + try { + System.out.println("Proxy started"); + Proxy p = new Proxy(Proxy.Type.HTTP, + InetSocketAddress.createUnresolved("localhost", proxy.getAddress().getPort())); + System.out.println("Verifying communication with proxy"); + HttpURLConnection conn = (HttpURLConnection)uri.toURL().openConnection(p); + try (InputStream is = conn.getInputStream()) { + String resp = new String(is.readAllBytes(), StandardCharsets.UTF_8); + System.out.println(resp); + if (!RESPONSE.equals(resp)) { + throw new AssertionError("Unexpected response from proxy"); + } + } + System.out.println("Communication with proxy OK"); + System.out.println("\nReal test begins here."); + System.out.println("Setting up request with HttpClient for version: " + + version.name()); + ProxySelector ps = ProxySelector.of( + InetSocketAddress.createUnresolved("localhost", proxy.getAddress().getPort())); + HttpClient client = HttpClient.newBuilder() + .version(version) + .proxy(ps) + .build(); + HttpRequest request = HttpRequest.newBuilder() + .uri(uri) + .GET() + .build(); + + System.out.println("Sending request with HttpClient"); + HttpResponse<String> response + = client.send(request, HttpResponse.BodyHandler.asString()); + System.out.println("Got response"); + String resp = response.body(); + System.out.println("Received: " + resp); + if (!RESPONSE.equals(resp)) { + throw new AssertionError("Unexpected response"); + } + } finally { + System.out.println("Stopping proxy"); + proxy.stop(); + System.out.println("Proxy stopped"); + } + } + + static class TunnelingProxy { + final Thread accept; + final ServerSocket ss; + final boolean DEBUG = false; + final HttpServer serverImpl; + TunnelingProxy(HttpServer serverImpl) throws IOException { + this.serverImpl = serverImpl; + ss = new ServerSocket(); + accept = new Thread(this::accept); + } + + void start() throws IOException { + ss.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); + accept.start(); + } + + // Pipe the input stream to the output stream. + private synchronized Thread pipe(InputStream is, OutputStream os, char tag) { + return new Thread("TunnelPipe("+tag+")") { + @Override + public void run() { + try { + try { + int c; + while ((c = is.read()) != -1) { + os.write(c); + os.flush(); + // if DEBUG prints a + or a - for each transferred + // character. + if (DEBUG) System.out.print(tag); + } + is.close(); + } finally { + os.close(); + } + } catch (IOException ex) { + if (DEBUG) ex.printStackTrace(System.out); + } + } + }; + } + + public InetSocketAddress getAddress() { + return new InetSocketAddress(ss.getInetAddress(), ss.getLocalPort()); + } + + // This is a bit shaky. It doesn't handle continuation + // lines, but our client shouldn't send any. + // Read a line from the input stream, swallowing the final + // \r\n sequence. Stops at the first \n, doesn't complain + // if it wasn't preceded by '\r'. + // + String readLine(InputStream r) throws IOException { + StringBuilder b = new StringBuilder(); + int c; + while ((c = r.read()) != -1) { + if (c == '\n') break; + b.appendCodePoint(c); + } + if (b.codePointAt(b.length() -1) == '\r') { + b.delete(b.length() -1, b.length()); + } + return b.toString(); + } + + public void accept() { + Socket clientConnection = null; + try { + while (true) { + System.out.println("Tunnel: Waiting for client"); + Socket previous = clientConnection; + try { + clientConnection = ss.accept(); + } catch (IOException io) { + if (DEBUG) io.printStackTrace(System.out); + break; + } finally { + // we have only 1 client at a time, so it is safe + // to close the previous connection here + if (previous != null) previous.close(); + } + System.out.println("Tunnel: Client accepted"); + Socket targetConnection = null; + InputStream ccis = clientConnection.getInputStream(); + OutputStream ccos = clientConnection.getOutputStream(); + Writer w = new OutputStreamWriter(ccos, "UTF-8"); + PrintWriter pw = new PrintWriter(w); + System.out.println("Tunnel: Reading request line"); + String requestLine = readLine(ccis); + System.out.println("Tunnel: Request status line: " + requestLine); + if (requestLine.startsWith("CONNECT ")) { + // We should probably check that the next word following + // CONNECT is the host:port of our HTTPS serverImpl. + // Some improvement for a followup! + + // Read all headers until we find the empty line that + // signals the end of all headers. + while(!requestLine.equals("")) { + System.out.println("Tunnel: Reading header: " + + (requestLine = readLine(ccis))); + } + + // Open target connection + targetConnection = new Socket( + serverImpl.getAddress().getAddress(), + serverImpl.getAddress().getPort()); + + // Then send the 200 OK response to the client + System.out.println("Tunnel: Sending " + + "HTTP/1.1 200 OK\r\n\r\n"); + pw.print("HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); + pw.flush(); + } else { + // This should not happen. + throw new IOException("Tunnel: Unexpected status line: " + + requestLine); + } + + // Pipe the input stream of the client connection to the + // output stream of the target connection and conversely. + // Now the client and target will just talk to each other. + System.out.println("Tunnel: Starting tunnel pipes"); + Thread t1 = pipe(ccis, targetConnection.getOutputStream(), '+'); + Thread t2 = pipe(targetConnection.getInputStream(), ccos, '-'); + t1.start(); + t2.start(); + + // We have only 1 client... wait until it has finished before + // accepting a new connection request. + // System.out.println("Tunnel: Waiting for pipes to close"); + // t1.join(); + // t2.join(); + System.out.println("Tunnel: Done - waiting for next client"); + } + } catch (Throwable ex) { + try { + ss.close(); + } catch (IOException ex1) { + ex.addSuppressed(ex1); + } + ex.printStackTrace(System.err); + } + } + + void stop() throws IOException { + ss.close(); + } + + } + + static class Configurator extends HttpsConfigurator { + public Configurator(SSLContext ctx) { + super(ctx); + } + + @Override + public void configure (HttpsParameters params) { + params.setSSLParameters (getSSLContext().getSupportedSSLParameters()); + } + } + +}
--- a/test/java/util/Scanner/ScanTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/Scanner/ScanTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,14 @@ !"ja".equals(lang)) { //Before we have resource to improve the test to be ready for //arbitrary locale, force the default locale to be "English" - //for now. + //for now. First we check whether the "English" locale is + //available on the system as it could be absent due to varying + //configurations. + if (!Arrays.asList(Locale.getAvailableLocales()) + .contains(Locale.ENGLISH)) { + throw new RuntimeException + ("The \"English\" Locale is unavailable on this system"); + } Locale.setDefault(Locale.ENGLISH); } skipTest();
--- a/test/java/util/concurrent/tck/ArrayBlockingQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ArrayBlockingQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -903,7 +903,7 @@ } /** - * A deserialized serialized queue has same elements in same order + * A deserialized/reserialized queue has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedQueue(SIZE);
--- a/test/java/util/concurrent/tck/ArrayDequeTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ArrayDequeTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -939,7 +939,7 @@ } /** - * A deserialized serialized deque has same elements in same order + * A deserialized/reserialized deque has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedDeque(SIZE);
--- a/test/java/util/concurrent/tck/ArrayListTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ArrayListTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -33,6 +33,7 @@ */ import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import junit.framework.Test; @@ -61,4 +62,27 @@ CollectionTest.testSuite(new SubListImplementation())); } + /** + * A cloned list equals original + */ + public void testClone() throws Exception { + ArrayList<Integer> x = new ArrayList<>(); + x.add(1); + x.add(2); + x.add(3); + ArrayList<Integer> y = (ArrayList<Integer>) x.clone(); + + assertNotSame(y, x); + assertEquals(x, y); + assertEquals(y, x); + assertEquals(x.size(), y.size()); + assertEquals(x.toString(), y.toString()); + assertTrue(Arrays.equals(x.toArray(), y.toArray())); + while (!x.isEmpty()) { + assertFalse(y.isEmpty()); + assertEquals(x.remove(0), y.remove(0)); + } + assertTrue(y.isEmpty()); + } + }
--- a/test/java/util/concurrent/tck/AtomicBooleanTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicBooleanTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -147,7 +147,7 @@ } /** - * a deserialized serialized atomic holds same value + * a deserialized/reserialized atomic holds same value */ public void testSerialization() throws Exception { AtomicBoolean x = new AtomicBoolean();
--- a/test/java/util/concurrent/tck/AtomicIntegerArrayTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicIntegerArrayTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -342,7 +342,7 @@ } /** - * a deserialized serialized array holds same values + * a deserialized/reserialized array holds same values in same order */ public void testSerialization() throws Exception { AtomicIntegerArray x = new AtomicIntegerArray(SIZE);
--- a/test/java/util/concurrent/tck/AtomicIntegerTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicIntegerTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -218,7 +218,7 @@ } /** - * a deserialized serialized atomic holds same value + * a deserialized/reserialized atomic holds same value */ public void testSerialization() throws Exception { AtomicInteger x = new AtomicInteger();
--- a/test/java/util/concurrent/tck/AtomicLongArrayTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicLongArrayTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -341,7 +341,7 @@ } /** - * a deserialized serialized array holds same values + * a deserialized/reserialized array holds same values in same order */ public void testSerialization() throws Exception { AtomicLongArray x = new AtomicLongArray(SIZE);
--- a/test/java/util/concurrent/tck/AtomicLongTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicLongTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -220,7 +220,7 @@ } /** - * a deserialized serialized atomic holds same value + * a deserialized/reserialized atomic holds same value */ public void testSerialization() throws Exception { AtomicLong x = new AtomicLong();
--- a/test/java/util/concurrent/tck/AtomicReferenceArrayTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicReferenceArrayTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -220,7 +220,7 @@ } /** - * a deserialized serialized array holds same values + * a deserialized/reserialized array holds same values in same order */ public void testSerialization() throws Exception { AtomicReferenceArray x = new AtomicReferenceArray(SIZE);
--- a/test/java/util/concurrent/tck/AtomicReferenceTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/AtomicReferenceTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -143,7 +143,7 @@ } /** - * a deserialized serialized atomic holds same value + * a deserialized/reserialized atomic holds same value */ public void testSerialization() throws Exception { AtomicReference x = new AtomicReference();
--- a/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java Mon Aug 14 10:47:56 2017 -0700 @@ -570,7 +570,7 @@ } /** - * A deserialized serialized set is equal + * A deserialized/reserialized set equals original */ public void testSerialization() throws Exception { int size = 20;
--- a/test/java/util/concurrent/tck/ConcurrentHashMapTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentHashMapTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -811,7 +811,7 @@ } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ public void testSerialization() throws Exception { Map x = map5();
--- a/test/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -889,7 +889,7 @@ } /** - * A deserialized serialized deque has same elements in same order + * A deserialized/reserialized deque has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedDeque(SIZE);
--- a/test/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -538,7 +538,7 @@ } /** - * A deserialized serialized queue has same elements in same order + * A deserialized/reserialized queue has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedQueue(SIZE);
--- a/test/java/util/concurrent/tck/ConcurrentSkipListMapTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentSkipListMapTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -828,7 +828,24 @@ } /** - * A deserialized map equals original + * A cloned map equals original + */ + public void testClone() { + ConcurrentSkipListMap x = map5(); + ConcurrentSkipListMap y = x.clone(); + + assertNotSame(x, y); + assertEquals(x.size(), y.size()); + assertEquals(x.toString(), y.toString()); + assertEquals(x, y); + assertEquals(y, x); + y.clear(); + assertTrue(y.isEmpty()); + assertFalse(x.equals(y)); + } + + /** + * A deserialized/reserialized map equals original */ public void testSerialization() throws Exception { NavigableMap x = map5(); @@ -839,6 +856,9 @@ assertEquals(x.toString(), y.toString()); assertEquals(x, y); assertEquals(y, x); + y.clear(); + assertTrue(y.isEmpty()); + assertFalse(x.equals(y)); } /**
--- a/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentSkipListSetTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -553,7 +553,25 @@ } /** - * A deserialized serialized set has same elements + * A cloned set equals original + */ + public void testClone() { + ConcurrentSkipListSet x = populatedSet(SIZE); + ConcurrentSkipListSet y = x.clone(); + + assertNotSame(x, y); + assertEquals(x.size(), y.size()); + assertEquals(x, y); + assertEquals(y, x); + while (!x.isEmpty()) { + assertFalse(y.isEmpty()); + assertEquals(x.pollFirst(), y.pollFirst()); + } + assertTrue(y.isEmpty()); + } + + /** + * A deserialized/reserialized set equals original */ public void testSerialization() throws Exception { NavigableSet x = populatedSet(SIZE);
--- a/test/java/util/concurrent/tck/ConcurrentSkipListSubMapTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentSkipListSubMapTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -625,7 +625,7 @@ } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ public void testSerialization() throws Exception { NavigableMap x = map5(); @@ -1299,7 +1299,7 @@ } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ public void testDescendingSerialization() throws Exception { NavigableMap x = dmap5();
--- a/test/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -503,7 +503,7 @@ } /** - * A deserialized serialized set has same elements + * A deserialized/reserialized set equals original */ public void testSerialization() throws Exception { NavigableSet x = populatedSet(SIZE); @@ -1002,7 +1002,7 @@ } /** - * A deserialized serialized set has same elements + * A deserialized/reserialized set equals original */ public void testDescendingSerialization() throws Exception { NavigableSet x = dset5();
--- a/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -774,7 +774,7 @@ } /** - * a deserialized serialized list is equal + * a deserialized/reserialized list equals original */ public void testSerialization() throws Exception { List x = populatedArray(SIZE);
--- a/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -403,7 +403,7 @@ } /** - * A deserialized serialized set is equal + * A deserialized/reserialized set equals original */ public void testSerialization() throws Exception { Set x = populatedSet(SIZE);
--- a/test/java/util/concurrent/tck/DoubleAdderTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/DoubleAdderTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -89,7 +89,7 @@ } /** - * a deserialized serialized adder holds same value + * a deserialized/reserialized adder holds same value */ public void testSerialization() throws Exception { DoubleAdder x = new DoubleAdder();
--- a/test/java/util/concurrent/tck/JSR166TestCase.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/JSR166TestCase.java Mon Aug 14 10:47:56 2017 -0700 @@ -1143,53 +1143,6 @@ } /** - * Checks that thread does not terminate within the default - * millisecond delay of {@code timeoutMillis()}. - * TODO: REMOVEME - */ - void assertThreadStaysAlive(Thread thread) { - assertThreadStaysAlive(thread, timeoutMillis()); - } - - /** - * Checks that thread does not terminate within the given millisecond delay. - * TODO: REMOVEME - */ - void assertThreadStaysAlive(Thread thread, long millis) { - try { - // No need to optimize the failing case via Thread.join. - delay(millis); - assertTrue(thread.isAlive()); - } catch (InterruptedException fail) { - threadFail("Unexpected InterruptedException"); - } - } - - /** - * Checks that the threads do not terminate within the default - * millisecond delay of {@code timeoutMillis()}. - * TODO: REMOVEME - */ - void assertThreadsStayAlive(Thread... threads) { - assertThreadsStayAlive(timeoutMillis(), threads); - } - - /** - * Checks that the threads do not terminate within the given millisecond delay. - * TODO: REMOVEME - */ - void assertThreadsStayAlive(long millis, Thread... threads) { - try { - // No need to optimize the failing case via Thread.join. - delay(millis); - for (Thread thread : threads) - assertTrue(thread.isAlive()); - } catch (InterruptedException fail) { - threadFail("Unexpected InterruptedException"); - } - } - - /** * Checks that future.get times out, with the default timeout of * {@code timeoutMillis()}. */
--- a/test/java/util/concurrent/tck/LinkedBlockingDequeTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/LinkedBlockingDequeTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1800,7 +1800,7 @@ } /** - * A deserialized serialized deque has same elements in same order + * A deserialized/reserialized deque has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedDeque(SIZE);
--- a/test/java/util/concurrent/tck/LinkedBlockingQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/LinkedBlockingQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -823,7 +823,7 @@ } /** - * A deserialized serialized queue has same elements in same order + * A deserialized/reserialized queue has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedQueue(SIZE);
--- a/test/java/util/concurrent/tck/LinkedTransferQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/LinkedTransferQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -674,7 +674,7 @@ } /** - * A deserialized serialized queue has same elements in same order + * A deserialized/reserialized queue has same elements in same order */ public void testSerialization() throws Exception { Queue x = populatedQueue(SIZE);
--- a/test/java/util/concurrent/tck/LongAdderTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/LongAdderTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -111,7 +111,7 @@ } /** - * a deserialized serialized adder holds same value + * a deserialized/reserialized adder holds same value */ public void testSerialization() throws Exception { LongAdder x = new LongAdder();
--- a/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/PriorityBlockingQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -686,7 +686,7 @@ } /** - * A deserialized serialized queue has same elements + * A deserialized/reserialized queue has same elements */ public void testSerialization() throws Exception { Queue x = populatedQueue(SIZE);
--- a/test/java/util/concurrent/tck/PriorityQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/PriorityQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -522,7 +522,7 @@ } /** - * A deserialized serialized queue has same elements + * A deserialized/reserialized queue has same elements */ public void testSerialization() throws Exception { Queue x = populatedQueue(SIZE);
--- a/test/java/util/concurrent/tck/SynchronousQueueTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/SynchronousQueueTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -557,7 +557,7 @@ } /** - * a deserialized serialized queue is usable + * a deserialized/reserialized queue is usable */ public void testSerialization() { final SynchronousQueue x = new SynchronousQueue();
--- a/test/java/util/concurrent/tck/ThreadLocalRandom8Test.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ThreadLocalRandom8Test.java Mon Aug 14 10:47:56 2017 -0700 @@ -260,8 +260,8 @@ } /** - * A deserialized ThreadLocalRandom is always identical to - * ThreadLocalRandom.current() + * A deserialized/reserialized ThreadLocalRandom is always + * identical to ThreadLocalRandom.current() */ public void testSerialization() { assertSame(
--- a/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1319,8 +1319,8 @@ public void testMaximumPoolSizeIllegalArgumentException2() { final ThreadPoolExecutor p = new CustomTPE(2, 3, - LONG_DELAY_MS, - MILLISECONDS,new ArrayBlockingQueue<Runnable>(10)); + LONG_DELAY_MS, MILLISECONDS, + new ArrayBlockingQueue<Runnable>(10)); try (PoolCleaner cleaner = cleaner(p)) { try { p.setMaximumPoolSize(-1);
--- a/test/java/util/concurrent/tck/TimeUnitTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/TimeUnitTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -623,7 +623,7 @@ } /** - * a deserialized serialized unit is the same instance + * a deserialized/reserialized unit is the same instance */ public void testSerialization() throws Exception { for (TimeUnit x : TimeUnit.values())
--- a/test/java/util/concurrent/tck/TreeMapTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/TreeMapTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -633,7 +633,7 @@ } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ public void testSerialization() throws Exception { NavigableMap x = map5();
--- a/test/java/util/concurrent/tck/TreeSetTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/TreeSetTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -549,7 +549,7 @@ } /** - * A deserialized serialized set has same elements + * A deserialized/reserialized set equals original */ public void testSerialization() throws Exception { NavigableSet x = populatedSet(SIZE);
--- a/test/java/util/concurrent/tck/TreeSubMapTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/TreeSubMapTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -460,7 +460,7 @@ } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ public void testSerialization() throws Exception { NavigableMap x = map5(); @@ -987,7 +987,7 @@ } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ public void testDescendingSerialization() throws Exception { NavigableMap x = dmap5();
--- a/test/java/util/concurrent/tck/TreeSubSetTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/java/util/concurrent/tck/TreeSubSetTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -500,7 +500,7 @@ } /** - * A deserialized serialized set has same elements + * A deserialized/reserialized set equals original */ public void testSerialization() throws Exception { NavigableSet x = populatedSet(SIZE); @@ -988,7 +988,7 @@ } /** - * A deserialized serialized set has same elements + * A deserialized/reserialized set equals original */ public void testDescendingSerialization() throws Exception { NavigableSet x = dset5();
--- a/test/javax/print/CheckDupFlavor.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/print/CheckDupFlavor.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,14 @@ * questions. */ -/* +/** * @test + * @key printer * @bug 4996318 6731937 * @summary There should be no duplicates returned by getSupportedDocFlavors. * @run main CheckDupFlavor */ + import javax.print.*; import javax.print.attribute.*; import javax.print.attribute.standard.*;
--- a/test/javax/print/PrintSE/PrintSE.sh Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/print/PrintSE/PrintSE.sh Mon Aug 14 10:47:56 2017 -0700 @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,8 +24,11 @@ # # @test +# @key printer # @bug 6662775 -# @summary Tests queuePrintJob is sufficient permission. +# @summary Tests queuePrintJob is sufficient permission for printing. This test +# prints a page to a printer. If a document printer is installed, a +# popup can appear (to select the file location). # @run clean PrintSE # @run build PrintSE # @run compile PrintSE.java
--- a/test/javax/print/attribute/AttributeTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/print/attribute/AttributeTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,14 @@ * questions. */ -/* +/** * @test + * @key printer * @bug 6387255 * @summary Tests conflict of Media values returned by isAttrValueSupported and getSupportedAttrValues. No runtime exception should be thrown. * @run main AttributeTest */ + import javax.print.*; import javax.print.attribute.standard.*; import javax.print.attribute.*;
--- a/test/javax/print/attribute/GetCopiesSupported.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/print/attribute/GetCopiesSupported.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,12 +20,14 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -/* - @test - @bug 4463280 - @summary No ClassCastException should occur. - @run main GetCopiesSupported -*/ + +/** + * @test + * @key printer + * @bug 4463280 + * @summary No ClassCastException should occur. + * @run main GetCopiesSupported + */ import javax.print.*; import javax.print.attribute.*;
--- a/test/javax/print/attribute/SidesPageRangesTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/print/attribute/SidesPageRangesTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,12 +20,15 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -/* + +/** * @test + * @key printer * @bug 4903366 * @summary No crash should occur. * @run main SidesPageRangesTest -*/ + */ + import java.awt.*; import javax.print.*; import javax.print.attribute.standard.*;
--- a/test/javax/print/attribute/SupportedPrintableAreas.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/print/attribute/SupportedPrintableAreas.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key printer * @bug 4762773 6289206 6324049 6362765 * @summary Tests that get non-null return list of printable areas. * @run main SupportedPrintableAreas
--- a/test/javax/swing/JButton/8151303/PressedIconTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JButton/8151303/PressedIconTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,11 +39,13 @@ /** * @test + * @key headful * @bug 8151303 * @summary [macosx] [hidpi] JButton's low-res. icon is visible when clicking on it * @run main/othervm PressedIconTest * @run main/othervm -Dsun.java2d.uiScale=2 PressedIconTest */ + public class PressedIconTest { private final static int IMAGE_SIZE = 300;
--- a/test/javax/swing/JComboBox/6567433/UpdateUIRecursionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JComboBox/6567433/UpdateUIRecursionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 6567433 * * @summary JComboBox.updateUI() invokes updateUI() on its cellrenderer via
--- a/test/javax/swing/JComboBox/8019180/Test8019180.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JComboBox/8019180/Test8019180.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,8 +26,9 @@ import javax.swing.JFrame; import javax.swing.SwingUtilities; -/* +/** * @test + * @key headful * @bug 8019180 * @summary Tests that combobox works if it is used as action listener * @author Sergey Malenkov
--- a/test/javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,11 +21,13 @@ * questions. */ - /* @test - * @bug 8041909 - * @summary Test to check JComboBox does not lose its ability to invoke - * registerd ActionListener in case of exception in ActionListener - * @run main ActionListenerExceptionTest +/** + * @test + * @key headful + * @bug 8041909 + * @summary Test to check JComboBox does not lose its ability to invoke + * registerd ActionListener in case of exception in ActionListener + * @run main ActionListenerExceptionTest */ import java.awt.AWTEvent;
--- a/test/javax/swing/JComboBox/WindowsComboBoxSize/WindowsComboBoxSizeTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JComboBox/WindowsComboBoxSize/WindowsComboBoxSizeTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8179027 * @requires (os.family == "windows") * @summary JComboBox too small under Windows LAF
--- a/test/javax/swing/JComponent/4337267/bug4337267.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JComponent/4337267/bug4337267.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 4337267 * @summary test that numeric shaping works in Swing components * @author Sergey Groznyh
--- a/test/javax/swing/JComponent/8043610/bug8043610.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JComponent/8043610/bug8043610.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,15 @@ */ -/* - @test - @bug 8043610 - @summary Tests that JComponent invalidate, revalidate and repaint methods could - be called from any thread - @author Petr Pchelko - @modules java.desktop/sun.awt -*/ +/** + * @test + * @key headful + * @bug 8043610 + * @summary Tests that JComponent invalidate, revalidate and repaint methods could + * be called from any thread + * @author Petr Pchelko + * @modules java.desktop/sun.awt + */ import sun.awt.SunToolkit;
--- a/test/javax/swing/JDialog/6639507/bug6639507.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JDialog/6639507/bug6639507.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,11 +21,14 @@ * questions. */ -/* @test - @bug 6639507 - @summary Title of javax.swing.JDialog is null while spec says it's empty - @author Pavel Porvatov -*/ +/** + * @test + * @key headful + * @bug 6639507 + * @summary Title of javax.swing.JDialog is null while spec says it's empty + * @author Pavel Porvatov + */ + import javax.swing.*; import java.awt.*;
--- a/test/javax/swing/JFileChooser/6713352/bug6713352.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFileChooser/6713352/bug6713352.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,15 @@ * questions. */ -/* @test - @bug 6713352 - @summary Deadlock in JFileChooser with synchronized custom FileSystemView - @author Pavel Porvatov - @modules java.desktop/sun.awt.shell - @run main bug6713352 -*/ +/** + * @test + * @key headful + * @bug 6713352 + * @summary Deadlock in JFileChooser with synchronized custom FileSystemView + * @author Pavel Porvatov + * @modules java.desktop/sun.awt.shell + * @run main bug6713352 + */ import sun.awt.shell.ShellFolder;
--- a/test/javax/swing/JFileChooser/6817933/Test6817933.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFileChooser/6817933/Test6817933.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,11 +21,13 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 6817933 * @summary Tests that HTMLEditorKit does not affect JFileChooser * @author Sergey Malenkov + * @requires (os.family == "windows") * @modules java.desktop/sun.awt * java.desktop/sun.swing */
--- a/test/javax/swing/JFileChooser/8010718/bug8010718.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFileChooser/8010718/bug8010718.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,10 +23,12 @@ /* * @test + * @key headful * @bug 8010718 * @summary [macosx] JFileChooser current filter nullified by addChoosableFileFilter * @author Tomas Hurka */ + import java.io.File; import javax.swing.*; import javax.swing.filechooser.FileFilter;
--- a/test/javax/swing/JFileChooser/8013442/Test8013442.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFileChooser/8013442/Test8013442.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8013442 * @summary Tests that at least one file filter is selected * @author Sergey Malenkov
--- a/test/javax/swing/JFileChooser/8152677/SelectAllFilesFilterTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFileChooser/8152677/SelectAllFilesFilterTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,8 +31,9 @@ import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; -/* +/** * @test + * @key headful * @bug 8152677 * @requires (os.family == "mac") * @summary [macosx] All files filter can't be selected in JFileChooser
--- a/test/javax/swing/JFrame/8016356/bug8016356.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFrame/8016356/bug8016356.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,17 @@ * questions. */ -/* @test - @bug 8016356 - @summary Any swing frame resizes ugly. - @author Oleg Pekhovskiy - @library ../../../../lib/testlibrary - @build jdk.testlibrary.OSInfo - @run main bug8016356 -*/ +/** + * @test + * @key headful + * @bug 8016356 + * @summary Any swing frame resizes ugly. + * @author Oleg Pekhovskiy + * @requires (os.family == "windows") + * @library ../../../../lib/testlibrary + * @build jdk.testlibrary.OSInfo + * @run main bug8016356 + */ import java.awt.AWTException; import java.awt.Color;
--- a/test/javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ /** * @test + * @key headful * @bug 7124513 * @summary We should support NSTexturedBackgroundWindowMask style on OSX. * @author Sergey Bylokhov @@ -38,6 +39,7 @@ * @build ExtendedRobot jdk.testlibrary.OSInfo * @run main NSTexturedJFrame */ + public final class NSTexturedJFrame { private static final String BRUSH = "apple.awt.brushMetalLook";
--- a/test/javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 6288609 * @summary JInternalFrame.setDefaultCloseOperation() interferes with "close" behavior @@ -30,6 +31,7 @@ * @build Util * @run main TestJInternalFrameDispose */ + import java.awt.Point; import java.awt.Robot; import java.awt.event.ActionEvent;
--- a/test/javax/swing/JInternalFrame/8075314/bug8075314.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JInternalFrame/8075314/bug8075314.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,15 @@ * questions. */ -/* @test - @bug 8075314 - @summary All the InternalFrames will be maximized after maximizing only one - of the InternalFrame with the special options "-client -Xmixed - -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel". - @author Semyon Sadetsky - */ - +/** + * @test + * @key headful + * @bug 8075314 + * @summary All the InternalFrames will be maximized after maximizing only one + * of the InternalFrame with the special options "-client -Xmixed + * -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel". + * @author Semyon Sadetsky + */ import javax.swing.*; import java.beans.PropertyVetoException; @@ -71,7 +72,7 @@ } }); } finally { - frame.dispose(); + if (frame != null) { frame.dispose(); } } } System.out.println("ok");
--- a/test/javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,14 +21,16 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8145060 * @summary Minimizing a JInternalFrame not shifting focus to frame below it * @library ../../regtesthelpers * @build Util * @run main TestJInternalFrameMinimize */ + import java.awt.Point; import java.awt.Robot; import java.awt.event.ActionEvent;
--- a/test/javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,6 +35,7 @@ /** * @test + * @key headful * @bug 8160248 8160332 * @summary Dragged internal frame leaves artifacts for floating point ui scale * @run main/othervm -Dsun.java2d.uiScale=1.2 JInternalFrameDraggingTest @@ -42,6 +43,7 @@ * @run main/othervm -Dsun.java2d.uiScale=1 JInternalFrameDraggingTest * @run main/othervm -Dsun.java2d.uiScale=2.5 JInternalFrameDraggingTest */ + public class JInternalFrameDraggingTest { private static JFrame frame;
--- a/test/javax/swing/JInternalFrame/DockIconRepaint/DockIconRepaint.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JInternalFrame/DockIconRepaint/DockIconRepaint.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,9 +36,11 @@ /** * @test + * @key headful * @bug 8144166 * @requires (os.family == "mac") */ + public final class DockIconRepaint { private static volatile Color color;
--- a/test/javax/swing/JInternalFrame/Test6325652.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JInternalFrame/Test6325652.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 6325652 8159152 * @summary Tests keyboard shortcuts * @library ..
--- a/test/javax/swing/JList/6567433/UpdateUIRecursionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JList/6567433/UpdateUIRecursionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 6567433 * * @summary JList.updateUI() for invokes updateUI() on its cellrenderer via
--- a/test/javax/swing/JList/8161483/Bug8161483.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JList/8161483/Bug8161483.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8161483 * @summary Implement AccessibleAction in JList.AccessibleJList.AccessibleJListChild * @run main Bug8161483 @@ -39,7 +40,7 @@ public class Bug8161483 extends JFrame { - private static JFrame frame; + private static JFrame frame = null; private static volatile Exception exception = null; private JList<String> countryList; @@ -96,7 +97,7 @@ } } finally { SwingUtilities.invokeAndWait(() -> { - frame.dispose(); + if (frame != null) { frame.dispose(); } }); } }
--- a/test/javax/swing/JMenu/6538132/bug6538132.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenu/6538132/bug6538132.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,14 +20,18 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -/* @test - @bug 6538132 - @summary Regression: Pressing Escape key don't close the menu items from jdk7.0 b07 onwards - @author Alexander Potochkin - @library ../../../../lib/testlibrary - @build ExtendedRobot - @run main bug6538132 -*/ + +/** + * @test + * @key headful + * @bug 6538132 + * @summary Regression: Pressing Escape key don't close the menu items from jdk7.0 b07 onwards + * @author Alexander Potochkin + * @requires (os.family == "windows") + * @library ../../../../lib/testlibrary + * @build ExtendedRobot + * @run main bug6538132 + */ import javax.swing.*; import java.awt.*;
--- a/test/javax/swing/JMenu/8067346/bug8067346.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenu/8067346/bug8067346.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,15 @@ * questions. */ -/* @test - @bug 8067346 - @summary Submenu has a changed offset on Windows7 with Windows look and feel - @requires (os.family == "windows") - @run main bug8067346 +/** + * @test + * @key headful + * @bug 8067346 + * @summary Submenu has a changed offset on Windows7 with Windows look and feel + * @requires (os.family == "windows") + * @run main bug8067346 */ + import java.awt.Insets; import javax.swing.JFrame; import javax.swing.JMenu;
--- a/test/javax/swing/JMenuItem/8139169/ScreenMenuBarInputTwice.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenuItem/8139169/ScreenMenuBarInputTwice.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8139169 8158390 * @summary verifies if TextArea gets input twice due to Apple's Screen Menubar * @requires (os.family=="mac") @@ -29,6 +31,7 @@ * @build Util * @run main ScreenMenuBarInputTwice */ + import java.awt.BorderLayout; import java.awt.Point; import java.awt.Robot;
--- a/test/javax/swing/JMenuItem/8152981/MenuItemIconTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenuItem/8152981/MenuItemIconTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,15 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8152981 8159135 * @summary Double icons with JMenuItem setHorizontalTextPosition on Win 10 * @requires (os.family == "windows") * @run main MenuItemIconTest */ + import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics;
--- a/test/javax/swing/JMenuItem/8158566/CloseOnMouseClickPropertyTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenuItem/8158566/CloseOnMouseClickPropertyTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,11 +35,13 @@ import javax.swing.SwingUtilities; import javax.swing.UIManager; -/* +/** * @test + * @key headful * @bug 8158566 8160879 8160977 8158566 * @summary Provide a Swing property which modifies MenuItemUI behaviour */ + public class CloseOnMouseClickPropertyTest { private static final String CHECK_BOX_PROP = "CheckBoxMenuItem." @@ -219,4 +221,5 @@ } } } -} \ No newline at end of file +} +
--- a/test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,8 +21,9 @@ * questions. */ - /* +/** * @test + * @key headful * @bug 7160951 8152492 8178448 * @summary [macosx] ActionListener called twice for JMenuItem using ScreenMenuBar * @author vera.akulova@oracle.com @@ -31,6 +32,7 @@ * @build jdk.testlibrary.OSInfo * @run main ActionListenerCalledTwiceTest */ + import jdk.testlibrary.OSInfo; import java.awt.*; import java.awt.event.*;
--- a/test/javax/swing/JMenuItem/ClickMenuTestManual/ClickMenuTestManual.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JMenuItem/ClickMenuTestManual/ClickMenuTestManual.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,15 @@ * questions. */ - /* @test +/** + * @test + * @key headful * @bug 8158230 * @summary Verify menu item option apple.laf.useScreenMenuBar implementation * @requires (os.family=="mac") * @run main ClickMenuTestManual */ + import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout;
--- a/test/javax/swing/JOptionPane/8081019/bug8081019.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JOptionPane/8081019/bug8081019.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,6 +28,7 @@ /** * @test + * @key headful * @bug 8081019 * @summary Check peer to null in CPlatformWindow.checkZoom() method * @author Alexandr Scherbatiy
--- a/test/javax/swing/JPopupMenu/6217905/bug6217905.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JPopupMenu/6217905/bug6217905.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,15 +20,18 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -/* -@test -@bug 6217905 -@summary JPopupMenu keyboard navigation stops working -@author Alexander Potochkin -@library ../../../../lib/testlibrary -@build ExtendedRobot -@run main bug6217905 -*/ + +/** + * @test + * @key headful + * @bug 6217905 + * @summary JPopupMenu keyboard navigation stops working + * @author Alexander Potochkin + * @requires (os.family == "windows") + * @library ../../../../lib/testlibrary + * @build ExtendedRobot + * @run main bug6217905 + */ import javax.swing.*; import java.awt.*;
--- a/test/javax/swing/JPopupMenu/7154841/bug7154841.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JPopupMenu/7154841/bug7154841.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,15 @@ * questions. */ -/* - @test - @bug 7154841 - @summary JPopupMenu is overlapped by a Dock on Mac OS X - @author Petr Pchelko - @library ../../../../lib/testlibrary - @build ExtendedRobot jdk.testlibrary.OSInfo - @run main bug7154841 +/** + * @test + * @key headful + * @bug 7154841 + * @summary JPopupMenu is overlapped by a Dock on Mac OS X + * @author Petr Pchelko + * @library ../../../../lib/testlibrary + * @build ExtendedRobot jdk.testlibrary.OSInfo + * @run main bug7154841 */ import java.awt.*;
--- a/test/javax/swing/JTabbedPane/7170310/bug7170310.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JTabbedPane/7170310/bug7170310.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,6 +37,7 @@ /** * @test + * @key headful * @bug 7170310 * @author Alexey Ivanov * @summary Selected tab should be scrolled into view. @@ -44,6 +45,7 @@ * @build ExtendedRobot * @run main bug7170310 */ + public class bug7170310 { private static final int TABS_NUMBER = 3; @@ -75,7 +77,7 @@ System.out.printf("Test passed"); } } finally { - frame.dispose(); + if (frame != null) { frame.dispose(); } } }
--- a/test/javax/swing/JTable/6567433/UpdateUIRecursionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JTable/6567433/UpdateUIRecursionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 6567433 * * @summary JTable.updateUI() invokes updateUI() on its TableCellrenderer via
--- a/test/javax/swing/JTableHeader/6567433/UpdateUIRecursionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JTableHeader/6567433/UpdateUIRecursionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 6567433 * * @summary JTableHeader.updateUI() invokes updateUI() on its TableCellrenderer via
--- a/test/javax/swing/JTextArea/6940863/bug6940863.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JTextArea/6940863/bug6940863.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,10 +21,13 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 6940863 * @summary Textarea within scrollpane shows vertical scrollbar * @author Pavel Porvatov + * @requires (os.family == "windows") * @library ../../../../lib/testlibrary * @build jdk.testlibrary.OSInfo * @run main bug6940863
--- a/test/javax/swing/JTextArea/ScrollbarFlicker/ScrollFlickerTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JTextArea/ScrollbarFlicker/ScrollFlickerTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8160246 * @summary Regression: 4410243 reproducible with GTK LaF * @run main ScrollFlickerTest
--- a/test/javax/swing/JTree/6567433/UpdateUIRecursionTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/JTree/6567433/UpdateUIRecursionTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 6567433 * * @summary JTree.updateUI() invokes updateUI() on its TreeCellrenderer via
--- a/test/javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8065861 * @summary Test to check pressing Escape key sets 'canceled' property of ProgressMonitor * @run main ProgressMonitorEscapeKeyPress
--- a/test/javax/swing/Security/6938813/bug6938813.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/Security/6938813/bug6938813.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /* * @test + * @key headful * @bug 6938813 * @summary Swing mutable statics * @author Pavel Porvatov
--- a/test/javax/swing/ToolTipManager/7123767/bug7123767.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/ToolTipManager/7123767/bug7123767.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,7 +21,7 @@ * questions. */ -/* +/** * @test * @bug 7123767 * @@ -34,8 +34,7 @@ * * @author Vladislav Karnaukhov * - * @key headful - * @key randomness + * @key headful randomness * * @modules java.desktop/sun.awt * @library /test/lib
--- a/test/javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ /** * @test + * @key headful * @bug 8134947 * @author Sergey Bylokhov * @run main/timeout=300/othervm -Xmx12m -XX:+HeapDumpOnOutOfMemoryError UnninstallUIMemoryLeaks @@ -54,7 +55,7 @@ } } } finally { - EventQueue.invokeAndWait(() -> frame.dispose()); + if (frame != null) { EventQueue.invokeAndWait(() -> frame.dispose()); } } }
--- a/test/javax/swing/plaf/aqua/CustomComboBoxFocusTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/aqua/CustomComboBoxFocusTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,16 @@ * questions. */ -/* @test - @bug 8073001 8081764 - @summary Test verifies that combo box with custom editor renders - focus ring around arrow button correctly. - @library /lib/testlibrary - @build jdk.testlibrary.OSInfo - @run main CustomComboBoxFocusTest -*/ +/** + * @test + * @key headful + * @bug 8073001 8081764 + * @summary Test verifies that combo box with custom editor renders + * focus ring around arrow button correctly. + * @library /lib/testlibrary + * @build jdk.testlibrary.OSInfo + * @run main CustomComboBoxFocusTest + */ import java.awt.AWTException; import java.awt.Component;
--- a/test/javax/swing/plaf/basic/6866751/bug6866751.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/basic/6866751/bug6866751.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,11 +21,14 @@ * questions. */ -/* @test - @bug 6866751 - @summary J2SE_Swing_Reg: the caret disappears when moving to the end of the line. - @author Semyon Sadetsky - */ +/** + * @test + * @key headful + * @bug 6866751 + * @summary J2SE_Swing_Reg: the caret disappears when moving to the end of the line. + * @author Semyon Sadetsky + */ + import javax.swing.*; import java.awt.*; @@ -77,7 +80,7 @@ SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { - frame.dispose(); + if (frame != null) { frame.dispose(); } } }); }
--- a/test/javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /* * @test + * @key headful * @bug 8154069 * @summary Jaws reads wrong values from comboboxes when no element is selected * @run main Bug8154069 @@ -89,7 +90,7 @@ } } finally { SwingUtilities.invokeAndWait(() -> { - frame.dispose(); + if (frame != null) { frame.dispose(); } }); } }
--- a/test/javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,14 @@ * questions. */ -/* @test - @bug 4960629 7124238 - @summary Tests if font for html text on widgets in correct. - @author Denis Sharypov - @run main bug4960629 -*/ +/** + * @test + * @key headful + * @bug 4960629 7124238 + * @summary Tests if font for html text on widgets in correct. + * @author Denis Sharypov + * @run main bug4960629 + */ import java.awt.Font; import java.lang.reflect.InvocationTargetException; @@ -57,7 +59,7 @@ f.setVisible(true); test(); } finally { - f.dispose(); + if (f != null) { f.dispose(); } } }
--- a/test/javax/swing/plaf/basic/BasicLabelUI/bug7172652.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/basic/BasicLabelUI/bug7172652.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,17 @@ * questions. */ -/* @test - @bug 7172652 - @summary With JDK 1.7 text field does not obtain focus when using mnemonic Alt/Key combin - @author Semyon Sadetsky - @library /lib/testlibrary - @build jdk.testlibrary.OSInfo - @run main bug7172652 - */ +/** + * @test + * @key headful + * @bug 7172652 + * @summary With JDK 1.7 text field does not obtain focus when using mnemonic Alt/Key combin + * @author Semyon Sadetsky + * @requires (os.family == "windows") + * @library /lib/testlibrary + * @build jdk.testlibrary.OSInfo + * @run main bug7172652 + */ import javax.swing.*; import javax.swing.event.ChangeEvent;
--- a/test/javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,11 +21,13 @@ * questions. */ -/* @test - @bug 8134828 - @summary Scrollbar thumb disappears with Nimbus L&F - @author Semyon Sadetsky -*/ +/** + * @test + * @key headful + * @bug 8134828 + * @summary Scrollbar thumb disappears with Nimbus L&F + * @author Semyon Sadetsky + */ import javax.swing.*; import java.awt.*; @@ -76,7 +78,7 @@ SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { - frame.dispose(); + if (frame != null) { frame.dispose(); } } }); }
--- a/test/javax/swing/plaf/windows/6921687/bug6921687.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/windows/6921687/bug6921687.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 6921687 8079428 * @summary Mnemonic disappears after repeated attempts to open menu items using * mnemonics @@ -33,6 +34,7 @@ * @modules java.desktop/com.sun.java.swing.plaf.windows * @run main bug6921687 */ + import java.awt.Robot; import java.awt.event.KeyEvent; import javax.swing.JFrame; @@ -83,7 +85,7 @@ checkMnemonics(); System.out.println("ok"); } finally { - frame.dispose(); + if (frame != null) { frame.dispose(); } } }
--- a/test/javax/swing/plaf/windows/WindowsRootPaneUI/WrongAltProcessing/WrongAltProcessing.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/plaf/windows/WindowsRootPaneUI/WrongAltProcessing/WrongAltProcessing.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,12 +21,15 @@ * questions. */ -/* @test - @bug 8001633 8028271 8039888 - @summary Wrong alt processing during switching between windows - @author mikhail.cherkasov@oracle.com - @run main WrongAltProcessing -*/ +/** + * @test + * @key headful + * @bug 8001633 8028271 8039888 + * @summary Wrong alt processing during switching between windows + * @author mikhail.cherkasov@oracle.com + * @requires (os.family == "windows") + * @run main WrongAltProcessing + */ import javax.swing.*; import java.awt.*;
--- a/test/javax/swing/system/6799345/TestShutdown.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/system/6799345/TestShutdown.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,16 @@ * questions. */ -/* @test - @bug 6799345 - @summary Tests that no exceptions are thrown from TimerQueue and -SwingWorker on AppContext shutdown - @author art - @modules java.desktop/sun.awt - @run main TestShutdown -*/ +/** + * @test + * @bug 6799345 + * @key headful + * @summary Tests that no exceptions are thrown from TimerQueue and + * SwingWorker on AppContext shutdown + * @author art + * @modules java.desktop/sun.awt + * @run main TestShutdown + */ import java.awt.*; import java.awt.event.*;
--- a/test/javax/swing/text/FlowView/LayoutTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/text/FlowView/LayoutTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,15 @@ * questions. */ -/* @test - @bug 6452106 6606443 8161195 - @author Peter Zhelezniakov - @library ../../regtesthelpers - @build Test JRobot SwingTestHelper - @run main/timeout=300 LayoutTest -*/ +/** + * @test + * @key headful + * @bug 6452106 6606443 8161195 + * @author Peter Zhelezniakov + * @library ../../regtesthelpers + * @build Test JRobot SwingTestHelper + * @run main/timeout=300 LayoutTest + */ import javax.swing.text.*; import javax.swing.*;
--- a/test/javax/swing/text/GlyphPainter2/6427244/bug6427244.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/text/GlyphPainter2/6427244/bug6427244.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,16 @@ * */ -/* @test - @bug 6427244 8144240 8166003 8169879 - @summary Test that pressing HOME correctly moves caret in I18N document. - @author Sergey Groznyh - @library ../../../regtesthelpers - @build JRobot - @run main bug6427244 -*/ +/** + * @test + * @key headful + * @bug 6427244 8144240 8166003 8169879 + * @summary Test that pressing HOME correctly moves caret in I18N document. + * @author Sergey Groznyh + * @library ../../../regtesthelpers + * @build JRobot + * @run main bug6427244 + */ import java.awt.Container; import java.awt.Dimension;
--- a/test/javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,6 +30,7 @@ /** * @test + * @key headful * @bug 8142966 * @summary Wrong cursor position in text components on HiDPI display * @run main/othervm -Dsun.java2d.uiScale=2 SwingFontMetricsTest
--- a/test/javax/swing/text/View/8015853/bug8015853.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/text/View/8015853/bug8015853.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,8 +21,9 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 8015853 * @summary Tests the rendering of a large HTML document * @author Dmitry Markov
--- a/test/javax/swing/text/html/Test4783068.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/javax/swing/text/html/Test4783068.java Mon Aug 14 10:47:56 2017 -0700 @@ -21,11 +21,13 @@ * questions. */ -/* @test - @bug 4783068 - @summary Disabled components should render grayed-out HTML - @author Peter Zhelezniakov - @run main Test4783068 +/** + * @test + * @key headful + * @bug 4783068 + * @summary Disabled components should render grayed-out HTML + * @author Peter Zhelezniakov + * @run main Test4783068 */ import java.awt.*;
--- a/test/sun/awt/image/OffScreenImageSource/ImageConsumerUnregisterTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/sun/awt/image/OffScreenImageSource/ImageConsumerUnregisterTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,9 @@ * questions. */ -/* @test +/** + * @test + * @key headful * @bug 8160421 8161902 * @summary Test to check OffScreenImageSource handles case where * imageComplete(ImageConsumer.SINGLEFRAMEDONE) unregisters.
--- a/test/sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,16 @@ * questions. */ -/* +/** * @test + * @key headful * @bug 6668439 * @summary Verifies that no exceptions are thrown when frame is resized to 0x0 * @author Dmitri.Trembovetski@sun.com: area=Graphics * @run main/othervm IAEforEmptyFrameTest * @run main/othervm -Dsun.java2d.d3d=false IAEforEmptyFrameTest */ + import javax.swing.JFrame; public class IAEforEmptyFrameTest {
--- a/test/sun/java2d/xrender/HugeGradientTest.java Fri Aug 11 18:17:00 2017 +0530 +++ b/test/sun/java2d/xrender/HugeGradientTest.java Mon Aug 14 10:47:56 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,10 +27,12 @@ /** * @test + * @key headful * @bug 8162591 * @summary tests gradients with start/endpoints exceeding Short.MAX coordinates * @author ceisserer */ + public class HugeGradientTest extends Frame { public static volatile boolean success = false;