Merge
authorprr
Mon, 19 Dec 2016 15:33:32 -0800
changeset 42940 0d1409532a41
parent 42939 e5d5f0f2d40d (diff)
parent 42774 74bcf37d15d8 (current diff)
child 42941 040a43b1c909
Merge
jdk/test/java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.java
jdk/test/java/util/spi/ResourceBundleControlProvider/UserDefaultControlTest.sh
jdk/test/java/util/spi/ResourceBundleControlProvider/providersrc/Makefile
jdk/test/java/util/spi/ResourceBundleControlProvider/providersrc/UserControlProvider.java
jdk/test/java/util/spi/ResourceBundleControlProvider/providersrc/UserXMLControl.java
jdk/test/java/util/spi/ResourceBundleControlProvider/providersrc/XmlRB.xml
jdk/test/java/util/spi/ResourceBundleControlProvider/providersrc/XmlRB_ja.xml
jdk/test/java/util/spi/ResourceBundleControlProvider/providersrc/java.util.spi.ResourceBundleControlProvider
jdk/test/java/util/spi/ResourceBundleControlProvider/rbcontrolprovider.jar
--- 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
 */