--- a/.hgtags Thu Mar 01 19:28:43 2018 +0100
+++ b/.hgtags Fri Mar 02 19:08:44 2018 +0100
@@ -473,3 +473,4 @@
03ae177c26b016353e5ea1cab6ffd051dfa086ca jdk-11+2
663f20fc51091bd7f95d18448850ba091207b7bd jdk-10+44
4f96cf952e71cb8a127334494faf28880c26181b jdk-10+45
+1fd4d6068f54561cfc67d54fc9ca84af7212c4f8 jdk-11+3
--- a/make/autoconf/flags.m4 Thu Mar 01 19:28:43 2018 +0100
+++ b/make/autoconf/flags.m4 Fri Mar 02 19:08:44 2018 +0100
@@ -117,7 +117,7 @@
# exposure to API changes in header files. Bumping this is likely to
# require code changes to build.
MACOSX_VERSION_MIN=10.7.0
- MACOSX_VERSION_MIN_NODOTS=1070
+ MACOSX_VERSION_MIN_NODOTS=${MACOSX_VERSION_MIN//\./}
AC_SUBST(MACOSX_VERSION_MIN)
@@ -140,7 +140,7 @@
],
[MACOSX_VERSION_MAX=]
)
- MACOSX_VERSION_MAX_NODOTS=`$ECHO $MACOSX_VERSION_MAX | $TR -d .`
+ MACOSX_VERSION_MAX_NODOTS=${MACOSX_VERSION_MAX//\./}
AC_SUBST(MACOSX_VERSION_MAX)
fi
--- a/make/lib/Awt2dLibraries.gmk Thu Mar 01 19:28:43 2018 +0100
+++ b/make/lib/Awt2dLibraries.gmk Fri Mar 02 19:08:44 2018 +0100
@@ -691,7 +691,7 @@
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
LIBS_linux := -lc, \
- LIBS_solaris := -lawt_headless -lc, \
+ LIBS_solaris := -lc, \
LIBS_aix := -lawt_headless,\
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
$(WIN_AWT_LIB), \
--- a/src/java.base/share/classes/java/lang/AbstractStringBuilder.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/AbstractStringBuilder.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -89,6 +89,29 @@
}
/**
+ * Compares the objects of two AbstractStringBuilder implementations lexicographically.
+ *
+ * @since 11
+ */
+ int compareTo(AbstractStringBuilder another) {
+ if (this == another) {
+ return 0;
+ }
+
+ byte val1[] = value;
+ byte val2[] = another.value;
+ int count1 = this.count;
+ int count2 = another.count;
+
+ if (coder == another.coder) {
+ return isLatin1() ? StringLatin1.compareTo(val1, val2, count1, count2)
+ : StringUTF16.compareTo(val1, val2, count1, count2);
+ }
+ return isLatin1() ? StringLatin1.compareToUTF16(val1, val2, count1, count2)
+ : StringUTF16.compareToLatin1(val1, val2, count1, count2);
+ }
+
+ /**
* Returns the length (character count).
*
* @return the length of the sequence of characters currently
--- a/src/java.base/share/classes/java/lang/CharSequence.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/CharSequence.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
package java.lang;
import java.util.NoSuchElementException;
+import java.util.Objects;
import java.util.PrimitiveIterator;
import java.util.Spliterator;
import java.util.Spliterators;
@@ -43,9 +44,9 @@
*
* <p> This interface does not refine the general contracts of the {@link
* java.lang.Object#equals(java.lang.Object) equals} and {@link
- * java.lang.Object#hashCode() hashCode} methods. The result of comparing two
- * objects that implement {@code CharSequence} is therefore, in general,
- * undefined. Each object may be implemented by a different class, and there
+ * java.lang.Object#hashCode() hashCode} methods. The result of testing two objects
+ * that implement {@code CharSequence} for equality is therefore, in general, undefined.
+ * Each object may be implemented by a different class, and there
* is no guarantee that each class will be capable of testing its instances
* for equality with those of the other. It is therefore inappropriate to use
* arbitrary {@code CharSequence} instances as elements in a set or as keys in
@@ -237,4 +238,54 @@
Spliterator.ORDERED,
false);
}
+
+ /**
+ * Compares two {@code CharSequence} instances lexicographically. Returns a
+ * negative value, zero, or a positive value if the first sequence is lexicographically
+ * less than, equal to, or greater than the second, respectively.
+ *
+ * <p>
+ * The lexicographical ordering of {@code CharSequence} is defined as follows.
+ * Consider a {@code CharSequence} <i>cs</i> of length <i>len</i> to be a
+ * sequence of char values, <i>cs[0]</i> to <i>cs[len-1]</i>. Suppose <i>k</i>
+ * is the lowest index at which the corresponding char values from each sequence
+ * differ. The lexicographic ordering of the sequences is determined by a numeric
+ * comparison of the char values <i>cs1[k]</i> with <i>cs2[k]</i>. If there is
+ * no such index <i>k</i>, the shorter sequence is considered lexicographically
+ * less than the other. If the sequences have the same length, the sequences are
+ * considered lexicographically equal.
+ *
+ *
+ * @param cs1 the first {@code CharSequence}
+ * @param cs2 the second {@code CharSequence}
+ *
+ * @return the value {@code 0} if the two {@code CharSequence} are equal;
+ * a negative integer if the first {@code CharSequence}
+ * is lexicographically less than the second; or a
+ * positive integer if the first {@code CharSequence} is
+ * lexicographically greater than the second.
+ *
+ * @since 11
+ */
+ @SuppressWarnings("unchecked")
+ public static int compare(CharSequence cs1, CharSequence cs2) {
+ if (Objects.requireNonNull(cs1) == Objects.requireNonNull(cs2)) {
+ return 0;
+ }
+
+ if (cs1.getClass() == cs2.getClass() && cs1 instanceof Comparable) {
+ return ((Comparable<Object>) cs1).compareTo(cs2);
+ }
+
+ for (int i = 0, len = Math.min(cs1.length(), cs2.length()); i < len; i++) {
+ char a = cs1.charAt(i);
+ char b = cs2.charAt(i);
+ if (a != b) {
+ return a - b;
+ }
+ }
+
+ return cs1.length() - cs2.length();
+ }
+
}
--- a/src/java.base/share/classes/java/lang/String.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/String.java Fri Mar 02 19:08:44 2018 +0100
@@ -2963,6 +2963,56 @@
*/
public native String intern();
+ /**
+ * Returns a string whose value is the concatenation of this
+ * string repeated {@code count} times.
+ * <p>
+ * If this string is empty or count is zero then the empty
+ * string is returned.
+ *
+ * @param count number of times to repeat
+ *
+ * @return A string composed of this string repeated
+ * {@code count} times or the empty string if this
+ * string is empty or count is zero
+ *
+ * @throws IllegalArgumentException if the {@code count} is
+ * negative.
+ *
+ * @since 11
+ */
+ public String repeat(int count) {
+ if (count < 0) {
+ throw new IllegalArgumentException("count is negative: " + count);
+ }
+ if (count == 1) {
+ return this;
+ }
+ final int len = value.length;
+ if (len == 0 || count == 0) {
+ return "";
+ }
+ if (len == 1) {
+ final byte[] single = new byte[count];
+ Arrays.fill(single, value[0]);
+ return new String(single, coder);
+ }
+ if (Integer.MAX_VALUE / count < len) {
+ throw new OutOfMemoryError("Repeating " + len + " bytes String " + count +
+ " times will produce a String exceeding maximum size.");
+ }
+ final int limit = len * count;
+ final byte[] multiple = new byte[limit];
+ System.arraycopy(value, 0, multiple, 0, len);
+ int copied = len;
+ for (int next = copied << 1; next < limit && 0 < next; next = next << 1) {
+ System.arraycopy(multiple, 0, multiple, copied, copied);
+ copied = next;
+ }
+ System.arraycopy(multiple, 0, multiple, copied, limit - copied);
+ return new String(multiple, coder);
+ }
+
////////////////////////////////////////////////////////////////
/**
--- a/src/java.base/share/classes/java/lang/StringBuffer.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/StringBuffer.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -90,6 +90,14 @@
* this one, as it supports all of the same operations but it is faster, as
* it performs no synchronization.
*
+ * @apiNote
+ * {@code StringBuffer} implements {@code Comparable} but does not override
+ * {@link Object#equals equals}. Thus, the natural ordering of {@code StringBuffer}
+ * is inconsistent with equals. Care should be exercised if {@code StringBuffer}
+ * objects are used as keys in a {@code SortedMap} or elements in a {@code SortedSet}.
+ * See {@link Comparable}, {@link java.util.SortedMap SortedMap}, or
+ * {@link java.util.SortedSet SortedSet} for more information.
+ *
* @author Arthur van Hoff
* @see java.lang.StringBuilder
* @see java.lang.String
@@ -97,7 +105,7 @@
*/
public final class StringBuffer
extends AbstractStringBuilder
- implements java.io.Serializable, CharSequence
+ implements java.io.Serializable, Comparable<StringBuffer>, CharSequence
{
/**
@@ -162,6 +170,35 @@
append(seq);
}
+ /**
+ * Compares two {@code StringBuffer} instances lexicographically. This method
+ * follows the same rules for lexicographical comparison as defined in the
+ * {@linkplain java.lang.CharSequence#compare(java.lang.CharSequence,
+ * java.lang.CharSequence) CharSequence.compare(this, another)} method.
+ *
+ * <p>
+ * For finer-grained, locale-sensitive String comparison, refer to
+ * {@link java.text.Collator}.
+ *
+ * @implNote
+ * This method synchronizes on {@code this}, the current object, but not
+ * {@code StringBuffer another} with which {@code this StringBuffer} is compared.
+ *
+ * @param another the {@code StringBuffer} to be compared with
+ *
+ * @return the value {@code 0} if this {@code StringBuffer} contains the same
+ * character sequence as that of the argument {@code StringBuffer}; a negative integer
+ * if this {@code StringBuffer} is lexicographically less than the
+ * {@code StringBuffer} argument; or a positive integer if this {@code StringBuffer}
+ * is lexicographically greater than the {@code StringBuffer} argument.
+ *
+ * @since 11
+ */
+ @Override
+ public synchronized int compareTo(StringBuffer another) {
+ return super.compareTo(another);
+ }
+
@Override
public synchronized int length() {
return count;
--- a/src/java.base/share/classes/java/lang/StringBuilder.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/StringBuilder.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,14 @@
* or method in this class will cause a {@link NullPointerException} to be
* thrown.
*
+ * @apiNote
+ * {@code StringBuilder} implements {@code Comparable} but does not override
+ * {@link Object#equals equals}. Thus, the natural ordering of {@code StringBuilder}
+ * is inconsistent with equals. Care should be exercised if {@code StringBuilder}
+ * objects are used as keys in a {@code SortedMap} or elements in a {@code SortedSet}.
+ * See {@link Comparable}, {@link java.util.SortedMap SortedMap}, or
+ * {@link java.util.SortedSet SortedSet} for more information.
+ *
* @author Michael McCloskey
* @see java.lang.StringBuffer
* @see java.lang.String
@@ -76,7 +84,7 @@
*/
public final class StringBuilder
extends AbstractStringBuilder
- implements java.io.Serializable, CharSequence
+ implements java.io.Serializable, Comparable<StringBuilder>, CharSequence
{
/** use serialVersionUID for interoperability */
@@ -130,6 +138,31 @@
append(seq);
}
+ /**
+ * Compares two {@code StringBuilder} instances lexicographically. This method
+ * follows the same rules for lexicographical comparison as defined in the
+ * {@linkplain java.lang.CharSequence#compare(java.lang.CharSequence,
+ * java.lang.CharSequence) CharSequence.compare(this, another)} method.
+ *
+ * <p>
+ * For finer-grained, locale-sensitive String comparison, refer to
+ * {@link java.text.Collator}.
+ *
+ * @param another the {@code StringBuilder} to be compared with
+ *
+ * @return the value {@code 0} if this {@code StringBuilder} contains the same
+ * character sequence as that of the argument {@code StringBuilder}; a negative integer
+ * if this {@code StringBuilder} is lexicographically less than the
+ * {@code StringBuilder} argument; or a positive integer if this {@code StringBuilder}
+ * is lexicographically greater than the {@code StringBuilder} argument.
+ *
+ * @since 11
+ */
+ @Override
+ public int compareTo(StringBuilder another) {
+ return super.compareTo(another);
+ }
+
@Override
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
--- a/src/java.base/share/classes/java/lang/StringLatin1.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/StringLatin1.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -103,6 +103,10 @@
public static int compareTo(byte[] value, byte[] other) {
int len1 = value.length;
int len2 = other.length;
+ return compareTo(value, other, len1, len2);
+ }
+
+ public static int compareTo(byte[] value, byte[] other, int len1, int len2) {
int lim = Math.min(len1, len2);
for (int k = 0; k < lim; k++) {
if (value[k] != other[k]) {
@@ -116,6 +120,20 @@
public static int compareToUTF16(byte[] value, byte[] other) {
int len1 = length(value);
int len2 = StringUTF16.length(other);
+ return compareToUTF16Values(value, other, len1, len2);
+ }
+
+ /*
+ * Checks the boundary and then compares the byte arrays.
+ */
+ public static int compareToUTF16(byte[] value, byte[] other, int len1, int len2) {
+ checkOffset(len1, length(value));
+ checkOffset(len2, StringUTF16.length(other));
+
+ return compareToUTF16Values(value, other, len1, len2);
+ }
+
+ private static int compareToUTF16Values(byte[] value, byte[] other, int len1, int len2) {
int lim = Math.min(len1, len2);
for (int k = 0; k < lim; k++) {
char c1 = getChar(value, k);
--- a/src/java.base/share/classes/java/lang/StringUTF16.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/StringUTF16.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -273,6 +273,20 @@
public static int compareTo(byte[] value, byte[] other) {
int len1 = length(value);
int len2 = length(other);
+ return compareValues(value, other, len1, len2);
+ }
+
+ /*
+ * Checks the boundary and then compares the byte arrays.
+ */
+ public static int compareTo(byte[] value, byte[] other, int len1, int len2) {
+ checkOffset(len1, value);
+ checkOffset(len2, other);
+
+ return compareValues(value, other, len1, len2);
+ }
+
+ private static int compareValues(byte[] value, byte[] other, int len1, int len2) {
int lim = Math.min(len1, len2);
for (int k = 0; k < lim; k++) {
char c1 = getChar(value, k);
@@ -289,6 +303,10 @@
return -StringLatin1.compareToUTF16(other, value);
}
+ public static int compareToLatin1(byte[] value, byte[] other, int len1, int len2) {
+ return -StringLatin1.compareToUTF16(other, value, len2, len1);
+ }
+
public static int compareToCI(byte[] value, byte[] other) {
int len1 = length(value);
int len2 = length(other);
--- a/src/java.base/share/classes/java/lang/Thread.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/Thread.java Fri Mar 02 19:08:44 2018 +0100
@@ -1007,22 +1007,22 @@
* @spec JSR-51
*/
public void interrupt() {
- Thread me = Thread.currentThread();
- if (this != me)
+ if (this != Thread.currentThread()) {
checkAccess();
+ // thread may be blocked in an I/O operation
+ synchronized (blockerLock) {
+ Interruptible b = blocker;
+ if (b != null) {
+ interrupt0(); // set interrupt status
+ b.interrupt(this);
+ return;
+ }
+ }
+ }
+
// set interrupt status
interrupt0();
-
- // thread may be blocked in an I/O operation
- if (this != me && blocker != null) {
- synchronized (blockerLock) {
- Interruptible b = blocker;
- if (b != null) {
- b.interrupt(this);
- }
- }
- }
}
/**
--- a/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java Fri Mar 02 19:08:44 2018 +0100
@@ -93,6 +93,10 @@
private ClassWriter cw;
private MethodVisitor mv;
+ /** Single element internal class name lookup cache. */
+ private Class<?> lastClass;
+ private String lastInternalName;
+
private static final MemberName.Factory MEMBERNAME_FACTORY = MemberName.getFactory();
private static final Class<?> HOST_CLASS = LambdaForm.class;
@@ -602,13 +606,18 @@
mv.visitInsn(opcode);
}
- private static String getInternalName(Class<?> c) {
+ private String getInternalName(Class<?> c) {
if (c == Object.class) return OBJ;
else if (c == Object[].class) return OBJARY;
else if (c == Class.class) return CLS;
else if (c == MethodHandle.class) return MH;
assert(VerifyAccess.isTypeVisible(c, Object.class)) : c.getName();
- return c.getName().replace('.', '/');
+
+ if (c == lastClass) {
+ return lastInternalName;
+ }
+ lastClass = c;
+ return lastInternalName = c.getName().replace('.', '/');
}
private static MemberName resolveFrom(String name, MethodType type, Class<?> holder) {
--- a/src/java.base/share/classes/java/net/URLClassLoader.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/net/URLClassLoader.java Fri Mar 02 19:08:44 2018 +0100
@@ -105,7 +105,8 @@
* @exception SecurityException if a security manager exists and its
* {@code checkCreateClassLoader} method doesn't allow
* creation of a class loader.
- * @exception NullPointerException if {@code urls} is {@code null}.
+ * @exception NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
* @see SecurityManager#checkCreateClassLoader
*/
public URLClassLoader(URL[] urls, ClassLoader parent) {
@@ -149,7 +150,8 @@
* @exception SecurityException if a security manager exists and its
* {@code checkCreateClassLoader} method doesn't allow
* creation of a class loader.
- * @exception NullPointerException if {@code urls} is {@code null}.
+ * @exception NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
* @see SecurityManager#checkCreateClassLoader
*/
public URLClassLoader(URL[] urls) {
@@ -192,7 +194,8 @@
* @exception SecurityException if a security manager exists and its
* {@code checkCreateClassLoader} method doesn't allow
* creation of a class loader.
- * @exception NullPointerException if {@code urls} is {@code null}.
+ * @exception NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
* @see SecurityManager#checkCreateClassLoader
*/
public URLClassLoader(URL[] urls, ClassLoader parent,
@@ -221,7 +224,8 @@
* @param parent the parent class loader for delegation
*
* @throws IllegalArgumentException if the given name is empty.
- * @throws NullPointerException if {@code urls} is {@code null}.
+ * @throws NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
*
* @throws SecurityException if a security manager exists and its
* {@link SecurityManager#checkCreateClassLoader()} method doesn't
@@ -256,7 +260,8 @@
* @param factory the URLStreamHandlerFactory to use when creating URLs
*
* @throws IllegalArgumentException if the given name is empty.
- * @throws NullPointerException if {@code urls} is {@code null}.
+ * @throws NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
*
* @throws SecurityException if a security manager exists and its
* {@code checkCreateClassLoader} method doesn't allow
@@ -805,7 +810,8 @@
*
* @param urls the URLs to search for classes and resources
* @param parent the parent class loader for delegation
- * @exception NullPointerException if {@code urls} is {@code null}.
+ * @exception NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
* @return the resulting class loader
*/
public static URLClassLoader newInstance(final URL[] urls,
@@ -831,7 +837,8 @@
* loading the class.
*
* @param urls the URLs to search for classes and resources
- * @exception NullPointerException if {@code urls} is {@code null}.
+ * @exception NullPointerException if {@code urls} or any of its
+ * elements is {@code null}.
* @return the resulting class loader
*/
public static URLClassLoader newInstance(final URL[] urls) {
--- a/src/java.base/share/classes/java/nio/charset/CoderResult.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/nio/charset/CoderResult.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,9 +27,8 @@
import java.lang.ref.WeakReference;
import java.nio.*;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.Map;
-import java.util.HashMap;
-
/**
* A description of the result state of a coder.
@@ -197,14 +196,12 @@
protected abstract CoderResult create(int len);
- private synchronized CoderResult get(int len) {
- if (len <= 0)
- throw new IllegalArgumentException("Non-positive length");
+ private CoderResult get(int len) {
Integer k = len;
WeakReference<CoderResult> w;
CoderResult e = null;
if (cache == null) {
- cache = new HashMap<>();
+ cache = new ConcurrentHashMap<>();
} else if ((w = cache.get(k)) != null) {
e = w.get();
}
@@ -214,15 +211,21 @@
}
return e;
}
-
}
- private static Cache malformedCache
+ private static final Cache malformedCache
= new Cache() {
public CoderResult create(int len) {
return new CoderResult(CR_MALFORMED, len);
}};
+ private static final CoderResult[] malformed4 = new CoderResult[] {
+ new CoderResult(CR_MALFORMED, 1),
+ new CoderResult(CR_MALFORMED, 2),
+ new CoderResult(CR_MALFORMED, 3),
+ new CoderResult(CR_MALFORMED, 4),
+ };
+
/**
* Static factory method that returns the unique object describing a
* malformed-input error of the given length.
@@ -233,15 +236,26 @@
* @return The requested coder-result object
*/
public static CoderResult malformedForLength(int length) {
+ if (length <= 0)
+ throw new IllegalArgumentException("Non-positive length");
+ if (length <= 4)
+ return malformed4[length - 1];
return malformedCache.get(length);
}
- private static Cache unmappableCache
+ private static final Cache unmappableCache
= new Cache() {
public CoderResult create(int len) {
return new CoderResult(CR_UNMAPPABLE, len);
}};
+ private static final CoderResult[] unmappable4 = new CoderResult[] {
+ new CoderResult(CR_UNMAPPABLE, 1),
+ new CoderResult(CR_UNMAPPABLE, 2),
+ new CoderResult(CR_UNMAPPABLE, 3),
+ new CoderResult(CR_UNMAPPABLE, 4),
+ };
+
/**
* Static factory method that returns the unique result object describing
* an unmappable-character error of the given length.
@@ -252,6 +266,10 @@
* @return The requested coder-result object
*/
public static CoderResult unmappableForLength(int length) {
+ if (length <= 0)
+ throw new IllegalArgumentException("Non-positive length");
+ if (length <= 4)
+ return unmappable4[length - 1];
return unmappableCache.get(length);
}
--- a/src/java.base/share/classes/java/util/jar/Attributes.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/util/jar/Attributes.java Fri Mar 02 19:08:44 2018 +0100
@@ -40,7 +40,9 @@
* The Attributes class maps Manifest attribute names to associated string
* values. Valid attribute names are case-insensitive, are restricted to
* the ASCII characters in the set [0-9a-zA-Z_-], and cannot exceed 70
- * characters in length. Attribute values can contain any characters and
+ * characters in length. There must be a colon and a SPACE after the name;
+ * the combined length will not exceed 72 characters.
+ * Attribute values can contain any characters and
* will be UTF8-encoded when written to the output stream. See the
* <a href="{@docRoot}/../specs/jar/jar.html">JAR File Specification</a>
* for more information about valid attribute names and values.
@@ -310,8 +312,8 @@
}
buffer.append(value);
+ Manifest.make72Safe(buffer);
buffer.append("\r\n");
- Manifest.make72Safe(buffer);
os.writeBytes(buffer.toString());
}
os.writeBytes("\r\n");
@@ -355,8 +357,8 @@
}
buffer.append(value);
+ Manifest.make72Safe(buffer);
buffer.append("\r\n");
- Manifest.make72Safe(buffer);
out.writeBytes(buffer.toString());
}
}
--- a/src/java.base/share/classes/java/util/jar/Manifest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/java/util/jar/Manifest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -157,8 +157,8 @@
value = new String(vb, 0, 0, vb.length);
}
buffer.append(value);
+ make72Safe(buffer);
buffer.append("\r\n");
- make72Safe(buffer);
dos.writeBytes(buffer.toString());
e.getValue().write(dos);
}
@@ -170,13 +170,11 @@
*/
static void make72Safe(StringBuffer line) {
int length = line.length();
- if (length > 72) {
- int index = 70;
- while (index < length - 2) {
- line.insert(index, "\r\n ");
- index += 72;
- length += 3;
- }
+ int index = 72;
+ while (index < length) {
+ line.insert(index, "\r\n ");
+ index += 74; // + line width + line break ("\r\n")
+ length += 3; // + line break ("\r\n") and space
}
return;
}
--- a/src/java.base/share/classes/sun/invoke/util/BytecodeDescriptor.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.base/share/classes/sun/invoke/util/BytecodeDescriptor.java Fri Mar 02 19:08:44 2018 +0100
@@ -107,6 +107,11 @@
}
public static String unparse(Class<?> type) {
+ if (type == Object.class) {
+ return "Ljava/lang/Object;";
+ } else if (type == int.class) {
+ return "I";
+ }
StringBuilder sb = new StringBuilder();
unparseSig(type, sb);
return sb.toString();
@@ -148,6 +153,8 @@
char c = Wrapper.forBasicType(t).basicTypeChar();
if (c != 'L') {
sb.append(c);
+ } else if (t == Object.class) {
+ sb.append("Ljava/lang/Object;");
} else {
boolean lsemi = (!t.isArray());
if (lsemi) sb.append('L');
--- a/src/java.desktop/macosx/classes/com/apple/eawt/_AppMenuBarHandler.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/macosx/classes/com/apple/eawt/_AppMenuBarHandler.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,6 +52,8 @@
return instance;
}
+ private static ScreenMenuBar defaultMenuBar;
+
// callback from the native delegate -init function
private static void initMenuStates(final boolean aboutMenuItemVisible,
final boolean aboutMenuItemEnabled,
@@ -76,6 +78,9 @@
void setDefaultMenuBar(final JMenuBar menuBar) {
installDefaultMenuBar(menuBar);
+ if (menuBar == null) {
+ return;
+ }
// scan the current frames, and see if any are foreground
final Frame[] frames = Frame.getFrames();
@@ -100,8 +105,13 @@
}
static void installDefaultMenuBar(final JMenuBar menuBar) {
+
if (menuBar == null) {
// intentionally clearing the default menu
+ if (defaultMenuBar != null) {
+ defaultMenuBar.removeNotify();
+ defaultMenuBar = null;
+ }
nativeSetDefaultMenuBar(0);
return;
}
@@ -124,7 +134,14 @@
throw new IllegalStateException("Application.setDefaultMenuBar() only works if apple.laf.useScreenMenuBar=true");
}
- screenMenuBar.addNotify();
+ if (screenMenuBar != defaultMenuBar) {
+ if (defaultMenuBar != null) {
+ defaultMenuBar.removeNotify();
+ }
+ defaultMenuBar = screenMenuBar;
+ screenMenuBar.addNotify();
+ }
+
final Object peer = AWTAccessor.getMenuComponentAccessor().getPeer(screenMenuBar);
if (!(peer instanceof CMenuBar)) {
// such a thing should not be possible
--- a/src/java.desktop/share/classes/javax/swing/JList.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JList.java Fri Mar 02 19:08:44 2018 +0100
@@ -2359,6 +2359,7 @@
/**
* Selects the specified object from the list.
+ * If the object passed is {@code null}, the selection is cleared.
*
* @param anObject the object to select
* @param shouldScroll {@code true} if the list should scroll to display
@@ -2366,7 +2367,7 @@
*/
public void setSelectedValue(Object anObject,boolean shouldScroll) {
if(anObject == null)
- setSelectedIndex(-1);
+ clearSelection();
else if(!anObject.equals(getSelectedValue())) {
int i,c;
ListModel<E> dm = getModel();
--- a/src/java.desktop/share/classes/javax/swing/RepaintManager.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/RepaintManager.java Fri Mar 02 19:08:44 2018 +0100
@@ -110,6 +110,8 @@
private Dimension doubleBufferMaxSize;
+ private boolean isCustomMaxBufferSizeSet = false;
+
// Support for both the standard and volatile offscreen buffers exists to
// provide backwards compatibility for the [rare] programs which may be
// calling getOffScreenBuffer() and not expecting to get a VolatileImage.
@@ -335,7 +337,13 @@
}
private void displayChanged() {
- clearImages();
+ if (isCustomMaxBufferSizeSet) {
+ clearImages();
+ } else {
+ // Reset buffer maximum size to get valid size from updated graphics
+ // environment in getDoubleBufferMaximumSize()
+ setDoubleBufferMaximumSize(null);
+ }
}
/**
@@ -1156,8 +1164,10 @@
public void setDoubleBufferMaximumSize(Dimension d) {
doubleBufferMaxSize = d;
if (doubleBufferMaxSize == null) {
+ isCustomMaxBufferSizeSet = false;
clearImages();
} else {
+ isCustomMaxBufferSizeSet = true;
clearImages(d.width, d.height);
}
}
--- a/src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -149,7 +149,7 @@
XRColor c = new XRColor();
for (int i = 0; i < pixels.length; i++) {
- c.setColorValues(pixels[i], true);
+ c.setColorValues(pixels[i]);
renderColors[i * 4 + 0] = (short) c.alpha;
renderColors[i * 4 + 1] = (short) c.red;
renderColors[i * 4 + 2] = (short) c.green;
--- a/src/java.desktop/unix/classes/sun/java2d/xr/XRColor.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/unix/classes/sun/java2d/xr/XRColor.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,7 +73,7 @@
XRColor c = new XRColor();
for (int i = 0; i < pixels.length; i++) {
- c.setColorValues(pixels[i], true);
+ c.setColorValues(pixels[i]);
colorValues[i * 4 + 0] = c.alpha;
colorValues[i * 4 + 1] = c.red;
colorValues[i * 4 + 2] = c.green;
@@ -83,7 +83,7 @@
return colorValues;
}
- public void setColorValues(int pixel, boolean pre) {
+ public void setColorValues(int pixel) {
long pix = XRUtils.intToULong(pixel);
alpha = (int) (((pix & 0xFF000000) >> 16) + 255);
red = (int) (((pix & 0x00FF0000) >> 8) + 255);
@@ -93,13 +93,6 @@
if (alpha == 255) {
alpha = 0;
}
-
- if (!pre) {
- double alphaMult = XRUtils.XFixedToDouble(alpha);
- this.red = (int) (red * alphaMult);
- this.green = (int) (green * alphaMult);
- this.blue = (int) (blue * alphaMult);
- }
}
public static int byteToXRColorValue(int byteValue) {
--- a/src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -131,7 +131,7 @@
}
public void setForeground(int pixel) {
- solidColor.setColorValues(pixel, true);
+ solidColor.setColorValues(pixel);
}
public void setGradientPaint(XRSurfaceData gradient) {
--- a/src/java.desktop/unix/classes/sun/java2d/xr/XRSolidSrcPict.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/unix/classes/sun/java2d/xr/XRSolidSrcPict.java Fri Mar 02 19:08:44 2018 +0100
@@ -47,7 +47,7 @@
public XRSurfaceData prepareSrcPict(int pixelVal) {
if(pixelVal != curPixVal) {
- xrCol.setColorValues(pixelVal, true);
+ xrCol.setColorValues(pixelVal);
con.renderRectangle(srcPict.picture, XRUtils.PictOpSrc, xrCol, 0, 0, 1, 1);
this.curPixVal = pixelVal;
}
--- a/src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c Thu Mar 01 19:28:43 2018 +0100
+++ b/src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c Fri Mar 02 19:08:44 2018 +0100
@@ -394,77 +394,50 @@
XRectangle bbox; /* bounding box of grabbed area */
list_ptr regions;/* list of regions to read from */
{
- image_region_type *reg;
- int32_t dst_x, dst_y; /* where in pixmap to write (UL) */
- int32_t diff;
-
- XImage *reg_image,*ximage ;
- int32_t srcRect_x,srcRect_y,srcRect_width,srcRect_height ;
- int32_t rem ;
- int32_t bytes_per_line;
- int32_t bitmap_unit;
-
- bitmap_unit = sizeof (long);
- if (format == ZPixmap)
- bytes_per_line = width*depth/8;
- else
- bytes_per_line = width/8;
-
-
- /* Find out how many more bytes are required for padding so that
- ** bytes per scan line will be multiples of bitmap_unit bits */
- if (format == ZPixmap) {
- rem = (bytes_per_line*8)%bitmap_unit;
- if (rem)
- bytes_per_line += (rem/8 + 1);
- }
+ XImage *ximage ;
+ image_region_type* reg;
+ int32_t rect;
ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
(uint32_t)width,(uint32_t)height,8,0);
- bytes_per_line = ximage->bytes_per_line;
-
- if (format == ZPixmap)
- ximage->data = malloc(height*bytes_per_line);
- else
- ximage->data = malloc(height*bytes_per_line*depth);
-
+ ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 : depth), sizeof(char));
ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
for (reg = (image_region_type *) first_in_list( regions); reg;
reg = (image_region_type *) next_in_list( regions))
{
- int32_t rect;
- struct my_XRegion *vis_reg;
- vis_reg = (struct my_XRegion *)(reg->visible_region);
- for (rect = 0;
- rect < vis_reg->numRects;
- rect++)
+ struct my_XRegion *vis_reg = (struct my_XRegion *)(reg->visible_region);
+ for (rect = 0; rect < vis_reg->numRects; rect++)
{
- /** ------------------------------------------------------------------------
- Intersect bbox with visible part of region giving src rect & output
- location. Width is the min right side minus the max left side.
- Similar for height. Offset src rect so x,y are relative to
- origin of win, not the root-relative visible rect of win.
- ------------------------------------------------------------------------ **/
- srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x)
- - MAX( vis_reg->rects[rect].x1, bbox.x);
+ /** ------------------------------------------------------------------------
+ Intersect bbox with visible part of region giving src rect & output
+ location. Width is the min right side minus the max left side.
+ Similar for height. Offset src rect so x,y are relative to
+ origin of win, not the root-relative visible rect of win.
+ ------------------------------------------------------------------------ **/
+ int32_t srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x)
+ - MAX( vis_reg->rects[rect].x1, bbox.x);
+
+ int32_t srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y)
+ - MAX( vis_reg->rects[rect].y1, bbox.y);
- srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y)
- - MAX( vis_reg->rects[rect].y1, bbox.y);
+ int32_t diff = bbox.x - vis_reg->rects[rect].x1;
+ int32_t srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border);
+ int32_t dst_x = MAX( 0, -diff) ;
- diff = bbox.x - vis_reg->rects[rect].x1;
- srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border);
- dst_x = MAX( 0, -diff) ;
- diff = bbox.y - vis_reg->rects[rect].y1;
- srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border);
- dst_y = MAX( 0, -diff) ;
- reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
- (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
- TransferImage(disp,reg_image,srcRect_width,
- srcRect_height,reg,ximage,dst_x,dst_y) ;
- XDestroyImage(reg_image);
- }
+ diff = bbox.y - vis_reg->rects[rect].y1;
+ int32_t srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border);
+ int32_t dst_y = MAX( 0, -diff) ;
+ XImage* reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
+ (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
+
+ if (reg_image) {
+ TransferImage(disp,reg_image,srcRect_width,
+ srcRect_height,reg,ximage,dst_x,dst_y) ;
+ XDestroyImage(reg_image);
+ }
+ }
}
return ximage ;
}
--- a/src/jdk.jshell/share/classes/jdk/jshell/TaskFactory.java Thu Mar 01 19:28:43 2018 +0100
+++ b/src/jdk.jshell/share/classes/jdk/jshell/TaskFactory.java Fri Mar 02 19:08:44 2018 +0100
@@ -311,15 +311,18 @@
return fm.createSourceFileObject(w, w.classFullName(), w.wrapped());
}
+ /**
+ * Get the source information from the wrap. If this is external, or
+ * otherwise does not have wrap info, just use source code.
+ * @param d the Diagnostic from the compiler
+ * @return the corresponding Diag
+ */
@Override
public Diag diag(Diagnostic<? extends JavaFileObject> d) {
- SourceMemoryJavaFileObject smjfo = (SourceMemoryJavaFileObject) d.getSource();
- if (smjfo == null) {
- // Handle failure that doesn't preserve mapping
- return new StringSourceHandler().diag(d);
- }
- OuterWrap w = (OuterWrap) smjfo.getOrigin();
- return w.wrapDiag(d);
+ JavaFileObject jfo = d.getSource();
+ return jfo instanceof SourceMemoryJavaFileObject
+ ? ((OuterWrap) ((SourceMemoryJavaFileObject) jfo).getOrigin()).wrapDiag(d)
+ : new StringSourceHandler().diag(d);
}
}
--- a/test/jdk/ProblemList.txt Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/ProblemList.txt Fri Mar 02 19:08:44 2018 +0100
@@ -111,8 +111,10 @@
# jdk_awt
+java/awt/BasicStroke/DashScaleMinWidth.java 8198411 windows-all
+java/awt/BasicStroke/DashZeroWidth.java 8198411 windows-all
java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html 8168389 windows-all,macosx-all
-java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8168408 windows-all
+java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8168408 windows-all,macosx-all
java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java 8081489 generic-all
java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all
java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java 6848406 generic-all
@@ -120,28 +122,62 @@
java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all
java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java 8160558 windows-all
+java/awt/FileDialog/8003399/bug8003399.java 8198334 windows-all
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java 8060176 windows-all,macosx-all
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java 8060176 windows-all,macosx-all
java/awt/dnd/BadSerializaionTest/BadSerializationTest.java 8039082 generic-all
-java/awt/Focus/ChoiceFocus/ChoiceFocus.java 8169103 windows-all
+java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java 8164464 linux-all,macosx-all
+java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html 8171510 macosx-all
+java/awt/dnd/7171812/bug7171812.java 8041447 macosx-all
+java/awt/Focus/ChoiceFocus/ChoiceFocus.java 8169103 windows-all,macosx-all
+java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java 8198618 macosx-all
+java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java 6986252 macosx-all
+java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java 8198619 macosx-all
+java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java 8198621 macosx-all
+java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.java 8194753 linux-all,macosx-all
+java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java 7152980 macosx-all
+java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java 8028701 macosx-all
+java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java 8159599 macosx-all
+java/awt/Focus/TypeAhead/TestFocusFreeze.java 8198622 macosx-all
+java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java 8169096 macosx-all
java/awt/event/KeyEvent/CorrectTime/CorrectTime.java 6626492 generic-all
+java/awt/EventQueue/6980209/bug6980209.java 8198615 macosx-all
java/awt/Frame/MaximizedToUnmaximized/MaximizedToUnmaximized.java 8129569 generic-all
+java/awt/Frame/ExceptionOnSetExtendedStateTest/ExceptionOnSetExtendedStateTest.java 8198237 macosx-all
+java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java 8144030 macosx-all
+java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java 7158623 macosx-all
+java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150 macosx-all
java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java 8168646 generic-all
+java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java 8198623 macosx-all
+java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java 8198623 macosx-all
+java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html 8198624 macosx-all
+java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html 8198626 macosx-all
+java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java 8049405 macosx-all
java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java 8048171 generic-all
-java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java 8159451 linux-all,windows-all
+java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java 8159451 linux-all,windows-all,macosx-all
java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java 6986109 windows-all
java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java 6986109 windows-all
-java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java 8194765 windows-all
+java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java 8194765 windows-all,macosx-all
java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java 8049405 generic-all
+java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java 8049405 macosx-all
+java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java 8049405 macosx-all
+java/awt/Mixing/NonOpaqueInternalFrame.java 7124549 macosx-all
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 6829264 generic-all
java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java 8080982 generic-all
+java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java 8079268 linux-all
java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java 6829250 windows-all
+java/awt/Toolkit/RealSync/Test.java 6849383 macosx-all
java/awt/LightweightComponent/LightweightEventTest/LightweightEventTest.java 8159252 windows-all
java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java 6990210 generic-all
java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html 4931413 windows-all
java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java 7019055 windows-all
-java/awt/Focus/8013611/JDK8013611.java 8175366 windows-all
-java/awt/Focus/6981400/Test1.java 8029675 windows-all
+java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java 8198335 windows-all
+java/awt/Focus/8013611/JDK8013611.java 8175366 windows-all,macosx-all
+java/awt/Focus/6378278/InputVerifierTest.java 8198616 macosx-all
+java/awt/Focus/6382144/EndlessLoopTest.java 8198617 macosx-all
+java/awt/Focus/6981400/Test1.java 8029675 windows-all,macosx-all
+java/awt/Focus/8073453/AWTFocusTransitionTest.java 8136517 macosx-all
+java/awt/Focus/8073453/SwingFocusTransitionTest.java 8136517 macosx-all
java/awt/Focus/6981400/Test3.java 8173264 generic-all
java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java 8169476 windows-all
java/awt/event/KeyEvent/KeyChar/KeyCharTest.java 8169474 windows-all
@@ -152,8 +188,8 @@
java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html 8194947 generic-all
java/awt/dnd/ImageTransferTest/ImageTransferTest.java 8176556 generic-all
-java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 7054585 generic-all
java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java 8196006 windows-all
+java/awt/Frame/FramesGC/FramesGC.java 8079069 macosx-all
java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java 8047218 generic-all
java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java 8000171 windows-all
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java 8196017 windows-all
@@ -161,7 +197,7 @@
java/awt/TrayIcon/ActionCommand/ActionCommand.java 8150540 windows-all
java/awt/TrayIcon/ActionEventMask/ActionEventMask.java 8150540 windows-all
java/awt/TrayIcon/ActionEventTest/ActionEventTest.java 8150540 windows-all
-java/awt/TrayIcon/ModalityTest/ModalityTest.java 8150540 windows-all
+java/awt/TrayIcon/ModalityTest/ModalityTest.java 8150540 windows-all,macosx-all
java/awt/TrayIcon/MouseEventMask/MouseEventMaskTest.java 8150540 windows-all
java/awt/TrayIcon/MouseEventMask/MouseEventMovedTest.java 8150540 windows-all
java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java 8150540 windows-all
@@ -169,102 +205,275 @@
java/awt/TrayIcon/TrayIconEventModifiers/TrayIconEventModifiersTest.java 8150540 windows-all
java/awt/TrayIcon/TrayIconEvents/TrayIconEventsTest.java 8150540 windows-all
java/awt/TrayIcon/TrayIconMouseTest/TrayIconMouseTest.java 8150540 windows-all
-java/awt/TrayIcon/TrayIconPopup/TrayIconPopupClickTest.java 8150540 windows-all
+java/awt/TrayIcon/TrayIconPopup/TrayIconPopupClickTest.java 8150540 windows-all,macosx-all
java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java 8150540 windows-all
java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java 8196440 linux-all
java/awt/Window/Grab/GrabTest.java 8196019 windows-all
java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java 8196020 windows-all
+java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java 8061236 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java 8197936 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java 8013450 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/Shaped.java 8078999 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java 8078999 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java 8078999 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java 8196020 macosx-all
+java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java 8165218 macosx-all
+java/awt/Window/AlwaysOnTop/AutoTestOnTop.java 6847593 macosx-all
+java/awt/Window/GrabSequence/GrabSequence.java 6848409 macosx-all
java/awt/font/TextLayout/CombiningPerf.java 8192931 generic-all
+java/awt/font/TextLayout/TextLayoutBounds.java 8169188 macosx-all
+java/awt/font/MonospacedGlyphWidth/MonospacedGlyphWidthTest.java 8198412 linux-all,solaris-all
+java/awt/font/StyledMetrics/BoldSpace.java 8198422 linux-all
+java/awt/FontMetrics/FontCrash.java 8198336 windows-all
java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java 8056077 generic-all
java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java 8196025 windows-all
java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java 8196025 windows-all
java/awt/image/DrawImage/IncorrectSourceOffset.java 8196086 windows-all
java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java 8196087 windows-all
+java/awt/image/MultiResolutionImage/MultiResolutionDrawImageWithTransformTest.java 8198390 generic-all
+java/awt/image/multiresolution/MultiresolutionIconTest.java 8169187 macosx-all
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
+java/awt/print/PrinterJob/TestPgfmtSetMPA.java 8198343 generic-all
+sun/awt/datatransfer/SuplementaryCharactersTransferTest.java 8011371 generic-all
+sun/awt/shell/ShellFolderMemoryLeak.java 8197794 windows-all
sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java 8022403 generic-all
sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java 8196102 generic-all
sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java 8196180 windows-all
sun/java2d/GdiRendering/InsetClipping.java 8196181 windows-all
-sun/java2d/OpenGL/CopyAreaOOB.java 7001973 windows-all
+sun/java2d/OpenGL/CopyAreaOOB.java 7001973 windows-all,macosx-all
+sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java 8144029 macosx-all
sun/java2d/SunGraphics2D/DrawImageBilinear.java 8191506 generic-all
sun/java2d/SunGraphics2D/PolyVertTest.java 6986565 generic-all
sun/java2d/SunGraphics2D/SimplePrimQuality.java 7992007 generic-all
-sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196191 windows-all
-sun/java2d/pipe/InterpolationQualityTest.java 8171303 windows-all,linux-all
+sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196191 windows-all,macosx-all
+sun/java2d/pipe/InterpolationQualityTest.java 8171303 windows-all,linux-all,macosx-all
java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java 8196186 windows-all
java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java 8169469 windows-all
java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java 8196187 windows-all
java/awt/Graphics/ClippedCopyAreaTest/ClippedCopyAreaTest.java 8196436 linux-all
java/awt/Graphics/CopyScaledArea/CopyScaledAreaTest.java 8196189 windows-all
+java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8197796 generic-all
java/awt/GraphicsDevice/CloneConfigsTest.java 8196190 windows-all
java/awt/TextArea/TextAreaScrolling/TextAreaScrolling.java 8196300 windows-all
java/awt/print/PrinterJob/Margins.java 8196301 windows-all
+java/awt/print/PrinterJob/PSQuestionMark.java 7003378 windows-all
+java/awt/print/PrinterJob/GlyphPositions.java 7003378 windows-all
java/awt/Choice/PopupPosTest/PopupPosTest.html 8192930 windows-all
+java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html 6849922 macosx-all
+java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java 7100044 macosx-all
+java/awt/Component/CreateImage/CreateImage.java 8198334 windows-all
java/awt/Component/GetScreenLocTest.java 4753654 windows-all
java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html 8192929 windows-all
-java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 7054586 windows-all
+java/awt/Clipboard/HTMLTransferTest/HTMLTransferTest.html 8017454 macosx-all
java/awt/Dialog/SiblingChildOrder/SiblingChildOrderTest.java 8193940 windows-all
java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java 8000171 windows-all
java/awt/Frame/MiscUndecorated/RepaintTest.java 8079267 windows-all
java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java 8157173 windows-all
+java/awt/Modal/FileDialog/FileDialogAppModal1Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogAppModal2Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogAppModal3Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogAppModal4Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogAppModal5Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogAppModal6Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal1Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal2Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal3Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal4Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal5Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal6Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogDocModal7Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogModal1Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogModal2Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogModal3Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogModal4Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogModal5Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogModal6Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal1Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal2Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal3Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal4Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal5Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal6Test.java 8198664 macosx-all
+java/awt/Modal/FileDialog/FileDialogNonModal7Test.java 8198664 macosx-all
java/awt/Modal/FileDialog/FileDialogTKModal1Test.java 8196430 generic-all
java/awt/Modal/FileDialog/FileDialogTKModal2Test.java 8196430 generic-all
java/awt/Modal/FileDialog/FileDialogTKModal3Test.java 8196430 generic-all
java/awt/Modal/FileDialog/FileDialogTKModal4Test.java 8196430 generic-all
java/awt/Modal/FileDialog/FileDialogTKModal5Test.java 8196430 generic-all
java/awt/Modal/FileDialog/FileDialogTKModal6Test.java 8196430 generic-all
-java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java 8196431 linux-all
-java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java 8196431 linux-all
+java/awt/Modal/FileDialog/FileDialogTKModal7Test.java 8196430 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java 8198665 macosx-all
+java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java 8066259 macosx-all
+java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java 8047179 macosx-all
+java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java 8047179 macosx-all
+java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java 8047179 macosx-all
+java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java 8196431 macosx-all
+java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java 8196431 linux-all,macosx-all
+java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java 8196431 linux-all,macosx-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java 8058813 windows-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java 8196191 windows-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java 8196432 linux-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java 8196432 linux-all,macosx-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java 8196432 linux-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java 8196432 linux-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java 8196432 linux-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java 8196432 linux-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java 8196432 linux-all
-java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java 8196432 linux-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java 8196432 linux-all,macosx-all
+java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java 8196432 linux-all,macosx-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java 8196432 linux-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java 8196432 linux-all
+java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java 8198665 macosx-all
+java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java 8198665 macosx-all
+java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java 8198665 macosx-all
+java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java 8198665 macosx-all
+java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java 8198665 macosx-all
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java 8196435 linux-all
+java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java 8177326 macosx-all
+java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8023562 macosx-all
+java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021 macosx-all
+java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
+java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java 7124407 macosx-all
+java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java 8157170 macosx-all
java/awt/Focus/ForwardingFocusToProxyMotifTest/ForwardingFocusToProxyMotifTest.java 8196436 linux-all
java/awt/Window/OverrideRedirectRemoved/ChildWindowProblem.java 8196438 linux-all
-java/awt/Modal/ToBack/ToBackAppModal1Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackAppModal2Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackAppModal3Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackAppModal4Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackModal1Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackModal2Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackModal3Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackModal4Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackTKModal1Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackTKModal2Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackTKModal3Test.java 8196441 linux-all
-java/awt/Modal/ToBack/ToBackTKModal4Test.java 8196441 linux-all
+java/awt/Modal/ToBack/ToBackAppModal1Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackAppModal2Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackAppModal3Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackAppModal4Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackAppModal5Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackModal1Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackModal2Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackModal3Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackModal4Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackTKModal1Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackTKModal2Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackTKModal3Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackTKModal4Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackTKModal5Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackDocModal1Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackDocModal2Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackDocModal3Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackDocModal4Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackDocModal5Test.java 8196441 linux-all,macosx-all
+java/awt/Modal/ToBack/ToBackModeless1Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackModeless2Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackModeless3Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackModeless4Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackModeless5Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackNonModal1Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackNonModal2Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackNonModal3Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackNonModal4Test.java 8196441 macosx-all
+java/awt/Modal/ToBack/ToBackNonModal5Test.java 8196441 macosx-all
+java/awt/Modal/OnTop/OnTopAppModal1Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopAppModal2Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopAppModal3Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopAppModal4Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopAppModal5Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopAppModal6Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopDocModal1Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopDocModal2Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopDocModal3Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopDocModal4Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopDocModal5Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopDocModal6Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal1Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal2Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal3Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal4Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal5Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal6Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModal6Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModeless1Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModeless2Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModeless3Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModeless4Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModeless5Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopModeless6Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopTKModal1Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopTKModal2Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopTKModal3Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopTKModal4Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopTKModal5Test.java 8198666 macosx-all
+java/awt/Modal/OnTop/OnTopTKModal6Test.java 8198666 macosx-all
java/awt/List/SingleModeDeselect/SingleModeDeselect.java 8196301 windows-all
+java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java 8061235 macosx-all
+javax/print/PrintSEUmlauts/PrintSEUmlauts.java 8135174 generic-all
############################################################################
@@ -274,6 +483,8 @@
java/beans/Introspector/8132566/OverridePropertyInfoTest.java 8132565 generic-all
java/beans/Introspector/8132566/OverrideUserDefPropertyInfoTest.java 8132565 generic-all
+java/beans/XMLEncoder/Test6570354.java 8015593 macosx-all
+
############################################################################
# jdk_lang
@@ -403,52 +614,91 @@
# jdk_swing
+com/sun/java/swing/plaf/windows/Test8173145.java 8198334 windows-all
+
+javax/swing/border/Test6981576.java 8198339 generic-all
javax/swing/JComponent/7154030/bug7154030.java 7190978 generic-all
-javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java 8186513 generic-all
javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java 8067986 generic-all
javax/swing/JComponent/6683775/bug6683775.java 8172337 generic-all
-javax/swing/JComboBox/6236162/bug6236162.java 8028707 windows-all
+javax/swing/JComboBox/6236162/bug6236162.java 8028707 windows-all,macosx-all
javax/swing/text/html/parser/Test8017492.java 8022535 generic-all
-javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8081476 windows-all
+javax/swing/JButton/8151303/PressedIconTest.java 8198689 macosx-all
+javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8081476 windows-all,macosx-all
+javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java 8194128 macosx-all
+javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8198667 macosx-all
+javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java 8013450 macosx-all
+javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java 8190347 macosx-all
# The next test below is an intermittent failure
javax/swing/JComboBox/8033069/bug8033069ScrollBar.java 8163367 generic-all
-javax/swing/JColorChooser/Test6541987.java 8143021 windows-all,linux-all
+javax/swing/JColorChooser/Test6541987.java 8143021 windows-all,linux-all,macosx-all
+javax/swing/JColorChooser/Test7194184.java 8194126 linux-all,macosx-all
javax/swing/JTable/7124218/SelectEditTableCell.java 8148958 linux-all
+javax/swing/JTable/4235420/bug4235420.java 8079127 linux-all,macosx-all
javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all
+javax/swing/JTree/4633594/JTreeFocusTest.java 8173125 macosx-all
+javax/swing/JTree/8003400/Test8003400.java 8011259 macosx-all
javax/swing/JFileChooser/8041694/bug8041694.java 8196302 windows-all
javax/swing/JInternalFrame/8069348/bug8069348.java 8196303 windows-all
-javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all
-javax/swing/Action/8133039/bug8133039.java 8196089 windows-all
-javax/swing/JComboBox/6559152/bug6559152.java 8196090 windows-all
+javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all,macosx-all
+javax/swing/Action/8133039/bug8133039.java 8196089 windows-all,macosx-all
+javax/swing/JComboBox/6559152/bug6559152.java 8196090 windows-all,macosx-all
javax/swing/JComboBox/6607130/bug6607130.java 8196091 windows-all
-javax/swing/JComboBox/8032878/bug8032878.java 8196092 windows-all
-javax/swing/JComboBox/8057893/bug8057893.java 8169953 windows-all
-javax/swing/JComboBox/8072767/bug8072767.java 8196093 windows-all
+javax/swing/JComboBox/8032878/bug8032878.java 8196092 windows-all,macosx-all
+javax/swing/JComboBox/8057893/bug8057893.java 8169953 windows-all,macosx-all
+javax/swing/JComboBox/8072767/bug8072767.java 8196093 windows-all,macosx-all
javax/swing/JComponent/4337267/bug4337267.java 8146451 windows-all
+javax/swing/JEditorPane/5076514/bug5076514.java 8198321 generic-all
javax/swing/JEditorPane/6917744/bug6917744.java 8194767 generic-all
javax/swing/JFileChooser/4524490/bug4524490.java 8042380 generic-all
javax/swing/JFileChooser/8002077/bug8002077.java 8196094 windows-all
javax/swing/JFileChooser/DeserializedJFileChooser/DeserializedJFileChooserTest.java 8196095 generic-all
+javax/swing/JFileChooser/6396844/TwentyThousandTest.java 8058231 macosx-all
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java 8193942 generic-all
javax/swing/JInternalFrame/8020708/bug8020708.java 8194943 windows-all
javax/swing/JList/6462008/bug6462008.java 7156347 generic-all
-javax/swing/JPopupMenu/6580930/bug6580930.java 8196096 windows-all
+javax/swing/JPopupMenu/6580930/bug6580930.java 8196096 windows-all,macosx-all
+javax/swing/JPopupMenu/6800513/bug6800513.java 7184956 macosx-all
javax/swing/JPopupMenu/6675802/bug6675802.java 8196097 windows-all
javax/swing/JTabbedPane/8007563/Test8007563.java 8051591 generic-all
+javax/swing/JTabbedPane/4624207/bug4624207.java 8064922 macosx-all
+javax/swing/JTabbedPane/7024235/Test7024235.java 8028281 macosx-all
javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java 8160720 generic-all
javax/swing/plaf/basic/BasicTextUI/8001470/bug8001470.java 8196098 windows-all
+javax/swing/plaf/basic/Test6984643.java 8198340 windows-all
javax/swing/text/CSSBorder/6796710/bug6796710.java 8196099 windows-all
javax/swing/text/DefaultCaret/HidingSelection/HidingSelectionTest.java 8194048 windows-all
javax/swing/text/JTextComponent/5074573/bug5074573.java 8196100 windows-all
javax/swing/JFileChooser/6798062/bug6798062.java 8146446 windows-all
-javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java 8196434 linux-all
+javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java 8196434 linux-all,solaris-all
javax/swing/JComboBox/8032878/bug8032878.java 8196439 linux-all
-javax/swing/JComboBox/8182031/ComboPopupTest.java 8196465 linux-all
-javax/swing/JFileChooser/6738668/bug6738668.java 8194946 linux-all,macosx-all
-javax/swing/JFileChooser/8021253/bug8021253.java 8169954 windows-all,linux-all
-javax/swing/JFileChooser/8062561/bug8062561.java 8196466 linux-all
-javax/swing/JInternalFrame/Test6325652.java 8196467 linux-all
-
+javax/swing/JComboBox/8182031/ComboPopupTest.java 8196465 linux-all,macosx-all
+javax/swing/JFileChooser/6738668/bug6738668.java 8194946 generic-all
+javax/swing/JFileChooser/8021253/bug8021253.java 8169954 windows-all,linux-all,macosx-all
+javax/swing/JFileChooser/8062561/bug8062561.java 8196466 linux-all,macosx-all
+javax/swing/JFileChooser/FileSystemView/FileSystemViewListenerLeak.java 8198342 generic-all
+javax/swing/JInternalFrame/Test6325652.java 8196467 linux-all,macosx-all
+javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java 8194944 macosx-all
+javax/swing/JLabel/6596966/bug6596966.java 8040914 macosx-all
+javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all
+javax/swing/JPopupMenu/4966112/bug4966112.java 8064915 macosx-all
+javax/swing/MultiUIDefaults/Test6860438.java 8198391 generic-all
+javax/swing/MultiUIDefaults/4300666/bug4300666.java 7105119 macosx-all
+javax/swing/UITest/UITest.java 8198392 generic-all
+javax/swing/plaf/basic/BasicComboBoxEditor/Test8015336.java 8198394 linux-all,macosx-all
+javax/swing/plaf/metal/MetalLookAndFeel/Test8039750.java 8198395 generic-all
+javax/swing/text/DevanagariEditor.java 8198397 linux-all
+javax/swing/JColorChooser/Test6199676.java 8198398 linux-all,macosx-all
+javax/swing/JTable/6735286/bug6735286.java 8198398 linux-all,macosx-all
+javax/swing/SpringLayout/4726194/bug4726194.java 8198399 generic-all
+javax/swing/SwingUtilities/6797139/bug6797139.java 8198400 generic-all
+javax/swing/text/html/parser/Parser/6836089/bug6836089.java 8198401 linux-all,macosx-all
+javax/swing/JTable/8133919/DrawGridLinesTest.java 8198407 generic-all
+javax/swing/text/html/StyleSheet/BackgroundImage/BackgroundImagePosition.java 8198409 generic-all
+javax/swing/text/AbstractDocument/DocumentInsert/DocumentInsertAtWrongPositionTest.java 8198396 generic-all
+javax/swing/JFileChooser/6868611/bug6868611.java 7059834 windows-all
+javax/swing/SwingWorker/6493680/bug6493680.java 8198410 windows-all
+javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8042383 macosx-all
+javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java 8065099 macosx-all
############################################################################
@@ -486,10 +736,6 @@
com/sun/jdi/NashornPopFrameTest.java 8187143 generic-all
-com/sun/jdi/EarlyReturnTest.java 8198803 generic-all
-com/sun/jdi/EarlyReturnNegativeTest.java 8198803 generic-all
-com/sun/jdi/MethodExitReturnValuesTest.java 8198803 generic-all
-
############################################################################
# jdk_time
--- a/test/jdk/com/sun/jdi/EarlyReturnNegativeTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/com/sun/jdi/EarlyReturnNegativeTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -77,8 +77,9 @@
public static ClassLoader classLoaderValue;
{
try {
- urls[0] = new URL("hi there");
- } catch (java.net.MalformedURLException ee) {
+ urls[0] = new URL("file:/foo");
+ } catch (java.net.MalformedURLException ex) {
+ throw new AssertionError(ex);
}
classLoaderValue = new URLClassLoader(urls);
}
--- a/test/jdk/com/sun/jdi/EarlyReturnTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/com/sun/jdi/EarlyReturnTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -82,8 +82,9 @@
public static ClassLoader classLoaderValue;
{
try {
- urls[0] = new URL("hi there");
- } catch (java.net.MalformedURLException ee) {
+ urls[0] = new URL("file:/foo");
+ } catch (java.net.MalformedURLException ex) {
+ throw new AssertionError(ex);
}
classLoaderValue = new URLClassLoader(urls);
}
@@ -116,8 +117,9 @@
public static ClassLoader eclassLoaderValue;
{
try {
- urls[0] = new URL("been there, done that");
- } catch (java.net.MalformedURLException ee) {
+ urls[0] = new URL("file:/bar");
+ } catch (java.net.MalformedURLException ex) {
+ throw new AssertionError(ex);
}
classLoaderValue = new URLClassLoader(urls);
}
--- a/test/jdk/com/sun/jdi/MethodExitReturnValuesTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/com/sun/jdi/MethodExitReturnValuesTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -66,8 +66,9 @@
public static ClassLoader classLoaderValue;
{
try {
- urls[0] = new URL("hi there");
- } catch (java.net.MalformedURLException ee) {
+ urls[0] = new URL("file:/foo");
+ } catch (java.net.MalformedURLException ex) {
+ throw new AssertionError(ex);
}
classLoaderValue = new URLClassLoader(urls);
}
--- a/test/jdk/java/awt/Color/XRenderTranslucentColorDrawTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Color/XRenderTranslucentColorDrawTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/*
* @test
+ * @key headful
* @bug 8176795
* @summary Test verifies that we get proper color when we draw translucent
* color over an opaque color using X Render extension in Linux.
--- a/test/jdk/java/awt/Desktop/8064934/bug8064934.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Desktop/8064934/bug8064934.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,8 @@
/* @test
* @bug 8064934
+ * @key headful
+ * @requires (os.family == "windows")
* @summary Incorrect Exception message from java.awt.Desktop.open()
* @author Dmitry Markov
* @library ../../../../lib/testlibrary
--- a/test/jdk/java/awt/Desktop/OpenByUNCPathNameTest/OpenByUNCPathNameTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Desktop/OpenByUNCPathNameTest/OpenByUNCPathNameTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,8 @@
/* @test
@bug 6550588
+ @key headful
+ @requires (os.family == "windows")
@summary java.awt.Desktop cannot open file with Windows UNC filename
@author Anton Litvinov
*/
--- a/test/jdk/java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
/*
@test
@key headful
- @bug 6829546
+ @bug 6829546, 8197808
@summary tests that an always-on-top modal dialog doesn't make any windows always-on-top
@author artem.ananiev: area=awt.modal
@library ../../regtesthelpers
@@ -32,9 +32,13 @@
@run main MakeWindowAlwaysOnTop
*/
-import java.awt.*;
-import java.awt.event.*;
-
+import java.awt.Frame;
+import java.awt.Dialog;
+import java.awt.EventQueue;
+import java.awt.Color;
+import java.awt.Robot;
+import java.awt.Point;
+import java.awt.event.InputEvent;
import test.java.awt.regtesthelpers.Util;
public class MakeWindowAlwaysOnTop
@@ -59,21 +63,9 @@
d = new Dialog(null, "Modal dialog", Dialog.ModalityType.APPLICATION_MODAL);
d.setBounds(500, 500, 160, 160);
d.setAlwaysOnTop(true);
- EventQueue.invokeLater(new Runnable()
- {
- public void run()
- {
- d.setVisible(true);
- }
- });
+ EventQueue.invokeLater(() -> d.setVisible(true) );
// Wait until the dialog is shown
- EventQueue.invokeAndWait(new Runnable()
- {
- public void run()
- {
- // Empty
- }
- });
+ EventQueue.invokeAndWait(() -> { /* Empty */ });
r.delay(100);
Util.waitForIdle(r);
@@ -104,29 +96,30 @@
// Bring it above the first frame
t.toFront();
- r.delay(100);
+
+ r.delay(200);
Util.waitForIdle(r);
+
Color c = r.getPixelColor(p.x + f.getWidth() / 2, p.y + f.getHeight() / 2);
System.out.println("Color = " + c);
- System.out.flush();
+
+ String exceptionMessage = null;
// If the color is RED, then the first frame is now always-on-top
- if (Color.RED.equals(c))
- {
- throw new RuntimeException("Test FAILED: the frame is always-on-top");
- }
- else if (!Color.BLUE.equals(c))
- {
- throw new RuntimeException("Test FAILED: unknown window is on top of the frame");
- }
- else
- {
- System.out.println("Test PASSED");
- System.out.flush();
+ if (Color.RED.equals(c)) {
+ exceptionMessage = "Test FAILED: the frame is always-on-top";
+ } else if (!Color.BLUE.equals(c)) {
+ exceptionMessage = "Test FAILED: unknown window is on top of the frame";
}
// Dispose all the windows
t.dispose();
f.dispose();
+
+ if (exceptionMessage != null) {
+ throw new RuntimeException(exceptionMessage);
+ } else {
+ System.out.println("Test PASSED");
+ }
}
}
--- a/test/jdk/java/awt/EmbeddedFrame/GraphicsConfigTest/GraphicsConfigTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/EmbeddedFrame/GraphicsConfigTest/GraphicsConfigTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
* @test
* @bug 6356322
+ * @key headful
* @summary Tests that embedded frame's graphics configuration is updated
* correctly when it is moved to another screen in multiscreen system,
* XToolkit
--- a/test/jdk/java/awt/FileDialog/FileDialogMemoryLeak/FileDialogLeakTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/FileDialog/FileDialogMemoryLeak/FileDialogLeakTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/**
* @test
+ * @key headful
* @bug 8177758
* @requires os.family == "windows"
* @summary Regression in java.awt.FileDialog
--- a/test/jdk/java/awt/FileDialog/ISCthrownByFileListTest/ISCthrownByFileListTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/FileDialog/ISCthrownByFileListTest/ISCthrownByFileListTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
@test
@bug 6304979
+ @key headful
@summary REG: File Dialog throws ArrayIndexOutOfBounds Exception on XToolkit with b45
@author Dmitry Cherepanov: area=awt.filedialog
@run main/othervm -Dsun.awt.disableGtkFileDialogs=true ISCthrownByFileListTest
--- a/test/jdk/java/awt/FileDialog/MoveToTrashTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/FileDialog/MoveToTrashTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/*
@test
+ @key headful
@bug 8190515 8193468
@summary java.awt.Desktop.moveToTrash(File) prompts on Windows 7 but not on Mac.
@run main MoveToTrashTest
--- a/test/jdk/java/awt/Focus/SortingFPT/JDK8048887.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Focus/SortingFPT/JDK8048887.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/*
@test
+ @key headful
@bug 8048887 8164937
@summary Tests SortingFTP for an exception caused by the tim-sort algo.
@author anton.tarasov: area=awt.focus
--- a/test/jdk/java/awt/Frame/MaximizedToUnmaximized/MaximizedToUnmaximized.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Frame/MaximizedToUnmaximized/MaximizedToUnmaximized.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,9 +31,11 @@
/**
* @test
* @key headful
- * @bug 8065739
+ * @bug 8065739 8129569
+ * @requires (os.family == "mac")
* @summary [macosx] Frame warps to lower left of screen when displayed
* @author Alexandr Scherbatiy
+ * @run main MaximizedToUnmaximized
*/
public class MaximizedToUnmaximized {
--- a/test/jdk/java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,8 +23,8 @@
/**
* @test
- * @bug 6358034
- * @bug 6568560
+ * @bug 6358034 6568560
+ * @key headful
* @summary Tests that no exception is thrown when display mode is changed
* externally
* @compile UninitializedDisplayModeChangeTest.java DisplayModeChanger.java
--- a/test/jdk/java/awt/Graphics2D/ScaledTransform/ScaledTransform.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Graphics2D/ScaledTransform/ScaledTransform.java Fri Mar 02 19:08:44 2018 +0100
@@ -33,6 +33,7 @@
/*
* @test
* @bug 8069361
+ * @key headful
* @summary SunGraphics2D.getDefaultTransform() does not include scale factor
* @author Alexander Scherbatiy
* @run main ScaledTransform
--- a/test/jdk/java/awt/Gtk/GtkVersionTest/GtkVersionTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Gtk/GtkVersionTest/GtkVersionTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,6 +22,7 @@
*/
/* @test
+ * @key headful
* @bug 8156121
* @summary "Fail forward" fails for GTK3 if no GTK2 available
* @modules java.desktop/sun.awt
--- a/test/jdk/java/awt/JAWT/JAWT.sh Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/JAWT/JAWT.sh Fri Mar 02 19:08:44 2018 +0100
@@ -22,6 +22,7 @@
# questions.
# @test JAWT.sh
+# @key headful
# @bug 7190587
# @summary Tests Java AWT native interface library
# @author kshefov
@@ -111,7 +112,7 @@
else
ARCH="i386"
fi
- SYST="cygwin"
+ SYST="cygwin"
MAKE="make"
;;
Darwin )
--- a/test/jdk/java/awt/List/SetBackgroundTest/SetBackgroundTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/List/SetBackgroundTest/SetBackgroundTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,8 @@
/*
@test
@bug 6246467
+ @key headful
+ @requires (os.family == "linux") | (os.family == "solaris")
@summary List does not honor user specified background, foreground colors on XToolkit
@author Dmitry Cherepanov area=awt.list
@library ../../../../lib/testlibrary
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/awt/MenuBar/DefaultMenuBarDispose.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @key headful
+ * @bug 8196322
+ * @summary [macosx] When the screen menu bar is used, clearing the default menu bar should permit AWT shutdown
+ * @author Alan Snyder
+ * @run main/othervm DefaultMenuBarDispose
+ * @requires (os.family == "mac")
+ */
+
+import java.awt.Desktop;
+import java.lang.reflect.InvocationTargetException;
+import javax.swing.JMenuBar;
+import javax.swing.SwingUtilities;
+
+public class DefaultMenuBarDispose
+{
+ public DefaultMenuBarDispose()
+ {
+ Thread watcher = new Thread(() -> {
+ try {
+ synchronized (this) {
+ wait(5000);
+ }
+ throw new RuntimeException("Test failed: failed to exit");
+ } catch (InterruptedException ex) {
+ }
+ });
+ watcher.setDaemon(true);
+ watcher.start();
+
+ runSwing(() ->
+ {
+ JMenuBar mb = new JMenuBar();
+ Desktop.getDesktop().setDefaultMenuBar(mb);
+ Desktop.getDesktop().setDefaultMenuBar(null);
+ }
+ );
+ }
+
+ private static void runSwing(Runnable r)
+ {
+ try {
+ SwingUtilities.invokeAndWait(r);
+ } catch (InterruptedException e) {
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ if (!System.getProperty("os.name").contains("OS X")) {
+ System.out.println("This test is for MacOS only. Automatically passed on other platforms.");
+ return;
+ }
+
+ System.setProperty("apple.laf.useScreenMenuBar", "true");
+
+ new DefaultMenuBarDispose();
+ }
+}
--- a/test/jdk/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,7 +22,7 @@
*/
/*
- @test %I% %E%
+ @test
@key headful
@bug 6315717
@summary verifies that drag events are coming for every button if the property is set to true
--- a/test/jdk/java/awt/Paint/PaintNativeOnUpdate.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Paint/PaintNativeOnUpdate.java Fri Mar 02 19:08:44 2018 +0100
@@ -36,7 +36,7 @@
* @library ../../../lib/testlibrary
* @build ExtendedRobot
* @author Sergey Bylokhov
- @ @run main PaintNativeOnUpdate
+ * @run main PaintNativeOnUpdate
*/
public final class PaintNativeOnUpdate extends Label {
--- a/test/jdk/java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,7 +22,7 @@
*/
/*
- @test %I% %E%
+ @test
@key headful
@bug 6315717
@summary verifies that Robot is accepting extra mouse buttons
--- a/test/jdk/java/awt/TextArea/DisposeTest/TestDispose.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TextArea/DisposeTest/TestDispose.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/* @test
* @bug 7155298
+ * @key headful
* @run main/othervm/timeout=60 TestDispose
* @summary Editable TextArea blocks GUI application from exit.
* @author Sean Chou
--- a/test/jdk/java/awt/TextField/DisposeTest/TestDispose.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TextField/DisposeTest/TestDispose.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/* @test
* @bug 7155298
+ * @key headful
* @run main/othervm/timeout=60 TestDispose
* @summary Editable TextField blocks GUI application from exit.
* @author Sean Chou
--- a/test/jdk/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,18 +24,23 @@
/*
* @test
+ * @key headful
* @summary Test that Toolkit.getDefaultToolkit throws AWTError exception if bad DISPLAY variable was set
* @bug 6818083
*
* @run shell/timeout=240 BadDisplayTest.sh
*/
-import java.awt.*;
+import java.awt.AWTError;
+import java.awt.Toolkit;
public class BadDisplayTest{
public static void main(String[] args) {
+ if (Boolean.getBoolean("java.awt.headless")) {
+ return;
+ }
- Throwable th = null;
+ Throwable th = null;
try {
Toolkit.getDefaultToolkit();
} catch (Throwable x) {
--- a/test/jdk/java/awt/Toolkit/DesktopProperties/rfe4758438.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Toolkit/DesktopProperties/rfe4758438.java Fri Mar 02 19:08:44 2018 +0100
@@ -28,6 +28,7 @@
/*
* @test
+ * @key headful
* @bug 4758438
* @summary Testcase to check the implementation of RFE 4758438
* The RFE suggests that the GNOME desktop properties
--- a/test/jdk/java/awt/Toolkit/RealSync/Test.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Toolkit/RealSync/Test.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
@test
@bug 6252005
+ @key headful
@summary Tests that realSync feature works
@author denis.mikhalkin: area=awt.toolkit
@modules java.desktop/sun.awt
@@ -150,7 +151,7 @@
}
}
errors.clear();
- System.exit(1);
+ throw new Error();
}
public static void asser(boolean value) {
--- a/test/jdk/java/awt/TrayIcon/8072769/bug8072769.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/8072769/bug8072769.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,8 @@
/* @test
@bug 8072769
+ @key headful
+ @requires (os.family == "windows")
@summary System tray icon title freezes java
@author Semyon Sadetsky
@library ../../../../lib/testlibrary
--- a/test/jdk/java/awt/TrayIcon/ActionCommand/ActionCommand.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/ActionCommand/ActionCommand.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
/*
* @test
+ * @key headful
* @summary Check the return value of the getActionCommand method
* of the ActionEvent triggered when TrayIcon is double clicked
* (single clicked, on Mac)
--- a/test/jdk/java/awt/TrayIcon/ActionEventMask/ActionEventMask.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/ActionEventMask/ActionEventMask.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Check if ActionEvent triggered when a TrayIcon is double
* (single, on Mac) clicked is visible by an AWTEventListener
* added to the Toolkit. It also checks if all listeners are
--- a/test/jdk/java/awt/TrayIcon/ActionEventTest/ActionEventTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/ActionEventTest/ActionEventTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
* @test
* @bug 6191390 8154328
+ * @key headful
* @summary Verify that ActionEvent is received with correct modifiers set.
* @modules java.desktop/java.awt:open
* @modules java.desktop/java.awt.peer
--- a/test/jdk/java/awt/TrayIcon/CtorTest/CtorTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/CtorTest/CtorTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
@test
@bug 6759726
+ @key headful
@summary TrayIcon constructor throws NPE instead of documented IAE
@author Dmitry Cherepanov area=awt.tray
@run main CtorTest
--- a/test/jdk/java/awt/TrayIcon/GetTrayIconsTest/GetTrayIcons.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/GetTrayIconsTest/GetTrayIcons.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
/*
* @test
+ * @key headful
* @summary Check the getTrayIcons method of the SystemTray
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @run main GetTrayIcons
--- a/test/jdk/java/awt/TrayIcon/InterJVMTest/InterJVM.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/InterJVMTest/InterJVM.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/*
* @test
+ * @key headful
* @summary Check if TrayIcon added by a JVM is not visible
* in another JVM
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
--- a/test/jdk/java/awt/TrayIcon/ModalityTest/ModalityTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/ModalityTest/ModalityTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Check for MouseEvents with all mouse buttons
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @modules java.desktop/java.awt:open
--- a/test/jdk/java/awt/TrayIcon/MouseEventMask/MouseEventMaskTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/MouseEventMask/MouseEventMaskTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Check if MouseEvents triggered by TrayIcon are visible
* by an AWTEventListener added to the Toolkit. It also
* checks if all listeners are triggered when AWTEventListeners
--- a/test/jdk/java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @bug 7153700
* @summary Check for mouseMoved event for java.awt.TrayIcon
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
--- a/test/jdk/java/awt/TrayIcon/PropertyChangeListenerTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/PropertyChangeListenerTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -28,6 +28,7 @@
/*
* @test
+ * @key headful
* @summary Check if custom property change listener added
* to system tray works correctly
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
--- a/test/jdk/java/awt/TrayIcon/SecurityCheck/FunctionalityCheck/FunctionalityCheck.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/SecurityCheck/FunctionalityCheck/FunctionalityCheck.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Check for MouseEvents with all mouse buttons
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @modules java.desktop/java.awt:open
--- a/test/jdk/java/awt/TrayIcon/SecurityCheck/NoPermissionTest/NoPermissionTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/SecurityCheck/NoPermissionTest/NoPermissionTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
/*
* @test
+ * @key headful
* @summary Check for SecurityException occurrence if no permissions for system tray granted
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @run main/othervm/policy=tray.policy -Djava.security.manager NoPermissionTest
--- a/test/jdk/java/awt/TrayIcon/SecurityCheck/PermissionTest/PermissionTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/SecurityCheck/PermissionTest/PermissionTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
/*
* @test
+ * @key headful
* @summary Check for no Exception occurrence if permissions for system tray granted
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @run main/othervm/policy=tray.policy -Djava.security.manager PermissionTest
--- a/test/jdk/java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -25,6 +25,7 @@
/*
* @test
+ * @key headful
* @summary Check the getSystemTray method of the SystemTray. Checks if
* a proper instance is returned in supported platforms and a proper
* exception is thrown in unsupported platforms
--- a/test/jdk/java/awt/TrayIcon/TrayIconAddTest/TrayIconAddTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconAddTest/TrayIconAddTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Tests the add method of the SystemTray. Checks if it
* throws proper exceptions in case of invalid arguments and adds the
* TrayIcon correctly in case of a proper argument
--- a/test/jdk/java/awt/TrayIcon/TrayIconEvents/TrayIconEventsTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconEvents/TrayIconEventsTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -28,6 +28,7 @@
/*
* @test
+ * @key headful
* @summary Check for MouseEvents with all mouse buttons
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @modules java.desktop/java.awt:open
--- a/test/jdk/java/awt/TrayIcon/TrayIconMethodsTest/TrayIconMethodsTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconMethodsTest/TrayIconMethodsTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Check various methods of the TrayIcon - whether the methods
* return the proper values, throws the proper exceptions etc
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
--- a/test/jdk/java/awt/TrayIcon/TrayIconMouseTest/TrayIconMouseTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconMouseTest/TrayIconMouseTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -31,6 +31,7 @@
/*
* @test
* @bug 6384991
+ * @key headful
* @summary Check if ActionEvent is triggered by a TrayIcon when
* it is double clicked with mouse button 1 on windows
* or single clicked with button 3 on Mac OS X
--- a/test/jdk/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupClickTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupClickTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -34,6 +34,7 @@
/*
* @test
+ * @key headful
* @summary Check if a action performed event is received when TrayIcon display
* message is clicked on.
* @author Shashidhara Veerabhadraiah (shashidhara.veerabhadraiah@oracle.com)
--- a/test/jdk/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
/*
* @test
+ * @key headful
* @summary Check if a JPopupMenu can be displayed when TrayIcon is
* right clicked. It uses a JWindow as the parent of the JPopupMenu
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
--- a/test/jdk/java/awt/TrayIcon/TrayIconRemoveTest/TrayIconRemoveTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconRemoveTest/TrayIconRemoveTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
/*
* @test
+ * @key headful
* @summary Test the remove method of the TrayIcon
* @author Dmitriy Ermashov (dmitriy.ermashov@oracle.com)
* @run main TrayIconRemoveTest
--- a/test/jdk/java/awt/TrayIcon/TrayIconSizeTest/TrayIconSizeTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/TrayIconSizeTest/TrayIconSizeTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,6 +27,7 @@
/*
* @test
+ * @key headful
* @summary Test the methods TrayIcon.getSize and SystemTray.getTrayIconSize.
* There is no way to check whether the values returned are correct,
* so its checked whether the value is greater than a minimum
--- a/test/jdk/java/awt/TrayIcon/UpdatePopupMenu/UpdatePopupMenu.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/TrayIcon/UpdatePopupMenu/UpdatePopupMenu.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
@test
@bug 8147841
+ @key headful
@summary Updating Tray Icon popup menu does not update menu items on Mac OS X
@run main/manual UpdatePopupMenu
*/
--- a/test/jdk/java/awt/Window/GetScreenLocation/GetScreenLocationTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Window/GetScreenLocation/GetScreenLocationTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,7 +22,8 @@
*/
/**
- * @test @summary setLocationRelativeTo stopped working in Ubuntu 13.10 (Unity)
+ * @test
+ * @summary setLocationRelativeTo stopped working in Ubuntu 13.10 (Unity)
* @key headful
* @bug 8036915 8161273
* @run main/othervm -Dsun.java2d.uiScale=1 GetScreenLocationTest
--- a/test/jdk/java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,8 +22,10 @@
*/
/**
- * @test @summary setAlwaysOnTop doesn't behave correctly in Linux/Solaris under
- * certain scenarios
+ * @test
+ * @key headful
+ * @summary setAlwaysOnTop doesn't behave correctly in Linux/Solaris under
+ * certain scenarios
* @bug 8021961
* @author Semyon Sadetsky
* @run main ChildAlwaysOnTopTest
--- a/test/jdk/java/awt/Window/MultiWindowApp/MultiWindowAppTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/Window/MultiWindowApp/MultiWindowAppTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,7 +22,8 @@
*/
/**
- * @test @summary After calling frame.toBack() dialog goes to the back on Ubuntu 12.04
+ * @test
+ * @summary After calling frame.toBack() dialog goes to the back on Ubuntu 12.04
* @key headful
* @bug 8022334
* @author Semyon Sadetsky
--- a/test/jdk/java/awt/dnd/BadSerializaionTest/BadSerializationTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/dnd/BadSerializaionTest/BadSerializationTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/**
* @test
+ * @key headful
* @bug 8030050
* @summary Validate fields on DnD class deserialization
* @author petr.pchelko@oracle.com
--- a/test/jdk/java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,7 +22,8 @@
*/
/**
- * @test @summary JVM crash if the frame is disposed in DropTargetListener
+ * @test
+ * @summary JVM crash if the frame is disposed in DropTargetListener
* @key headful
* @author Petr Pchelko
* @library ../../regtesthelpers
--- a/test/jdk/java/awt/dnd/ImageTransferTest/ImageTransferTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/dnd/ImageTransferTest/ImageTransferTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,16 +22,17 @@
*/
/*
- @test
- @key headful
- @bug 4397404 4720930
- @summary tests that images of all supported native image formats are transfered properly
- @library ../../../../lib/testlibrary
- @library ../../regtesthelpers/process/
- @build jdk.testlibrary.OSInfo ProcessResults ProcessCommunicator
- @author gas@sparc.spb.su area=Clipboard
- @run main ImageTransferTest
-*/
+ * @test
+ * @key headful
+ * @bug 4397404 4720930 8197926
+ * @summary tests that images of all supported native image formats are
+ * transferred properly
+ * @library ../../../../lib/testlibrary
+ * @library ../../regtesthelpers/process/
+ * @build jdk.testlibrary.OSInfo ProcessResults ProcessCommunicator
+ * @author gas@sparc.spb.su area=Clipboard
+ * @run main/timeout=240 ImageTransferTest
+ */
import test.java.awt.regtesthelpers.process.ProcessCommunicator;
import test.java.awt.regtesthelpers.process.ProcessResults;
@@ -58,48 +59,59 @@
public class ImageTransferTest {
public static void main(String[] arg) throws Exception {
ImageDragSource ids = new ImageDragSource();
- ids.frame.setLocation(100, 100);
- ids.frame.setVisible(true);
- Util.sync();
- String classpath = System.getProperty("java.class.path");
- String[] args = new String[ids.formats.length + 4];
- args[0] = "200";
- args[1] = "100";
- args[2] = args[3] = "150";
+ try {
+ ids.frame.setUndecorated(true);
+ ids.frame.setLocation(100, 100);
+ ids.frame.setVisible(true);
+ Util.sync();
+ String classpath = System.getProperty("java.class.path");
+ String[] args = new String[ids.formats.length + 4];
+ args[0] = "200";
+ args[1] = "100";
+ args[2] = args[3] = "150";
- System.arraycopy(ids.formats, 0, args, 4, ids.formats.length);
- ProcessResults pres = ProcessCommunicator.executeChildProcess(ImageDropTarget.class, classpath, args);
+ System.arraycopy(ids.formats, 0, args, 4, ids.formats.length);
+ String scale = System.getProperty("sun.java2d.uiScale");
+ ProcessResults pres = ProcessCommunicator.
+ executeChildProcess(ImageDropTarget.class, classpath +
+ " -Dsun.java2d.uiScale=" + scale, args);
- if (pres.getStdErr() != null && pres.getStdErr().length() > 0) {
- System.err.println("========= Child VM System.err ========");
- System.err.print(pres.getStdErr());
- System.err.println("======================================");
- }
+ if (pres.getStdErr() != null && pres.getStdErr().length() > 0) {
+ System.err.println("========= Child VM System.err ========");
+ System.err.print(pres.getStdErr());
+ System.err.println("======================================");
+ }
- if (pres.getStdOut() != null && pres.getStdOut().length() > 0) {
- System.err.println("========= Child VM System.out ========");
- System.err.print(pres.getStdOut());
- System.err.println("======================================");
- }
+ if (pres.getStdOut() != null && pres.getStdOut().length() > 0) {
+ System.err.println("========= Child VM System.out ========");
+ System.err.print(pres.getStdOut());
+ System.err.println("======================================");
+ }
- boolean failed = false;
- String passedFormats = "";
- String failedFormats = "";
+ boolean failed = false;
+ String passedFormats = "";
+ String failedFormats = "";
- for (int i = 0; i < ids.passedArray.length; i++) {
- if (ids.passedArray[i]) passedFormats += ids.formats[i] + " ";
- else {
- failed = true;
- failedFormats += ids.formats[i] + " ";
+ for (int i = 0; i < ids.passedArray.length; i++) {
+ if (ids.passedArray[i]) passedFormats += ids.formats[i] + " ";
+ else {
+ failed = true;
+ failedFormats += ids.formats[i] + " ";
+ }
}
- }
- if (failed) {
- throw new RuntimeException("test failed: images in following " +
- "native formats are not transferred properly: " + failedFormats);
- } else {
- System.err.println("images in following " +
- "native formats are transferred properly: " + passedFormats);
+ if (failed) {
+ throw new RuntimeException("test failed: images in following " +
+ "native formats are not transferred properly: " +
+ failedFormats);
+ } else {
+ System.err.println("images in following " +
+ "native formats are transferred properly: " + passedFormats);
+ }
+ } finally {
+ if (ids.frame != null) {
+ ids.frame.dispose();
+ }
}
}
}
@@ -148,17 +160,23 @@
alpha = 0;
red = 0;
}
- pix[index++] = (alpha << 24) | (red << 16) | (green << 8) | blue;
+ pix[index++] =
+ (alpha << 24) | (red << 16) | (green << 8) | blue;
}
}
- return Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(w, h, pix, 0, w));
+ return Toolkit.getDefaultToolkit().
+ createImage(new MemoryImageSource(w, h, pix, 0, w));
}
static String[] retrieveFormatsToTest() {
- SystemFlavorMap sfm = (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap();
- java.util.List<String> ln = sfm.getNativesForFlavor(DataFlavor.imageFlavor);
- if (OSInfo.OSType.WINDOWS.equals(OSInfo.getOSType()) && !ln.contains("METAFILEPICT")) {
+ SystemFlavorMap sfm =
+ (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap();
+ java.util.List<String> ln =
+ sfm.getNativesForFlavor(DataFlavor.imageFlavor);
+ if (OSInfo.OSType.WINDOWS.equals(OSInfo.getOSType()) &&
+ !ln.contains("METAFILEPICT"))
+ {
// for test failing on JDK without this fix
ln.add("METAFILEPICT");
}
@@ -166,15 +184,17 @@
}
static void leaveFormat(String format) {
- SystemFlavorMap sfm = (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap();
- sfm.setFlavorsForNative(format, new DataFlavor[]{DataFlavor.imageFlavor});
+ SystemFlavorMap sfm =
+ (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap();
+ sfm.setFlavorsForNative(format,
+ new DataFlavor[]{DataFlavor.imageFlavor});
sfm.setNativesForFlavor(DataFlavor.imageFlavor, new String[]{format});
}
boolean areImagesIdentical(Image im1, Image im2) {
if (formats[fi].equals("JFIF") || formats[fi].equals("image/jpeg") ||
- formats[fi].equals("GIF") || formats[fi].equals("image/gif")) {
+ formats[fi].equals("GIF") || formats[fi].equals("image/gif")) {
// JFIF and GIF are lossy formats
return true;
}
@@ -186,14 +206,14 @@
}
if (formats[fi].equals("PNG") ||
- formats[fi].equals("image/png") ||
- formats[fi].equals("image/x-png")) {
+ formats[fi].equals("image/png") ||
+ formats[fi].equals("image/x-png")) {
// check alpha as well
for (int i = 0; i < ib1.length; i++) {
if (ib1[i] != ib2[i]) {
System.err.println("different pixels: " +
- Integer.toHexString(ib1[i]) + " " +
- Integer.toHexString(ib2[i]));
+ Integer.toHexString(ib1[i]) + " " +
+ Integer.toHexString(ib2[i]));
return false;
}
}
@@ -201,8 +221,8 @@
for (int i = 0; i < ib1.length; i++) {
if ((ib1[i] & 0x00FFFFFF) != (ib2[i] & 0x00FFFFFF)) {
System.err.println("different pixels: " +
- Integer.toHexString(ib1[i]) + " " +
- Integer.toHexString(ib2[i]));
+ Integer.toHexString(ib1[i]) + " " +
+ Integer.toHexString(ib2[i]));
return false;
}
}
@@ -213,7 +233,8 @@
private static int[] getImageData(Image image) {
int width = image.getWidth(null);
int height = image.getHeight(null);
- BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
+ BufferedImage bimage =
+ new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bimage.createGraphics();
try {
g2d.drawImage(image, 0, 0, width, height, null);
@@ -247,8 +268,8 @@
};
new DragSource().createDefaultDragGestureRecognizer(frame,
- DnDConstants.ACTION_COPY,
- dge -> dge.startDrag(null, new ImageSelection(image), dsl));
+ DnDConstants.ACTION_COPY,
+ dge -> dge.startDrag(null, new ImageSelection(image), dsl));
leaveFormat(formats[fi]);
}
@@ -261,12 +282,15 @@
class ImageDropTarget extends ImageTransferer {
private final Robot robot;
+ private static ImageDropTarget idt;
private static Point startPoint, endPoint = new Point(250, 150);
+ private static int dropCount = 0;
ImageDropTarget() throws AWTException {
DropTargetAdapter dropTargetAdapter = new DropTargetAdapter() {
@Override
public void drop(DropTargetDropEvent dtde) {
+ dropCount++;
checkImage(dtde);
startImageDrag();
}
@@ -299,7 +323,8 @@
dtde.dropComplete(true);
notifyTransferSuccess(true);
} else {
- System.err.println("transferred image is different from initial image");
+ System.err.println("transferred image is different from" +
+ " initial image");
dtde.dropComplete(false);
notifyTransferSuccess(false);
}
@@ -317,6 +342,9 @@
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
+ if (idt.frame != null) {
+ idt.frame.dispose();
+ }
e.printStackTrace();
// Exit from the child process
System.exit(1);
@@ -324,7 +352,9 @@
robot.mouseMove(startPoint.x, startPoint.y);
robot.mousePress(InputEvent.BUTTON1_MASK);
for (Point p = new Point(startPoint); !p.equals(endPoint);
- p.translate(sign(endPoint.x - p.x), sign(endPoint.y - p.y))) {
+ p.translate(sign(endPoint.x - p.x),
+ sign(endPoint.y - p.y)))
+ {
robot.mouseMove(p.x, p.y);
try {
Thread.sleep(50);
@@ -341,6 +371,9 @@
if (status) {
System.err.println("format passed: " + formats[fi]);
} else {
+ if (idt.frame != null) {
+ idt.frame.dispose();
+ }
System.err.println("format failed: " + formats[fi]);
System.exit(1);
}
@@ -359,13 +392,15 @@
}
- public static void main(String[] args) {
+ public static void main(String[] args) throws Exception {
+ idt = new ImageDropTarget();
try {
- ImageDropTarget idt = new ImageDropTarget();
+ idt.frame.setUndecorated(true);
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
- startPoint = new Point(Integer.parseInt(args[2]), Integer.parseInt(args[3]));
+ startPoint = new Point(Integer.parseInt(args[2]),
+ Integer.parseInt(args[3]));
idt.formats = new String[args.length - 4];
System.arraycopy(args, 4, idt.formats, 0, args.length - 4);
@@ -376,7 +411,23 @@
Util.sync();
idt.startImageDrag();
+ new Thread(() -> {
+ try {
+ Thread.sleep(120000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ if (dropCount == 0) {
+ if (idt.frame != null) {
+ idt.frame.dispose();
+ }
+ System.exit(1);
+ }
+ }).start();
} catch (Throwable e) {
+ if (idt.frame != null) {
+ idt.frame.dispose();
+ }
e.printStackTrace();
System.exit(1);
}
@@ -407,7 +458,9 @@
}
@Override
- public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
+ public Object getTransferData(DataFlavor flavor)
+ throws UnsupportedFlavorException
+ {
if (flavor.equals(flavors[IMAGE])) {
return data;
} else {
@@ -415,3 +468,4 @@
}
}
}
+
--- a/test/jdk/java/awt/font/TextLayout/TestAATMorxFont.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/font/TextLayout/TestAATMorxFont.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
*/
/* @test
+ * @key headful
* @summary verify rendering of MORX fonts on OS X.
* @bug 8031462
*/
--- a/test/jdk/java/awt/image/MultiResolutionImageCommonTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/image/MultiResolutionImageCommonTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -34,7 +34,8 @@
import java.awt.image.MultiResolutionImage;
/**
- * @test @bug 8011059
+ * @test
+ * @bug 8011059
* @author Alexander Scherbatiy
* @summary Test MultiResolution image loading and painting with various scaling
* combinations
--- a/test/jdk/java/awt/image/MultiResolutionImageTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/image/MultiResolutionImageTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -40,7 +40,8 @@
import java.awt.image.MultiResolutionImage;
/**
- * @test @bug 8011059
+ * @test
+ * @bug 8011059
* @key headful
* @author Alexander Scherbatiy
* @summary [macosx] Make JDK demos look perfect on retina displays
--- a/test/jdk/java/awt/print/PrinterJob/DeviceScale.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/print/PrinterJob/DeviceScale.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/* @test 1.2 02/05/15
@bug 4810363 4924441
+ @key printer
@run main DeviceScale
@summary check the peek scale is the same as the device scale, and that the
clips are also the same
--- a/test/jdk/java/awt/print/PrinterJob/DummyPrintTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/print/PrinterJob/DummyPrintTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/*
* @test
* @bug 6921664
+ * @key printer
* @summary Verifies number of copies and the job name are passed to a
* 3rd party PrintService.
* @run main DummyPrintTest
--- a/test/jdk/java/awt/print/PrinterJob/HeadlessPrintingTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/print/PrinterJob/HeadlessPrintingTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/**
* @test
* @bug 4936867
+ * @key printer
* @summary Printing crashes in headless mode.
* @run main/othervm HeadlessPrintingTest
*/
--- a/test/jdk/java/awt/print/PrinterJob/PrintCrashTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/awt/print/PrinterJob/PrintCrashTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,7 +23,7 @@
/**
* @test
- * @key printer
+ * @key printer headful
* @bug 8163889
* @summary Printing crashes on OSX.
* @run main PrintCrashTest
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/CharSequence/Comparison.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.nio.CharBuffer;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @test
+ * @bug 8137326
+ * @summary Test to verify the compare method for the CharSequence class.
+ * @run testng Comparison
+ */
+public class Comparison {
+ static char SEP = ':';
+
+ static String[][] books = {
+ {"Biography", "Steve Jobs"},
+ {"Biography", "Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future"},
+ {"Law", "Law 101: Everything You Need to Know About American Law, Fourth Edition"},
+ {"Law", "The Tools of Argument: How the Best Lawyers Think, Argue, and Win"},
+ {"History", "The History Book (Big Ideas Simply Explained)"},
+ {"History", "A People's History of the United States"},
+ };
+
+ /**
+ * Verifies the compare method by comparing StringBuilder objects with String
+ * objects.
+ */
+ @Test
+ public void compareWithString() {
+ Set<StringBuilder> sbSet = constructSBSet();
+ Set<String> sSet = constructStringSet();
+ Iterator<StringBuilder> iSB = sbSet.iterator();
+ Iterator<String> iS = sSet.iterator();
+ while (iSB.hasNext()) {
+ int result = CharSequence.compare(iSB.next(), iS.next());
+
+ Assert.assertTrue(result == 0, "Comparing item by item");
+ }
+ }
+
+ /**
+ * Verify comparison between two CharSequence implementations, including String,
+ * StringBuffer and StringBuilder.
+ *
+ * Note: CharBuffer states that "A char buffer is not comparable to any other type of object."
+ */
+ @Test
+ public void testCompare() {
+ StringBuilder sb1 = generateTestBuilder(65, 70, 97, 102);
+ StringBuilder sb2 = generateTestBuilder(65, 70, 97, 102);
+ StringBuilder sb3 = generateTestBuilder(65, 71, 97, 103);
+
+ Assert.assertTrue(CharSequence.compare(sb1, sb2) == 0, "Compare between StringBuilders");
+ Assert.assertFalse(CharSequence.compare(sb1, sb3) == 0, "Compare between StringBuilders");
+
+ Assert.assertTrue(CharSequence.compare(sb1, sb2.toString()) == 0, "Compare between a StringBuilder and String");
+ Assert.assertFalse(CharSequence.compare(sb1, sb3.toString()) == 0, "Compare between a StringBuilder and String");
+
+ StringBuffer buf1 = generateTestBuffer(65, 70, 97, 102);
+ StringBuffer buf2 = generateTestBuffer(65, 70, 97, 102);
+ StringBuffer buf3 = generateTestBuffer(65, 71, 97, 103);
+
+ Assert.assertTrue(CharSequence.compare(buf1, buf2) == 0, "Compare between StringBuffers");
+ Assert.assertFalse(CharSequence.compare(buf1, buf3) == 0, "Compare between StringBuffers");
+
+ Assert.assertTrue(CharSequence.compare(sb1, buf2) == 0, "Compare between a StringBuilder and StringBuffer");
+ Assert.assertFalse(CharSequence.compare(sb1, buf3) == 0, "Compare between a StringBuilder and StringBuffer");
+
+ CharSequence cs1 = (CharSequence)buf1;
+ CharSequence cs2 = (CharSequence)sb1;
+ @SuppressWarnings("unchecked")
+ int result = ((Comparable<Object>)cs1).compareTo(buf2);
+ Assert.assertTrue(result == 0, "Compare between a StringBuilder and StringBuffer");
+ }
+
+
+ private Set<String> constructStringSet() {
+ Set<String> sSet = new TreeSet<>();
+ for (String[] book : books) {
+ sSet.add(book[0] + SEP + book[1]);
+ }
+ return sSet;
+ }
+
+ private Set<StringBuilder> constructSBSet() {
+ Set<StringBuilder> sbSet = new TreeSet<>();
+ for (String[] book : books) {
+ sbSet.add(new StringBuilder(book[0]).append(SEP).append(book[1]));
+ }
+ return sbSet;
+ }
+
+ private static StringBuilder generateTestBuilder(int from1, int to1,
+ int from2, int to2) {
+ StringBuilder aBuffer = new StringBuilder(50);
+
+ for (int i = from1; i < to1; i++) {
+ aBuffer.append((char)i);
+ }
+ for (int i = from2; i < to2; i++) {
+ aBuffer.append((char)i);
+ }
+ return aBuffer;
+ }
+
+ private static StringBuffer generateTestBuffer(int from1, int to1,
+ int from2, int to2) {
+ StringBuffer aBuffer = new StringBuffer(50);
+
+ for (int i = from1; i < to1; i++) {
+ aBuffer.append((char)i);
+ }
+ for (int i = from2; i < to2; i++) {
+ aBuffer.append((char)i);
+ }
+ return aBuffer;
+ }
+}
--- a/test/jdk/java/lang/String/CompactString/CompareTo.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/lang/String/CompactString/CompareTo.java Fri Mar 02 19:08:44 2018 +0100
@@ -28,8 +28,9 @@
/*
* @test
- * @bug 8077559
- * @summary Tests Compact String. This one is for String.compareTo.
+ * @bug 8077559 8137326
+ * @summary Tests Compact String. Verifies the compareTo method for String,
+ * StringBuilder and StringBuffer.
* @run testng/othervm -XX:+CompactStrings CompareTo
* @run testng/othervm -XX:-CompactStrings CompareTo
*/
@@ -91,4 +92,46 @@
source));
});
}
+
+ /*
+ * Runs the same test with StringBuilder
+ */
+ @Test(dataProvider = "provider")
+ public void testStringBuilder(String str, String anotherString, int expected) {
+ StringBuilder another = new StringBuilder(anotherString);
+ map.get(str)
+ .forEach(
+ (source, data) -> {
+ StringBuilder sb = new StringBuilder(data);
+ assertEquals(
+ sb.compareTo(another),
+ expected,
+ String.format(
+ "testing StringBuilder(%s).compareTo(%s), source : %s, ",
+ escapeNonASCIIs(data),
+ escapeNonASCIIs(anotherString),
+ source));
+ });
+ }
+
+ /*
+ * Runs the same test with StringBuffer
+ */
+ @Test(dataProvider = "provider")
+ public void testStringBuffer(String str, String anotherString, int expected) {
+ StringBuffer another = new StringBuffer(anotherString);
+ map.get(str)
+ .forEach(
+ (source, data) -> {
+ StringBuffer sb = new StringBuffer(data);
+ assertEquals(
+ sb.compareTo(another),
+ expected,
+ String.format(
+ "testing StringBuffer(%s).compareTo(%s), source : %s, ",
+ escapeNonASCIIs(data),
+ escapeNonASCIIs(anotherString),
+ source));
+ });
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/String/StringRepeat.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @summary This exercises String#repeat patterns and limits.
+ * @run main/othervm -Xmx4G StringRepeat
+ */
+
+import java.nio.CharBuffer;
+
+public class StringRepeat {
+ public static void main(String... arg) {
+ test1();
+ test2();
+ }
+
+ /*
+ * Varitions of repeat count.
+ */
+ static int[] REPEATS = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 32, 64, 128, 256, 512, 1024, 64 * 1024, 1024 * 1024,
+ 16 * 1024 * 1024
+ };
+
+ /*
+ * Varitions of Strings.
+ */
+ static String[] STRINGS = new String[] {
+ "", "\0", " ", "a", "$", "\u2022",
+ "ab", "abc", "abcd", "abcde",
+ "The quick brown fox jumps over the lazy dog."
+ };
+
+ /*
+ * Repeat String function tests.
+ */
+ static void test1() {
+ for (int repeat : REPEATS) {
+ for (String string : STRINGS) {
+ long limit = (long)string.length() * (long)repeat;
+
+ if ((long)(Integer.MAX_VALUE >> 1) <= limit) {
+ break;
+ }
+
+ verify(string.repeat(repeat), string, repeat);
+ }
+ }
+ }
+
+ /*
+ * Repeat String exception tests.
+ */
+ static void test2() {
+ try {
+ "abc".repeat(-1);
+ throw new RuntimeException("No exception for negative repeat count");
+ } catch (IllegalArgumentException ex) {
+ // Correct
+ }
+
+ try {
+ "abc".repeat(Integer.MAX_VALUE - 1);
+ throw new RuntimeException("No exception for large repeat count");
+ } catch (OutOfMemoryError ex) {
+ // Correct
+ }
+ }
+
+ static String truncate(String string) {
+ if (string.length() < 80) {
+ return string;
+ }
+ return string.substring(0, 80) + "...";
+ }
+
+ /*
+ * Verify string repeat patterns.
+ */
+ static void verify(String result, String string, int repeat) {
+ if (string.isEmpty() || repeat == 0) {
+ if (!result.isEmpty()) {
+ System.err.format("\"%s\".repeat(%d)%n", truncate(string), repeat);
+ System.err.format("Result \"%s\"%n", truncate(result));
+ System.err.format("Result expected to be empty, found string of length %d%n", result.length());
+ throw new RuntimeException();
+ }
+ } else {
+ int expected = 0;
+ int count = 0;
+ for (int offset = result.indexOf(string, expected);
+ 0 <= offset;
+ offset = result.indexOf(string, expected)) {
+ count++;
+ if (offset != expected) {
+ System.err.format("\"%s\".repeat(%d)%n", truncate(string), repeat);
+ System.err.format("Result \"%s\"%n", truncate(result));
+ System.err.format("Repeat expected at %d, found at = %d%n", expected, offset);
+ throw new RuntimeException();
+ }
+ expected += string.length();
+ }
+ if (count != repeat) {
+ System.err.format("\"%s\".repeat(%d)%n", truncate(string), repeat);
+ System.err.format("Result \"%s\"%n", truncate(result));
+ System.err.format("Repeat count expected to be %d, found %d%n", repeat, count);
+ throw new RuntimeException();
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/StringBuffer/Comparison.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @test
+ * @bug 8137326
+ * @summary Test to verify the Comparable implementation for the StringBuffer class.
+ * @run testng Comparison
+ */
+public class Comparison {
+ static char SEP = ':';
+
+ static String[][] books = {
+ {"Biography", "Steve Jobs"},
+ {"Biography", "Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future"},
+ {"Law", "Law 101: Everything You Need to Know About American Law, Fourth Edition"},
+ {"Law", "The Tools of Argument: How the Best Lawyers Think, Argue, and Win"},
+ {"History", "The History Book (Big Ideas Simply Explained)"},
+ {"History", "A People's History of the United States"},
+ };
+
+ /**
+ * Verifies the Comparable implementation by comparing with two TreeSet that
+ * contain either StringBuffer or String.
+ */
+ @Test
+ public void compareWithString() {
+ Set<StringBuffer> sbSet = constructSBSet();
+ Set<String> sSet = constructStringSet();
+ Iterator<StringBuffer> iSB = sbSet.iterator();
+ Iterator<String> iS = sSet.iterator();
+ while (iSB.hasNext()) {
+ String temp1 = iSB.next().toString();
+ System.out.println(temp1);
+ String temp2 = iS.next();
+ System.out.println(temp2);
+
+ Assert.assertTrue(temp1.equals(temp2), "Comparing item by item");
+ }
+
+ }
+
+ /**
+ * Compares between StringBuffers
+ */
+ @Test
+ public void testCompare() {
+ StringBuffer sb1 = generateTestBuffer(65, 70, 97, 102);
+ StringBuffer sb2 = generateTestBuffer(65, 70, 97, 102);
+ StringBuffer sb3 = generateTestBuffer(65, 71, 97, 103);
+
+ System.out.println(sb1.toString());
+ System.out.println(sb2.toString());
+ System.out.println(sb3.toString());
+ Assert.assertTrue(sb1.compareTo(sb2) == 0, "Compare sb1 and sb2");
+ Assert.assertFalse(sb1.compareTo(sb3) == 0, "Compare sb1 and sb3");
+ }
+
+ /**
+ * Verifies that the comparison is from index 0 to length() - 1 of the two
+ * character sequences.
+ */
+ @Test
+ public void testModifiedSequence() {
+ StringBuffer sb1 = generateTestBuffer(65, 70, 97, 102);
+ StringBuffer sb2 = generateTestBuffer(65, 70, 98, 103);
+
+ // contain different character sequences
+ Assert.assertFalse(sb1.compareTo(sb2) == 0, "Compare the sequences before truncation");
+
+ // the first 5 characters however are the same
+ sb1.setLength(5);
+ sb2.setLength(5);
+
+ System.out.println(sb1.toString());
+ System.out.println(sb2.toString());
+
+ Assert.assertTrue(sb1.compareTo(sb2) == 0, "Compare sb1 and sb2");
+ Assert.assertTrue(sb1.toString().compareTo(sb2.toString()) == 0, "Compare strings of sb1 and sb2");
+ }
+
+ private Set<String> constructStringSet() {
+ Set<String> sSet = new TreeSet<>();
+ for (String[] book : books) {
+ sSet.add(book[0] + SEP + book[1]);
+ }
+ return sSet;
+ }
+
+ private Set<StringBuffer> constructSBSet() {
+ Set<StringBuffer> sbSet = new TreeSet<>();
+ for (String[] book : books) {
+ sbSet.add(new StringBuffer(book[0]).append(SEP).append(book[1]));
+ }
+ return sbSet;
+ }
+
+ private static StringBuffer generateTestBuffer(int from1, int to1,
+ int from2, int to2) {
+ StringBuffer aBuffer = new StringBuffer(50);
+
+ for (int i = from1; i < to1; i++) {
+ aBuffer.append((char)i);
+ }
+ for (int i = from2; i < to2; i++) {
+ aBuffer.append((char)i);
+ }
+ return aBuffer;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/StringBuilder/Comparison.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @test
+ * @bug 8137326
+ * @summary Test to verify the Comparable implementation for the StringBuilder class.
+ * @run testng Comparison
+ */
+public class Comparison {
+ static char SEP = ':';
+
+ static String[][] books = {
+ {"Biography", "Steve Jobs"},
+ {"Biography", "Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future"},
+ {"Law", "Law 101: Everything You Need to Know About American Law, Fourth Edition"},
+ {"Law", "The Tools of Argument: How the Best Lawyers Think, Argue, and Win"},
+ {"History", "The History Book (Big Ideas Simply Explained)"},
+ {"History", "A People's History of the United States"},
+ };
+
+ /**
+ * Verifies the Comparable implementation by comparing with two TreeSet that
+ * contain either StringBuilder or String.
+ */
+ @Test
+ public void compareWithString() {
+ Set<StringBuilder> sbSet = constructSBSet();
+ Set<String> sSet = constructStringSet();
+ Iterator<StringBuilder> iSB = sbSet.iterator();
+ Iterator<String> iS = sSet.iterator();
+ while (iSB.hasNext()) {
+ String temp1 = iSB.next().toString();
+ System.out.println(temp1);
+ String temp2 = iS.next();
+ System.out.println(temp2);
+
+ Assert.assertTrue(temp1.equals(temp2), "Comparing item by item");
+ }
+
+ }
+
+ /**
+ * Compares between StringBuilders
+ */
+ @Test
+ public void testCompare() {
+ StringBuilder sb1 = generateTestBuffer(65, 70, 97, 102);
+ StringBuilder sb2 = generateTestBuffer(65, 70, 97, 102);
+ StringBuilder sb3 = generateTestBuffer(65, 71, 97, 103);
+
+ System.out.println(sb1.toString());
+ System.out.println(sb2.toString());
+ System.out.println(sb3.toString());
+ Assert.assertTrue(sb1.compareTo(sb2) == 0, "Compare sb1 and sb2");
+ Assert.assertFalse(sb1.compareTo(sb3) == 0, "Compare sb1 and sb3");
+ }
+
+ /**
+ * Verifies that the comparison is from index 0 to length() - 1 of the two
+ * character sequences.
+ */
+ @Test
+ public void testModifiedSequence() {
+ StringBuilder sb1 = generateTestBuffer(65, 70, 97, 102);
+ StringBuilder sb2 = generateTestBuffer(65, 70, 98, 103);
+
+ // contain different character sequences
+ Assert.assertFalse(sb1.compareTo(sb2) == 0, "Compare the sequences before truncation");
+
+ // the first 5 characters however are the same
+ sb1.setLength(5);
+ sb2.setLength(5);
+
+ System.out.println(sb1.toString());
+ System.out.println(sb2.toString());
+
+ Assert.assertTrue(sb1.compareTo(sb2) == 0, "Compare sb1 and sb2");
+ Assert.assertTrue(sb1.toString().compareTo(sb2.toString()) == 0, "Compare strings of sb1 and sb2");
+ }
+
+ private Set<String> constructStringSet() {
+ Set<String> sSet = new TreeSet<>();
+ for (String[] book : books) {
+ sSet.add(book[0] + SEP + book[1]);
+ }
+ return sSet;
+ }
+
+ private Set<StringBuilder> constructSBSet() {
+ Set<StringBuilder> sbSet = new TreeSet<>();
+ for (String[] book : books) {
+ sbSet.add(new StringBuilder(book[0]).append(SEP).append(book[1]));
+ }
+ return sbSet;
+ }
+
+ private static StringBuilder generateTestBuffer(int from1, int to1,
+ int from2, int to2) {
+ StringBuilder aBuffer = new StringBuilder(50);
+
+ for (int i = from1; i < to1; i++) {
+ aBuffer.append((char)i);
+ }
+ for (int i = from2; i < to2; i++) {
+ aBuffer.append((char)i);
+ }
+ return aBuffer;
+ }
+}
--- a/test/jdk/java/net/URLClassLoader/NullURLTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/net/URLClassLoader/NullURLTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -71,14 +71,14 @@
} catch (NullPointerException e) {
// expected
}
- // This section should be uncommented if 8026517 is fixed.
-// try {
-// loader = new URLClassLoader(invalidURLArray);
-// System.err.println("URLClassLoader(invalidURLArray) did not throw NPE");
-// failures++;
-// } catch (NullPointerException e) {
-// // expected
-// }
+
+ try {
+ loader = new URLClassLoader(invalidURLArray);
+ System.err.println("URLClassLoader(invalidURLArray) did not throw NPE");
+ failures++;
+ } catch (NullPointerException e) {
+ // expected
+ }
try {
loader = new URLClassLoader(validURLArray, null);
@@ -93,14 +93,14 @@
} catch (NullPointerException e) {
// expected
}
- // This section should be uncommented if 8026517 is fixed.
-// try {
-// loader = new URLClassLoader(invalidURLArray, null);
-// System.err.println("URLClassLoader(invalidURLArray, null) did not throw NPE");
-// failures++;
-// } catch (NullPointerException e) {
-// // expected
-// }
+
+ try {
+ loader = new URLClassLoader(invalidURLArray, null);
+ System.err.println("URLClassLoader(invalidURLArray, null) did not throw NPE");
+ failures++;
+ } catch (NullPointerException e) {
+ // expected
+ }
try {
loader = new URLClassLoader(validURLArray, null, null);
@@ -115,14 +115,14 @@
} catch (NullPointerException e) {
// expected
}
- // This section should be uncommented if 8026517 is fixed.
-// try {
-// loader = new URLClassLoader(invalidURLArray, null, null);
-// System.err.println("URLClassLoader(invalidURLArray, null, null) did not throw NPE");
-// failures++;
-// } catch (NullPointerException e) {
-// // expected
-// }
+
+ try {
+ loader = new URLClassLoader(invalidURLArray, null, null);
+ System.err.println("URLClassLoader(invalidURLArray, null, null) did not throw NPE");
+ failures++;
+ } catch (NullPointerException e) {
+ // expected
+ }
try {
loader = URLClassLoader.newInstance(validURLArray);
@@ -137,14 +137,14 @@
} catch (NullPointerException e) {
// expected
}
- // This section should be uncommented if 8026517 is fixed.
-// try {
-// loader = URLClassLoader.newInstance(invalidURLArray);
-// System.err.println("URLClassLoader.newInstance(invalidURLArray) did not throw NPE");
-// failures++;
-// } catch (NullPointerException e) {
-// // expected
-// }
+
+ try {
+ loader = URLClassLoader.newInstance(invalidURLArray);
+ System.err.println("URLClassLoader.newInstance(invalidURLArray) did not throw NPE");
+ failures++;
+ } catch (NullPointerException e) {
+ // expected
+ }
try {
loader = URLClassLoader.newInstance(validURLArray, null);
@@ -159,14 +159,14 @@
} catch (NullPointerException e) {
// expected
}
- // This section should be uncommented if 8026517 is fixed.
-// try {
-// loader = URLClassLoader.newInstance(invalidURLArray, null);
-// System.err.println("URLClassLoader.newInstance(invalidURLArray, null) did not throw NPE");
-// failures++;
-// } catch (NullPointerException e) {
-// // expected
-// }
+
+ try {
+ loader = URLClassLoader.newInstance(invalidURLArray, null);
+ System.err.println("URLClassLoader.newInstance(invalidURLArray, null) did not throw NPE");
+ failures++;
+ } catch (NullPointerException e) {
+ // expected
+ }
if (failures != 0) {
throw new Exception("URLClassLoader NullURLTest had "+failures+" failures!");
--- a/test/jdk/java/text/Normalizer/NormalizerAPITest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/java/text/Normalizer/NormalizerAPITest.java Fri Mar 02 19:08:44 2018 +0100
@@ -78,7 +78,7 @@
/*
* Check if normalize(null) throws NullPointerException as expected.
*/
- void Test_NullPointerException_java_normalize() {
+ public void Test_NullPointerException_java_normalize() {
boolean error = false;
/* Check null as String to be normalized */
@@ -107,7 +107,7 @@
/*
* Check if normalize(null) throws NullPointerException as expected.
*/
- void Test_NullPointerException_sun_normalize() {
+ public void Test_NullPointerException_sun_normalize() {
boolean error = false;
for (int j = 0; j < options.length; j++) {
@@ -138,7 +138,7 @@
/*
* Check if isNormalized(null) throws NullPointerException as expected.
*/
- void Test_NullPointerException_java_isNormalized() {
+ public void Test_NullPointerException_java_isNormalized() {
boolean error = false;
for (int i = 0; i < forms.length; i++) {
@@ -167,7 +167,7 @@
/*
* Check if isNormalized(null) throws NullPointerException as expected.
*/
- void Test_NullPointerException_sun_isNormalized() {
+ public void Test_NullPointerException_sun_isNormalized() {
boolean error = false;
for (int j = 0; j < options.length; j++) {
@@ -199,7 +199,7 @@
* Check if isNormalized("") doesn't throw NullPointerException and returns
* "" as expected.
*/
- void Test_No_NullPointerException_java_normalize() {
+ public void Test_No_NullPointerException_java_normalize() {
boolean error = false;
for (int i = 0; i < forms.length; i++) {
@@ -223,7 +223,7 @@
* Check if isNormalized("") doesn't throw NullPointerException and returns
* "" as expected.
*/
- void Test_No_NullPointerException_sun_normalize() {
+ public void Test_No_NullPointerException_sun_normalize() {
boolean error = false;
for (int j = 0; j < options.length; j++) {
@@ -248,7 +248,7 @@
* Check if isNormalized("") doesn't throw NullPointerException and returns
* "" as expected.
*/
- void Test_No_NullPointerException_java_isNormalized() {
+ public void Test_No_NullPointerException_java_isNormalized() {
boolean error = false;
for (int i = 0; i < forms.length; i++) {
@@ -271,7 +271,7 @@
* Check if isNormalized("") doesn't throw NullPointerException and returns
* "" as expected.
*/
- void Test_No_NullPointerException_sun_isNormalized() {
+ public void Test_No_NullPointerException_sun_isNormalized() {
boolean error = false;
for (int j = 0; j < options.length; j++) {
@@ -296,7 +296,7 @@
* Check if normalize() and isNormalized() work as expected for every
* known class which implement CharSequence Interface.
*/
- void Test_CharSequence() {
+ public void Test_CharSequence() {
check_CharSequence(String.valueOf(inputData),
String.valueOf(outputData));
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/util/jar/Manifest/LineBreakLineWidth.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,284 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
+import java.util.jar.Attributes.Name;
+
+import org.testng.annotations.Test;
+import static org.testng.Assert.*;
+
+/**
+ * @test
+ * @bug 6372077
+ * @run testng LineBreakLineWidth
+ * @summary write valid manifests with respect to line breaks
+ * and read any line width
+ */
+public class LineBreakLineWidth {
+
+ /**
+ * maximum header name length from {@link Name#isValid(String)}
+ * not including the name-value delimiter <code>": "</code>
+ */
+ final static int MAX_HEADER_NAME_LENGTH = 70;
+
+ /**
+ * range of one..{@link #TEST_WIDTH_RANGE} covered in this test that
+ * exceeds the range of allowed header name lengths or line widths
+ * in order to also cover invalid cases beyond the valid boundaries
+ * and to keep it somewhat independent from the actual manifest width.
+ * <p>
+ * bigger than 72 (maximum manifest header line with in bytes (not utf-8
+ * encoded characters) but otherwise arbitrarily chosen
+ */
+ final static int TEST_WIDTH_RANGE = 123;
+
+ /**
+ * tests if only valid manifest files can written depending on the header
+ * name length or that an exception occurs already on the attempt to write
+ * an invalid one otherwise and that no invalid manifest can be written.
+ * <p>
+ * due to bug JDK-6372077 it was possible to write a manifest that could
+ * not be read again. independent of the actual manifest line width, such
+ * a situation should never happen, which is the subject of this test.
+ */
+ @Test
+ public void testWriteValidManifestOrException() throws IOException {
+ /*
+ * multi-byte utf-8 characters cannot occur in header names,
+ * only in values which are not subject of this test here.
+ * hence, each character in a header name uses exactly one byte and
+ * variable length utf-8 character encoding doesn't affect this test.
+ */
+
+ String name = "";
+ for (int l = 1; l <= TEST_WIDTH_RANGE; l++) {
+ name += "x";
+ System.out.println("name = " + name + ", "
+ + "name.length = " + name.length());
+
+ if (l <= MAX_HEADER_NAME_LENGTH) {
+ writeValidManifest(name, "somevalue");
+ } else {
+ writeInvalidManifestThrowsException(name, "somevalue");
+ }
+ }
+ }
+
+ static void writeValidManifest(String name, String value)
+ throws IOException {
+ byte[] mfBytes = writeManifest(name, value);
+ Manifest mf = new Manifest(new ByteArrayInputStream(mfBytes));
+ assertMainAndSectionValues(mf, name, value);
+ }
+
+ static void writeInvalidManifestThrowsException(String name, String value)
+ throws IOException {
+ try {
+ writeManifest(name, value);
+ } catch (IllegalArgumentException e) {
+ // no invalid manifest was produced which is considered acceptable
+ return;
+ }
+
+ fail("no error writing manifest considered invalid");
+ }
+
+ /**
+ * tests that manifest files can be read even if the line breaks are
+ * placed in different positions than where the current JDK's
+ * {@link Manifest#write(java.io.OutputStream)} would have put it provided
+ * the manifest is valid otherwise.
+ * <p>
+ * the <a href="{@docRoot}/../specs/jar/jar.html#Notes_on_Manifest_and_Signature_Files">
+ * "Notes on Manifest and Signature Files" in the "JAR File
+ * Specification"</a> state that "no line may be longer than 72 bytes
+ * (not characters), in its utf8-encoded form." but allows for earlier or
+ * additional line breaks.
+ * <p>
+ * the most important purpose of this test case is probably to make sure
+ * that manifest files broken at 70 bytes line width written with the
+ * previous version of {@link Manifest} before this fix still work well.
+ */
+ @Test
+ public void testReadDifferentLineWidths() throws IOException {
+ /*
+ * uses only one-byte utf-8 encoded characters as values.
+ * correctly breaking multi-byte utf-8 encoded characters
+ * would be subject of another test if there was one such.
+ */
+
+ // w: line width
+ // 6 minimum required for section names starting with "Name: "
+ for (int w = 6; w <= TEST_WIDTH_RANGE; w++) {
+
+ // ln: header name length
+ String name = "";
+ // - 2 due to the delimiter ": " that has to fit on the same
+ // line as the name
+ for (int ln = 1; ln <= w - 2; ln++) {
+ name += "x";
+
+ // lv: value length
+ String value = "";
+ for (int lv = 1; lv <= TEST_WIDTH_RANGE; lv++) {
+ value += "y";
+ }
+
+ System.out.println("lineWidth = " + w);
+ System.out.println("name = " + name + ""
+ + ", name.length = " + name.length());
+ System.out.println("value = " + value + ""
+ + ", value.length = " + value.length());
+
+ readSpecificLineWidthManifest(name, value, w);
+ }
+ }
+ }
+
+ static void readSpecificLineWidthManifest(String name, String value,
+ int lineWidth) throws IOException {
+ /*
+ * breaking header names is not allowed and hence cannot be reasonably
+ * tested. it cannot easily be helped, that invalid manifest files
+ * written by the previous Manifest version implementation are illegal
+ * if the header name is 69 or 70 bytes and in that case the name/value
+ * delimiter ": " was broken on a new line.
+ *
+ * changing the line width in Manifest#make72Safe(StringBuffer),
+ * however, also affects at which positions values are broken across
+ * lines (should always have affected values only and never header
+ * names or the delimiter) which is tested here.
+ *
+ * ideally, any previous Manifest implementation would have been used
+ * here to provide manifest files to test reading but these are no
+ * longer available in this version's sources and there might as well
+ * be other libraries writing manifests. Therefore, in order to be able
+ * to test any manifest file considered valid with respect to line
+ * breaks that could not possibly be produced with the current Manifest
+ * implementation, this test provides its own manifests in serialized
+ * form.
+ */
+ String lineBrokenSectionName = breakLines(lineWidth, "Name: " + name);
+ String lineBrokenNameAndValue = breakLines(lineWidth, name + ": " + value);
+
+ ByteArrayOutputStream mfBuf = new ByteArrayOutputStream();
+ mfBuf.write("Manifest-Version: 1.0".getBytes(UTF_8));
+ mfBuf.write("\r\n".getBytes(UTF_8));
+ mfBuf.write(lineBrokenNameAndValue.getBytes(UTF_8));
+ mfBuf.write("\r\n".getBytes(UTF_8));
+ mfBuf.write("\r\n".getBytes(UTF_8));
+ mfBuf.write(lineBrokenSectionName.getBytes(UTF_8));
+ mfBuf.write("\r\n".getBytes(UTF_8));
+ mfBuf.write(lineBrokenNameAndValue.getBytes(UTF_8));
+ mfBuf.write("\r\n".getBytes(UTF_8));
+ mfBuf.write("\r\n".getBytes(UTF_8));
+ byte[] mfBytes = mfBuf.toByteArray();
+ printManifest(mfBytes);
+
+ boolean nameValid = name.length() <= MAX_HEADER_NAME_LENGTH;
+
+ Manifest mf;
+ try {
+ mf = new Manifest(new ByteArrayInputStream(mfBytes));
+ } catch (IOException e) {
+ if (!nameValid &&
+ e.getMessage().startsWith("invalid header field")) {
+ // expected because the name is not valid
+ return;
+ }
+
+ throw new AssertionError(e.getMessage(), e);
+ }
+
+ assertTrue(nameValid, "failed to detect invalid manifest");
+
+ assertMainAndSectionValues(mf, name, value);
+ }
+
+ static String breakLines(int lineWidth, String nameAndValue) {
+ String lineBrokenNameAndValue = "";
+ int charsOnLastLine = 0;
+ for (int i = 0; i < nameAndValue.length(); i++) {
+ lineBrokenNameAndValue += nameAndValue.substring(i, i + 1);
+ charsOnLastLine++;
+ if (0 < i && i < nameAndValue.length() - 1
+ && charsOnLastLine == lineWidth) {
+ lineBrokenNameAndValue += "\r\n ";
+ charsOnLastLine = 1;
+ }
+ }
+ return lineBrokenNameAndValue;
+ }
+
+ static byte[] writeManifest(String name, String value) throws IOException {
+ /*
+ * writing manifest main headers is implemented separately from
+ * writing named sections manifest headers:
+ * - java.util.jar.Attributes.writeMain(DataOutputStream)
+ * - java.util.jar.Attributes.write(DataOutputStream)
+ * which is why this is also covered separately in this test by
+ * always adding the same value twice, in the main attributes as
+ * well as in a named section (using the header name also as the
+ * section name).
+ */
+
+ Manifest mf = new Manifest();
+ mf.getMainAttributes().put(Name.MANIFEST_VERSION, "1.0");
+ mf.getMainAttributes().putValue(name, value);
+
+ Attributes section = new Attributes();
+ section.putValue(name, value);
+ mf.getEntries().put(name, section);
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ mf.write(out);
+ byte[] mfBytes = out.toByteArray();
+ printManifest(mfBytes);
+ return mfBytes;
+ }
+
+ private static void printManifest(byte[] mfBytes) {
+ final String sepLine = "----------------------------------------------"
+ + "---------------------|-|-|"; // |-positions: ---68-70-72
+ System.out.println(sepLine);
+ System.out.print(new String(mfBytes, UTF_8));
+ System.out.println(sepLine);
+ }
+
+ private static void assertMainAndSectionValues(Manifest mf, String name,
+ String value) {
+ String mainValue = mf.getMainAttributes().getValue(name);
+ String sectionValue = mf.getAttributes(name).getValue(name);
+
+ assertEquals(value, mainValue, "value different in main section");
+ assertEquals(value, sectionValue, "value different in named section");
+ }
+
+}
--- a/test/jdk/javax/accessibility/AccessibilityProvider/basic.sh Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/accessibility/AccessibilityProvider/basic.sh Fri Mar 02 19:08:44 2018 +0100
@@ -21,6 +21,7 @@
# questions.
#
# @test
+# @key headful
# @bug 8055160
# @summary Unit test for javax.accessibility.AccessibilitySPI
#
--- a/test/jdk/javax/imageio/plugins/shared/ImageWriterCompressionTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/imageio/plugins/shared/ImageWriterCompressionTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -42,7 +42,8 @@
import javax.imageio.stream.ImageOutputStream;
/**
- * @test @bug 6488522
+ * @test
+ * @bug 6488522
* @summary Check the compression support in imageio ImageWriters
* @run main ImageWriterCompressionTest
*/
--- a/test/jdk/javax/print/PrintServiceLookup/CountPrintServices.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/print/PrintServiceLookup/CountPrintServices.java Fri Mar 02 19:08:44 2018 +0100
@@ -32,6 +32,7 @@
/*
* @test
* @bug 8032693
+ * @key printer
* @summary Test that lpstat and JDK agree whether there are printers.
*/
public class CountPrintServices {
--- a/test/jdk/javax/print/attribute/ChromaticityValues.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/print/attribute/ChromaticityValues.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,8 @@
/*
* @test
* @bug 4446106
+ * @key printer
+ * @requires (os.family == "windows")
* @summary Test for chromaticity values.
* @run main ChromaticityValues
*/
--- a/test/jdk/javax/swing/ClientProperty/UIClientPropertyKeyTest/UIClientPropertyKeyTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/ClientProperty/UIClientPropertyKeyTest/UIClientPropertyKeyTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -92,8 +92,10 @@
try {
UIManager.setLookAndFeel(laf.getClassName());
System.out.println("LookAndFeel: " + laf.getClassName());
+ } catch (final UnsupportedLookAndFeelException ignored){
+ System.out.println("Unsupported LookAndFeel: " + laf.getClassName());
} catch (ClassNotFoundException | InstantiationException |
- UnsupportedLookAndFeelException | IllegalAccessException e) {
+ IllegalAccessException e) {
throw new RuntimeException(e);
}
}
--- a/test/jdk/javax/swing/GroupLayout/7071166/bug7071166.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/GroupLayout/7071166/bug7071166.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,9 +28,22 @@
* @author Pavel Porvatov
*/
-import javax.swing.*;
-import static javax.swing.SwingConstants.*;
-import java.awt.*;
+import java.awt.Container;
+
+import javax.swing.JButton;
+import javax.swing.LayoutStyle;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+import static javax.swing.SwingConstants.EAST;
+import static javax.swing.SwingConstants.NORTH;
+import static javax.swing.SwingConstants.NORTH_EAST;
+import static javax.swing.SwingConstants.NORTH_WEST;
+import static javax.swing.SwingConstants.SOUTH;
+import static javax.swing.SwingConstants.SOUTH_EAST;
+import static javax.swing.SwingConstants.SOUTH_WEST;
+import static javax.swing.SwingConstants.WEST;
public class bug7071166 {
private static final int[] POSITIONS = {NORTH, EAST, SOUTH, WEST, // valid positions
@@ -38,8 +51,11 @@
public static void main(String[] args) throws Exception {
for (UIManager.LookAndFeelInfo lookAndFeelInfo : UIManager.getInstalledLookAndFeels()) {
- UIManager.setLookAndFeel(lookAndFeelInfo.getClassName());
-
+ try {
+ UIManager.setLookAndFeel(lookAndFeelInfo.getClassName());
+ } catch (final UnsupportedLookAndFeelException ignored) {
+ continue;
+ }
System.out.println("LookAndFeel: " + lookAndFeelInfo.getName());
SwingUtilities.invokeAndWait(new Runnable() {
--- a/test/jdk/javax/swing/JComboBox/6632953/bug6632953.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JComboBox/6632953/bug6632953.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
import javax.swing.JComboBox;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.metal.MetalComboBoxUI;
public class bug6632953 {
@@ -43,6 +44,8 @@
: UIManager.getInstalledLookAndFeels()) {
try {
UIManager.setLookAndFeel(lafInfo.getClassName());
+ } catch (UnsupportedLookAndFeelException ignored) {
+ continue;
} catch (Exception e) {
throw new RuntimeException(e);
}
--- a/test/jdk/javax/swing/JComboBox/7082443/bug7082443.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JComboBox/7082443/bug7082443.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,8 +36,11 @@
public static void main(String[] args) throws Exception {
for (UIManager.LookAndFeelInfo lookAndFeelInfo : UIManager.getInstalledLookAndFeels()) {
if (lookAndFeelInfo.getClassName().contains(GTK_LAF_CLASS)) {
- UIManager.setLookAndFeel(lookAndFeelInfo.getClassName());
-
+ try {
+ UIManager.setLookAndFeel(lookAndFeelInfo.getClassName());
+ } catch (final UnsupportedLookAndFeelException ignored) {
+ continue;
+ }
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
--- a/test/jdk/javax/swing/JEditorPane/8080972/TestJEditor.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JEditorPane/8080972/TestJEditor.java Fri Mar 02 19:08:44 2018 +0100
@@ -40,6 +40,7 @@
* @summary Audit Core Reflection in module java.desktop for places that will
* require changes to work with modules
* @author Alexander Scherbatiy
+ * @run main/othervm TestJEditor
*/
public class TestJEditor {
--- a/test/jdk/javax/swing/JEditorPane/bug4714674.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JEditorPane/bug4714674.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,7 +27,7 @@
@author Peter Zhelezniakov
@modules java.desktop
jdk.httpserver
- @run main bug4714674
+ @run main/othervm bug4714674
*/
import javax.swing.*;
--- a/test/jdk/javax/swing/JFileChooser/6489130/bug6489130.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFileChooser/6489130/bug6489130.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,6 +22,7 @@
*/
/* @test
+ * @key headful
* @bug 6489130
* @summary FileChooserDemo hung by keeping pressing Enter key
* @author Pavel Porvatov
--- a/test/jdk/javax/swing/JFileChooser/6520101/bug6520101.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFileChooser/6520101/bug6520101.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,7 +22,7 @@
*/
/*
- * @test @(#)bug6520101
+ * @test
* @key headful
* @bug 6520101
* @summary JFileChooser throws OOM in 1.4.2, 5.0u4 and 1.6.0
--- a/test/jdk/javax/swing/JFileChooser/6868611/bug6868611.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFileChooser/6868611/bug6868611.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,73 +21,74 @@
* questions.
*/
-/* @test
- @bug 6868611
- @summary FileSystemView throws NullPointerException
- @author Pavel Porvatov
- @run main bug6868611
-*/
+/*
+ * @test
+ * @bug 6868611 8198004
+ * @summary FileSystemView throws NullPointerException
+ * @author Pavel Porvatov
+ * @run main bug6868611
+ */
import javax.swing.*;
import javax.swing.filechooser.FileSystemView;
import java.io.File;
+import java.nio.file.Files;
public class bug6868611 {
private static final int COUNT = 1000;
+ private static File tempFolder;
+ private static File files[] = new File[COUNT];
public static void main(String[] args) throws Exception {
- String tempDirProp = System.getProperty("java.io.tmpdir");
-
- final String tempDir = tempDirProp == null || !new File(tempDirProp).isDirectory() ?
- System.getProperty("user.home") : tempDirProp;
-
- System.out.println("Temp directory: " + tempDir);
+ int fileCount = 0;
+ try {
+ tempFolder = Files.createTempDirectory("temp_folder").toFile();
- // Create 1000 files
- for (int i = 0; i < 1000; i++) {
- new File(tempDir, "temp" + i).createNewFile();
- }
-
- // Init default FileSystemView
- SwingUtilities.invokeAndWait(new Runnable() {
- public void run() {
- FileSystemView.getFileSystemView().getFiles(new File(tempDir), false);
+ // Try creating 1000 files
+ for (fileCount = 0; fileCount < COUNT; fileCount++) {
+ files[fileCount] = new
+ File(tempFolder, "temp" + fileCount + ".txt");
+ files[fileCount].createNewFile();
}
- });
- for (int i = 0; i < COUNT; i++) {
- Thread thread = new MyThread(tempDir);
+ // Init default FileSystemView
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ FileSystemView.getFileSystemView().
+ getFiles(tempFolder, false);
+ }
+ });
- thread.start();
-
- Thread.sleep((long) (Math.random() * 100));
-
- thread.interrupt();
+ for (int i = 0; i < COUNT; i++) {
+ Thread thread = new MyThread(tempFolder);
- if (i % 100 == 0) {
- System.out.print("*");
- }
- }
+ thread.start();
+
+ Thread.sleep((long) (Math.random() * 100));
- System.out.println();
-
- // Remove 1000 files
- for (int i = 0; i < 1000; i++) {
- new File(tempDir, "temp" + i).delete();
+ thread.interrupt();
+ }
+ } finally {
+ // Remove created files
+ for (int i = 0; i < fileCount; i++) {
+ Files.delete(files[i].toPath());
+ }
+ Files.delete(tempFolder.toPath());
}
}
private static class MyThread extends Thread {
- private final String dir;
+ private final File dir;
- private MyThread(String dir) {
+ private MyThread(File dir) {
this.dir = dir;
}
public void run() {
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
- fileSystemView.getFiles(new File(dir), false);
+ fileSystemView.getFiles(dir, false);
}
}
}
+
--- a/test/jdk/javax/swing/JFileChooser/7199708/bug7199708.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFileChooser/7199708/bug7199708.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,10 +41,10 @@
/**
* @test
* @key headful
- * @bug 7199708 8159587
+ * @bug 7199708 8159587 8198005
* @author Alexander Scherbatiy
* @summary FileChooser crashs when opening large folder
- * @run main bug7199708
+ * @run main/timeout=240 bug7199708
*/
public class bug7199708 {
@@ -53,72 +53,88 @@
private static volatile int locationX;
private static volatile int locationY;
private static volatile int width;
+ private static File largeFolder;
+ private static File files[] = new File[FILE_NUMBER];
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
robot.setAutoDelay(50);
- final File folder = createLargeFolder();
- UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
+ try {
+ final File folder = createLargeFolder();
+ UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- fileChooser = new JFileChooser(folder);
- fileChooser.showSaveDialog(null);
- }
- });
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ fileChooser = new JFileChooser(folder);
+ fileChooser.showSaveDialog(null);
+ }
+ });
- robot.waitForIdle();
+ robot.waitForIdle();
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- final String detailsTooltip = UIManager.getString("FileChooser."
- + "detailsViewButtonToolTipText", fileChooser.getLocale());
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ final String detailsTooltip =
+ UIManager.getString("FileChooser."
+ + "detailsViewButtonToolTipText",
+ fileChooser.getLocale());
- doAction(fileChooser, new ComponentAction() {
- @Override
- public boolean accept(Component component) {
- return (component instanceof AbstractButton)
+ doAction(fileChooser, new ComponentAction() {
+ @Override
+ public boolean accept(Component component) {
+ return (component instanceof AbstractButton)
&& detailsTooltip.equals(
((AbstractButton) component).getToolTipText());
- }
+ }
- @Override
- public void perform(Component component) {
- ((AbstractButton) component).doClick();
- }
- });
+ @Override
+ public void perform(Component component) {
+ ((AbstractButton) component).doClick();
+ }
+ });
- doAction(fileChooser, new ComponentAction() {
- @Override
- public boolean accept(Component component) {
- return (component instanceof JTable);
- }
+ doAction(fileChooser, new ComponentAction() {
+ @Override
+ public boolean accept(Component component) {
+ return (component instanceof JTable);
+ }
- @Override
- public void perform(Component component) {
- Point tableLocation = component.getLocationOnScreen();
- locationX = (int) tableLocation.getX();
- locationY = (int) tableLocation.getY();
- width = (int) fileChooser.getBounds().getWidth();
- }
- });
- }
- });
+ @Override
+ public void perform(Component component) {
+ Point tableLocation = component.getLocationOnScreen();
+ locationX = (int) tableLocation.getX();
+ locationY = (int) tableLocation.getY();
+ width = (int) fileChooser.getBounds().getWidth();
+ }
+ });
+ }
+ });
+
+ robot.waitForIdle();
- robot.waitForIdle();
+ int d = 25;
+ for (int i = 0; i < width / d; i++) {
+ robot.mouseMove(locationX + i * d, locationY + 5);
+ robot.waitForIdle();
+ robot.mousePress(InputEvent.BUTTON1_MASK);
+ robot.waitForIdle();
+ robot.mouseRelease(InputEvent.BUTTON1_MASK);
+ robot.waitForIdle();
+ }
- int d = 25;
- for (int i = 0; i < width / d; i++) {
- robot.mouseMove(locationX + i * d, locationY + 5);
- robot.mousePress(InputEvent.BUTTON1_MASK);
- robot.mouseRelease(InputEvent.BUTTON1_MASK);
+ robot.keyPress(KeyEvent.VK_ESCAPE);
+ robot.waitForIdle();
+ robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.waitForIdle();
+
+ } finally {
+ for (int i = 0; i < FILE_NUMBER; i++) {
+ Files.delete(files[i].toPath());
+ }
+ Files.delete(largeFolder.toPath());
}
-
- robot.keyPress(KeyEvent.VK_ESCAPE);
- robot.keyRelease(KeyEvent.VK_ESCAPE);
}
static void doAction(Component component, ComponentAction action) {
@@ -134,13 +150,11 @@
private static File createLargeFolder() {
try {
- File largeFolder = Files.createTempDirectory("large_folder").toFile();
- largeFolder.deleteOnExit();
+ largeFolder = Files.createTempDirectory("large_folder").toFile();
for (int i = 0; i < FILE_NUMBER; i++) {
- File file = new File(largeFolder, "File_" + i + ".txt");
- file.createNewFile();
- file.deleteOnExit();
+ files[i] = new File(largeFolder, "File_" + i + ".txt");
+ files[i].createNewFile();
}
return largeFolder;
} catch (IOException ex) {
--- a/test/jdk/javax/swing/JFileChooser/8062561/bug8062561.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFileChooser/8062561/bug8062561.java Fri Mar 02 19:08:44 2018 +0100
@@ -36,6 +36,8 @@
/**
* @test
* @bug 8062561
+ * @key headful
+ * @requires (os.family == "windows")
* @summary File system view returns null default directory
* @library ../../../../lib/testlibrary
* @modules java.desktop/sun.awt
--- a/test/jdk/javax/swing/JFileChooser/8080628/bug8080628.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFileChooser/8080628/bug8080628.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
+import javax.swing.UnsupportedLookAndFeelException;
import sun.swing.SwingUtilities2;
@@ -77,7 +78,11 @@
try {
LookAndFeelInfo[] lafInfo = UIManager.getInstalledLookAndFeels();
for (LookAndFeelInfo info : lafInfo) {
- UIManager.setLookAndFeel(info.getClassName());
+ try {
+ UIManager.setLookAndFeel(info.getClassName());
+ } catch (final UnsupportedLookAndFeelException ignored) {
+ continue;
+ }
for (Locale locale : LOCALES) {
for (String key : MNEMONIC_KEYS) {
--- a/test/jdk/javax/swing/JFrame/Serialization/JFrameMenuSerializationTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JFrame/Serialization/JFrameMenuSerializationTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,6 +23,7 @@
/**
* @test
+ * @key headful
* @bug 8189201
* @summary [macosx] NotSerializableException during JFrame with MenuBar
* serialization
--- a/test/jdk/javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
/**
* @test
* @key headful
- * @bug 8160248 8160332
+ * @bug 8160248 8160332 8186513
* @summary Dragged internal frame leaves artifacts for floating point ui scale
* @run main/othervm -Dsun.java2d.uiScale=1.2 JInternalFrameDraggingTest
* @run main/othervm -Dsun.java2d.uiScale=1.5 JInternalFrameDraggingTest
@@ -69,10 +69,14 @@
BufferedImage img = robot.createScreenCapture(rect);
int testRGB = BACKGROUND_COLOR.getRGB();
- for (int i = 0; i < size; i++) {
+ for (int i = 1; i < size; i++) {
int rgbCW = img.getRGB(i, size / 2);
int rgbCH = img.getRGB(size / 2, i);
if (rgbCW != testRGB || rgbCH != testRGB) {
+ System.out.println("i " + i + " rgbCW " +
+ Integer.toHexString(rgbCW) +
+ " testRGB " + Integer.toHexString(testRGB) +
+ " rgbCH " + Integer.toHexString(rgbCH));
throw new RuntimeException("Background color is wrong!");
}
}
@@ -81,6 +85,7 @@
private static void createAndShowGUI() {
frame = new JFrame();
+ frame.setUndecorated(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
--- a/test/jdk/javax/swing/JLayer/8041982/bug8041982.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JLayer/8041982/bug8041982.java Fri Mar 02 19:08:44 2018 +0100
@@ -22,6 +22,7 @@
*/
/* @test
+ * @key headful
* @bug 8041982
* @summary Use of animated icon in JLayer causes CPU spin
* @author Alexander Potochkin
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/swing/JList/SetSelectedValueTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @key headful
+ * @bug 5076761
+ * @summary Verifies that the selection is cleared when setSelectedValue is
+ * called with null
+ * @run main SetSelectedValueTest
+ */
+
+import javax.swing.SwingUtilities;
+import javax.swing.DefaultListModel;
+import javax.swing.JList;
+import javax.swing.ListSelectionModel;
+import java.util.Collections;
+import java.util.List;
+
+public class SetSelectedValueTest {
+ public static void main(String[] args) throws Exception {
+
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ // Create a JList with 2 elements
+ DefaultListModel dlm = new DefaultListModel();
+ JList list = new JList<String>(dlm);
+ list.setSelectionMode(
+ ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+ dlm.addElement("1");
+ dlm.addElement("2");
+
+ // Select both the elements added in list
+ list.setSelectionInterval(0, 1);
+ checkSelectionByList(list, List.of("1", "2"));
+
+ // Set the selected value as null. This should clear the
+ // selection
+ list.setSelectedValue(null, true);
+ checkSelectionByList(list, Collections.emptyList());
+
+ // Select both the elements added in list
+ list.setSelectionInterval(0, 1);
+ checkSelectionByList(list, List.of("1", "2"));
+ }
+ });
+ }
+
+ static void checkSelectionByList(JList list, List<String> selectionList)
+ throws RuntimeException {
+ List<String> listSelection = list.getSelectedValuesList();
+ if (!listSelection.equals(selectionList)) {
+ System.out.println("Expected: " + selectionList);
+ System.out.println("Actual: " + listSelection);
+ throw new RuntimeException("Wrong selection");
+ }
+ }
+}
--- a/test/jdk/javax/swing/JMenuItem/6883341/bug6883341.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JMenuItem/6883341/bug6883341.java Fri Mar 02 19:08:44 2018 +0100
@@ -24,6 +24,7 @@
/*
* @test
* @bug 6883341
+ * @key headful
* @summary Checks that menu items with no text don't throw an exception
* @author Alexander Potochkin
* @run main bug6883341
--- a/test/jdk/javax/swing/JTable/8031971/bug8031971.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JTable/8031971/bug8031971.java Fri Mar 02 19:08:44 2018 +0100
@@ -32,7 +32,7 @@
* @bug 8031971 8039750
* @author Alexander Scherbatiy
* @summary Use only public methods in the SwingLazyValue
- * @run main bug8031971
+ * @run main/othervm bug8031971
*/
public class bug8031971 {
--- a/test/jdk/javax/swing/JTableHeader/8020039/TableHeaderRendererExceptionTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/JTableHeader/8020039/TableHeaderRendererExceptionTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,7 @@
*/
import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.table.JTableHeader;
/**
@@ -40,8 +41,11 @@
for (UIManager.LookAndFeelInfo lookAndFeelItem : lookAndFeelArray) {
String lookAndFeelString = lookAndFeelItem.getClassName();
-
- UIManager.setLookAndFeel(lookAndFeelString);
+ try{
+ UIManager.setLookAndFeel(lookAndFeelString);
+ } catch (final UnsupportedLookAndFeelException ignored) {
+ continue;
+ }
// Test getTableCellRendererComponent method by passing null table
JTableHeader header = new JTableHeader();
--- a/test/jdk/javax/swing/Popup/TaskbarPositionTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/Popup/TaskbarPositionTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -27,7 +27,8 @@
import javax.swing.event.*;
/**
- * @test @bug 4245587 4474813 4425878 4767478 8015599
+ * @test
+ * @bug 4245587 4474813 4425878 4767478 8015599
* @key headful
* @author Mark Davidson
* @summary Tests the location of the heavy weight popup portion of JComboBox,
--- a/test/jdk/javax/swing/RepaintManager/DisplayListenerLeak/DisplayListenerLeak.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/RepaintManager/DisplayListenerLeak/DisplayListenerLeak.java Fri Mar 02 19:08:44 2018 +0100
@@ -34,6 +34,7 @@
/**
* @test
* @bug 8041654
+ * @key headful
* @modules java.desktop/sun.java2d
* @run main/othervm -Xmx80m DisplayListenerLeak
*/
--- a/test/jdk/javax/swing/Security/6657138/bug6657138.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/Security/6657138/bug6657138.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,11 @@
continue;
}
String className = laf.getClassName();
- UIManager.setLookAndFeel(className);
+ try {
+ UIManager.setLookAndFeel(className);
+ } catch (final UnsupportedLookAndFeelException ignored) {
+ continue;
+ }
ComponentUI ui = UIManager.getUI(c);
if (ui == null) {
throw new RuntimeException("UI is null for " + c);
--- a/test/jdk/javax/swing/UIDefaults/6302464/bug6302464.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/UIDefaults/6302464/bug6302464.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
import javax.swing.UIManager;
import javax.swing.UIDefaults;
import javax.swing.UIManager.LookAndFeelInfo;
+import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.basic.BasicLookAndFeel;
import static java.awt.RenderingHints.KEY_TEXT_ANTIALIASING;
import static java.awt.RenderingHints.KEY_TEXT_LCD_CONTRAST;
@@ -178,6 +179,7 @@
private static void setLookAndFeel(String lafClass) {
try {
UIManager.setLookAndFeel(lafClass);
+ } catch (final UnsupportedLookAndFeelException ignored) {
} catch (Exception e) {
throw new RuntimeException(e);
}
--- a/test/jdk/javax/swing/UIDefaults/6622002/bug6622002.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/UIDefaults/6622002/bug6622002.java Fri Mar 02 19:08:44 2018 +0100
@@ -26,6 +26,7 @@
* @bug 6622002
* @author Alexander Potochkin
* @summary UIDefault.ProxyLazyValue has unsafe reflection usage
+ * @run main/othervm bug6622002
*/
import javax.swing.*;
--- a/test/jdk/javax/swing/UIDefaults/8080972/TestProxyLazyValue.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/UIDefaults/8080972/TestProxyLazyValue.java Fri Mar 02 19:08:44 2018 +0100
@@ -28,6 +28,7 @@
* @summary Audit Core Reflection in module java.desktop for places that will
* require changes to work with modules
* @author Alexander Scherbatiy
+ * @run main/othervm TestProxyLazyValue
*/
public class TestProxyLazyValue {
--- a/test/jdk/javax/swing/UIDefaults/8133926/InternalFrameIcon.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/UIDefaults/8133926/InternalFrameIcon.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,9 +45,10 @@
try {
UIManager.setLookAndFeel(laf.getClassName());
System.out.println("LookAndFeel: " + laf.getClassName());
- } catch (ClassNotFoundException | InstantiationException |
- UnsupportedLookAndFeelException | IllegalAccessException e) {
+ } catch (ClassNotFoundException | IllegalAccessException |
+ InstantiationException e) {
throw new RuntimeException(e);
+ } catch (final UnsupportedLookAndFeelException ignored) {
}
}
--- a/test/jdk/javax/swing/plaf/metal/MetalUtils/bug6190373.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/plaf/metal/MetalUtils/bug6190373.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -102,8 +102,10 @@
try {
UIManager.setLookAndFeel(laf.getClassName());
System.out.println("LookAndFeel: " + laf.getClassName());
+ } catch (final UnsupportedLookAndFeelException ignored){
+ System.out.println("Unsupported LookAndFeel: " + laf.getClassName());
} catch (ClassNotFoundException | InstantiationException |
- UnsupportedLookAndFeelException | IllegalAccessException e) {
+ IllegalAccessException e) {
throw new RuntimeException(e);
}
}
--- a/test/jdk/javax/swing/plaf/nimbus/TestDisabledToolTipBorder.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/plaf/nimbus/TestDisabledToolTipBorder.java Fri Mar 02 19:08:44 2018 +0100
@@ -21,7 +21,8 @@
* questions.
*/
/**
- * @test @bug 8058785
+ * @test
+ * @bug 8058785
* @summary Displaying border around the disabled component's tool tip text
* @run main/manual TestDisabledToolTipBorder
*/
--- a/test/jdk/javax/swing/text/View/8080972/TestObjectView.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/javax/swing/text/View/8080972/TestObjectView.java Fri Mar 02 19:08:44 2018 +0100
@@ -36,6 +36,7 @@
* @summary Audit Core Reflection in module java.desktop for places that will
* require changes to work with modules
* @author Alexander Scherbatiy
+ * @run main/othervm TestObjectView
*/
public class TestObjectView {
--- a/test/jdk/sanity/client/SwingSet/src/TextFieldDemoTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/sanity/client/SwingSet/src/TextFieldDemoTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -101,6 +101,7 @@
JButtonOperator jbo = new JButtonOperator(containerOperator, GO);
JLabelOperator dowLabel = new JLabelOperator(containerOperator);
Calendar calendar = Calendar.getInstance(Locale.ENGLISH);
+ calendar.setTime((Date) getUIValue(jtfo, jtf -> ((JFormattedTextField)jtf).getValue()));
// Check default date Day of the Week
jbo.push();
--- a/test/jdk/sanity/client/lib/jemmy/src/org/netbeans/jemmy/ComponentChooser.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/sanity/client/lib/jemmy/src/org/netbeans/jemmy/ComponentChooser.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,5 +50,7 @@
*
* @return a String representing the description value
*/
- public String getDescription();
+ public default String getDescription() {
+ return toString();
+ }
}
--- a/test/jdk/sanity/client/lib/jemmy/src/org/netbeans/jemmy/operators/Operator.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/sanity/client/lib/jemmy/src/org/netbeans/jemmy/operators/Operator.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -718,6 +718,25 @@
}
}
+ /**
+ * Waits a state specified by a ComponentChooser instance on EDT queue.
+ *
+ * @param state a ComponentChooser defining the state criteria.
+ * @throws TimeoutExpiredException if the state has not achieved in a value
+ * defined by {@code "ComponentOperator.WaitStateTimeout"}
+ */
+ public void waitStateOnQueue(final ComponentChooser state) {
+ waitState((comp) -> {
+ return (boolean) (queueTool.invokeSmoothly(
+ new QueueTool.QueueAction<Object>("checkComponent") {
+ @Override
+ public final Object launch() throws Exception {
+ return state.checkComponent(comp);
+ }
+ }));
+ });
+ }
+
////////////////////////////////////////////////////////
//Mapping //
////////////////////////////////////////////////////////
--- a/test/jdk/sun/java2d/marlin/TextClipErrorTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/sun/java2d/marlin/TextClipErrorTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -50,7 +50,8 @@
import javax.imageio.ImageIO;
/**
- * @test @bug 8144718
+ * @test
+ * @bug 8144718
* @summary Check the Stroker.drawBezApproxForArc() bug (stoke with round
* joins): if cosext2 > 0.5, it generates curves with NaN coordinates
* @run main TextClipErrorTest
--- a/test/jdk/sun/security/tools/jarsigner/LineBrokenMultiByteCharacter.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/jdk/sun/security/tools/jarsigner/LineBrokenMultiByteCharacter.java Fri Mar 02 19:08:44 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -58,7 +58,7 @@
* @see #verifyClassNameLineBroken(JarFile, String)
*/
static final String testClassName =
- "LineBrokenMultiByteCharacterA1234567890B1234567890C123456789D12\u00E9xyz.class";
+ "LineBrokenMultiByteCharacterA1234567890B1234567890C123456789D1234\u00E9xyz.class";
static final String anotherName =
"LineBrokenMultiByteCharacterA1234567890B1234567890C123456789D1234567890.class";
--- a/test/langtools/jdk/jshell/ToolBasicTest.java Thu Mar 01 19:28:43 2018 +0100
+++ b/test/langtools/jdk/jshell/ToolBasicTest.java Fri Mar 02 19:08:44 2018 +0100
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8143037 8142447 8144095 8140265 8144906 8146138 8147887 8147886 8148316 8148317 8143955 8157953 8080347 8154714 8166649 8167643 8170162 8172102 8165405 8174796 8174797 8175304 8167554 8180508 8166232
+ * @bug 8143037 8142447 8144095 8140265 8144906 8146138 8147887 8147886 8148316 8148317 8143955 8157953 8080347 8154714 8166649 8167643 8170162 8172102 8165405 8174796 8174797 8175304 8167554 8180508 8166232 8196133
* @summary Tests for Basic tests for REPL tool
* @modules jdk.compiler/com.sun.tools.javac.api
* jdk.compiler/com.sun.tools.javac.main
@@ -350,6 +350,34 @@
);
}
+ private String makeBadSourceJar() {
+ Compiler compiler = new Compiler();
+ Path outDir = Paths.get("testClasspathJar");
+ Path src = compiler.getPath(outDir.resolve("pkg/A.java"));
+ compiler.writeToFile(src, "package pkg; /** \u0086 */public class A { public String toString() { return \"A\"; } }");
+ String jarName = "test.jar";
+ compiler.jar(outDir, jarName, "pkg/A.java");
+ return compiler.getPath(outDir).resolve(jarName).toString();
+ }
+
+ public void testBadSourceJarClasspath() {
+ String jarPath = makeBadSourceJar();
+ test(
+ (a) -> assertCommand(a, "/env --class-path " + jarPath,
+ "| Setting new options and restoring state."),
+ (a) -> assertCommandOutputStartsWith(a, "new pkg.A();",
+ "| Error:\n"
+ + "| cannot find symbol\n"
+ + "| symbol: class A")
+ );
+ test(new String[]{"--class-path", jarPath},
+ (a) -> assertCommandOutputStartsWith(a, "new pkg.A();",
+ "| Error:\n"
+ + "| cannot find symbol\n"
+ + "| symbol: class A")
+ );
+ }
+
public void testModulePath() {
Compiler compiler = new Compiler();
Path modsDir = Paths.get("mods");