--- a/jdk/src/java.desktop/share/classes/java/beans/PropertyDescriptor.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/classes/java/beans/PropertyDescriptor.java Mon Dec 19 15:33:32 2016 -0800
@@ -183,9 +183,10 @@
setShortDescription(description.toString());
}
Object values = info.get(PropertyInfo.Name.enumerationValues);
- if (values != null) {
- setValue(PropertyInfo.Name.enumerationValues.name(), values);
+ if (values == null) {
+ values = new Object[0];
}
+ setValue(PropertyInfo.Name.enumerationValues.name(), values);
this.baseName = base;
}
--- a/jdk/src/java.desktop/share/classes/javax/swing/UIManager.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/classes/javax/swing/UIManager.java Mon Dec 19 15:33:32 2016 -0800
@@ -629,16 +629,7 @@
}
else {
Class<?> lnfClass = SwingUtilities.loadSystemClass(className);
- try {
- LookAndFeel laf =
- (LookAndFeel)lnfClass.newInstance();
- setLookAndFeel(laf);
- } catch (ReflectiveOperationException | IllegalArgumentException e) {
- InstantiationException ex =
- new InstantiationException("Wrapped Exception");
- ex.initCause(e);
- throw ex;
- }
+ setLookAndFeel((LookAndFeel)(lnfClass.newInstance()));
}
}
--- a/jdk/src/java.desktop/share/classes/sun/awt/FontConfiguration.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/classes/sun/awt/FontConfiguration.java Mon Dec 19 15:33:32 2016 -0800
@@ -182,11 +182,17 @@
throw new Error("java.home property not set");
}
javaLib = javaHome + File.separator + "lib";
+ String javaConfFonts = javaHome +
+ File.separator + "conf" +
+ File.separator + "fonts";
String userConfigFile = System.getProperty("sun.awt.fontconfig");
if (userConfigFile != null) {
fontConfigFile = new File(userConfigFile);
} else {
- fontConfigFile = findFontConfigFile(javaLib);
+ fontConfigFile = findFontConfigFile(javaConfFonts);
+ if (fontConfigFile == null) {
+ fontConfigFile = findFontConfigFile(javaLib);
+ }
}
}
@@ -275,8 +281,11 @@
return null;
}
- private File findFontConfigFile(String javaLib) {
- String baseName = javaLib + File.separator + "fontconfig";
+ private File findFontConfigFile(String dir) {
+ if (!(new File(dir)).exists()) {
+ return null;
+ }
+ String baseName = dir + File.separator + "fontconfig";
File configFile;
String osMajorVersion = null;
if (osVersion != null && osName != null) {
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/ScriptAndLanguageTags.cpp Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/ScriptAndLanguageTags.cpp Mon Dec 19 15:33:32 2016 -0800
@@ -33,13 +33,14 @@
* Generated on: 10/26/2010 02:53:33 PM PDT
*/
+#include "LEScripts.h"
#include "LETypes.h"
#include "ScriptAndLanguageTags.h"
#include "OpenTypeLayoutEngine.h"
U_NAMESPACE_BEGIN
-const LETag OpenTypeLayoutEngine::scriptTags[] = {
+const LETag OpenTypeLayoutEngine::scriptTags[scriptCodeCount] = {
zyyyScriptTag, /* 'zyyy' (COMMON) */
zinhScriptTag, /* 'zinh' (INHERITED) */
arabScriptTag, /* 'arab' (ARABIC) */
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiShaping.cpp Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiShaping.cpp Mon Dec 19 15:33:32 2016 -0800
@@ -302,7 +302,7 @@
le_uint8 charClass;
// Decompose SARA AM into NIKHAHIT + SARA AA
- if (ch == CH_SARA_AM && isLegalHere(ch, state)) {
+ if (ch == CH_SARA_AM && isLegalHere(ch, state) && conState < stateCount) {
outputIndex = conOutput;
state = getNextState(CH_NIKHAHIT, conState, inputIndex, glyphSet, errorChar, charClass,
output, glyphStorage, outputIndex);
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiShaping.h Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiShaping.h Mon Dec 19 15:33:32 2016 -0800
@@ -80,7 +80,8 @@
tG = 5,
tH = 6,
tR = 7,
- tS = 8
+ tS = 8,
+ stateCount = 52
};
struct StateTransition
@@ -100,7 +101,7 @@
ThaiShaping();
static const le_uint8 classTable[];
- static const StateTransition thaiStateTable[][classCount];
+ static const StateTransition thaiStateTable[stateCount][classCount];
inline static StateTransition getTransition(le_uint8 state, le_uint8 currClass);
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiStateTables.cpp Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiStateTables.cpp Mon Dec 19 15:33:32 2016 -0800
@@ -49,7 +49,7 @@
/*0E50*/ NON, NON, NON, NON, NON, NON, NON, NON, NON, NON, NON, NON
};
-const ThaiShaping::StateTransition ThaiShaping::thaiStateTable[][ThaiShaping::classCount] = {
+const ThaiShaping::StateTransition ThaiShaping::thaiStateTable[ThaiShaping::stateCount][ThaiShaping::classCount] = {
//+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//| N C C C L F F F B B B T A A A N A A A |
//| O O O O V V V V V V D O D D D I V V V |
--- a/jdk/src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_Ports.c Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_Ports.c Mon Dec 19 15:33:32 2016 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -385,6 +385,7 @@
int isStereo;
char* type;
snd_mixer_selem_channel_id_t channel;
+ memset(controls, 0, sizeof(controls));
TRACE0("> PORT_GetControls\n");
if (id == NULL) {
--- a/jdk/src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_Ports.c Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_Ports.c Mon Dec 19 15:33:32 2016 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -385,6 +385,7 @@
int isStereo;
char* type;
snd_mixer_selem_channel_id_t channel;
+ memset(controls, 0, sizeof(controls));
TRACE0("> PORT_GetControls\n");
if (id == NULL) {
--- a/jdk/src/java.desktop/unix/native/libjsound/PLATFORM_API_SolarisOS_Ports.c Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/src/java.desktop/unix/native/libjsound/PLATFORM_API_SolarisOS_Ports.c Mon Dec 19 15:33:32 2016 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -390,6 +390,7 @@
int controlCount = 0;
INT32 type;
int selectable = 1;
+ memset(controls, 0, sizeof(controls));
TRACE4(">PORT_GetControls(id=%p, portIndex=%d). controlIDs=%p, maxControlCount=%d\n",
id, portIndex, info->controlIDs, info->maxControlCount);
--- a/jdk/test/java/awt/EmbeddedFrame/DisplayChangedTest/DisplayChangedTest.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/test/java/awt/EmbeddedFrame/DisplayChangedTest/DisplayChangedTest.java Mon Dec 19 15:33:32 2016 -0800
@@ -23,12 +23,12 @@
/*
@test
- @bug 4980592
+ @bug 4980592 8171363
@summary switching user in XP causes an NPE in
sun.awt.windows.WWindowPeer.displayChanged
@requires (os.family == "windows")
@modules java.desktop/java.awt.peer
- @modules java.desktop/sun.awt.windows
+ @modules java.desktop/sun.awt.windows:open
@modules java.desktop/sun.awt
@author son@sparc.spb.su: area=embedded
@run main DisplayChangedTest
--- a/jdk/test/java/awt/EmbeddedFrame/EmbeddedFrameGrabTest/EmbeddedFrameGrabTest.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/test/java/awt/EmbeddedFrame/EmbeddedFrameGrabTest/EmbeddedFrameGrabTest.java Mon Dec 19 15:33:32 2016 -0800
@@ -23,12 +23,12 @@
/*
@test
- @bug 6345002
+ @bug 6345003 8171363
@summary grab problems with EmbeddedFrame
@requires (os.family == "windows")
@modules java.desktop/java.awt.peer
@modules java.desktop/sun.awt
- @modules java.desktop/sun.awt.windows
+ @modules java.desktop/sun.awt.windows:open
@author Oleg.Semenov@sun.com area=EmbeddedFrame
@run main EmbeddedFrameGrabTest
*/
--- a/jdk/test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java Mon Dec 19 15:33:32 2016 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
* 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,34 +31,57 @@
/*
* @test
* @key headful
- * @bug 8130329
+ * @bug 8130329 8134612 8133719
* @summary Audit Core Reflection in module java.desktop AWT/Miscellaneous area
* for places that will require changes to work with modules
* @author Alexander Scherbatiy
+ * @run main/othervm ConstructFlavoredObjectTest COPY
+ * @run main/othervm ConstructFlavoredObjectTest PASTE
*/
public class ConstructFlavoredObjectTest {
- private static final String TEST_MIME_TYPE = "text/plain;class="
- + MyStringReader.class.getName();
-
public static void main(String[] args) throws Exception {
- final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE);
- SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap.
- getDefaultFlavorMap();
- systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT");
- systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor);
+ if (args[0].equals("COPY")) {
+
+ // Copy a simple text string on to the System clipboard
+
+ final String TEXT_MIME_TYPE = DataFlavor.javaJVMLocalObjectMimeType +
+ ";class=" + String.class.getName();
- TransferHandler transferHandler = new TransferHandler("Test Handler");
+ final DataFlavor dataFlavor = new DataFlavor(TEXT_MIME_TYPE);
+ SystemFlavorMap systemFlavorMap =
+ (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap();
+ systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT");
+ systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor);
+
+ TransferHandler transferHandler = new TransferHandler("text");
- Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
- transferHandler.exportToClipboard(new JLabel("Test"), clipboard,
- TransferHandler.COPY);
+ String text = "This is sample export text";
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
+ transferHandler.exportToClipboard(new JLabel(text), clipboard,
+ TransferHandler.COPY);
+ }
+ else if (args[0].equals("PASTE")) {
+
+ // Try to read text data from the System clipboard
+
+ final String TEST_MIME_TYPE = "text/plain;class=" +
+ MyStringReader.class.getName();
- Object clipboardData = clipboard.getData(dataFlavor);
+ final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE);
+ SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap.
+ getDefaultFlavorMap();
+ systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT");
+ systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor);
- if (!(clipboardData instanceof MyStringReader)) {
- throw new RuntimeException("Wrong clipboard data!");
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
+
+ Object clipboardData = clipboard.getData(dataFlavor);
+
+ if (!(clipboardData instanceof MyStringReader)) {
+ throw new RuntimeException("Wrong clipboard data!");
+ }
}
}
@@ -78,3 +101,4 @@
}
}
}
+
--- a/jdk/test/java/beans/Introspector/8130937/TestBooleanBeanProperties.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/test/java/beans/Introspector/8130937/TestBooleanBeanProperties.java Mon Dec 19 15:33:32 2016 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
/**
* @test
- * @bug 8130937
+ * @bug 8130937 8131347
* @summary Tests the booleans properties of the BeanProperty annotation
* @library ..
*/
@@ -76,6 +76,9 @@
if (getValue(pd, "visualUpdate") != isVS) {
throw new RuntimeException("required should be: " + isVS);
}
+ if (pd.getValue("enumerationValues") == null) {
+ throw new RuntimeException("enumerationValues should be empty array");
+ }
}
private static boolean getValue(PropertyDescriptor pd, String value) {
@@ -107,7 +110,8 @@
}
@BeanProperty(bound = true, expert = true, hidden = true,
- preferred = true, required = true, visualUpdate = true)
+ preferred = true, required = true, visualUpdate = true,
+ enumerationValues = {})
public void setValue(int value) {
this.value = value;
}
--- a/jdk/test/javax/swing/JFileChooser/4847375/bug4847375.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/test/javax/swing/JFileChooser/4847375/bug4847375.java Mon Dec 19 15:33:32 2016 -0800
@@ -23,11 +23,11 @@
/*
* @test
- * @bug 4847375
+ * @bug 4847375 8171363
* @summary JFileChooser Create New Folder button is disabled incorrectly
* @author Pavel Porvatov
* @modules java.desktop/sun.awt
- * java.desktop/sun.awt.shell
+ * java.desktop/sun.awt.shell:+open
*/
import sun.awt.OSInfo;
--- a/jdk/test/javax/swing/JFileChooser/6741890/bug6741890.java Mon Dec 19 15:01:14 2016 -0800
+++ b/jdk/test/javax/swing/JFileChooser/6741890/bug6741890.java Mon Dec 19 15:33:32 2016 -0800
@@ -22,11 +22,11 @@
*/
/* @test
- @bug 6741890
+ @bug 6741890 8171363
@summary Deadlock in Win32ShellFolderManager2
@author Pavel Porvatov
@modules java.desktop/sun.awt
- java.desktop/sun.awt.shell
+ java.desktop/sun.awt.shell:+open
@run main bug6741890
*/