changeset 11919:c4f037178319 jdk8u111-b01

Merge
author asaha
date Wed, 15 Jun 2016 14:32:54 -0700
parents 3f19a625fad7 fd4a822ce053
children 95afc65c5926
files .hgtags
diffstat 4 files changed, 163 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Jun 14 14:57:40 2016 -0700
+++ b/.hgtags	Wed Jun 15 14:32:54 2016 -0700
@@ -589,6 +589,8 @@
 cc8d0d6c6f9543120836e70e0aa3fa9c9b6fe0f3 jdk8u92-b13
 4f06a20cdc59ce9742e6538ff4b9040baba0778a jdk8u92-b14
 5875e297cfcf18304b4b062dc44fa9be312ad6e8 jdk8u92-b31
+ed69541ce48b38bf0830c762f353e4379ce43630 jdk8u92-b32
+739b1dc838cdf73c7e16bacb5ce4d1c4534c7d76 jdk8u92-b33
 f6cc9dbb5db5883385c91bb71ca02081220aaf3d jdk8u81-b00
 00f8f39308687cde45f23282871c46cc6c2f10b3 jdk8u101-b01
 6042757c329b1b96fa6bc931e09306794f5c50c0 jdk8u101-b02
--- a/src/share/classes/javax/swing/JEditorPane.java	Tue Jun 14 14:57:40 2016 -0700
+++ b/src/share/classes/javax/swing/JEditorPane.java	Wed Jun 15 14:32:54 2016 -0700
@@ -24,15 +24,12 @@
  */
 package javax.swing;
 
-import sun.swing.SwingUtilities2;
 
 import java.awt.*;
-import java.awt.event.*;
 import java.lang.reflect.*;
 import java.net.*;
 import java.util.*;
 import java.io.*;
-import java.util.*;
 
 import javax.swing.plaf.*;
 import javax.swing.text.*;
@@ -1244,7 +1241,11 @@
      */
     public static void registerEditorKitForContentType(String type, String classname, ClassLoader loader) {
         getKitTypeRegistry().put(type, classname);
-        getKitLoaderRegistry().put(type, loader);
+        if (loader != null) {
+            getKitLoaderRegistry().put(type, loader);
+        } else {
+            getKitLoaderRegistry().remove(type);
+        }
         getKitRegisty().remove(type);
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/swing/JEditorPane/6882559/bug6882559.java	Wed Jun 15 14:32:54 2016 -0700
@@ -0,0 +1,41 @@
+/*
+ * 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
+ * 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
+   @bug 6882559
+   @summary new JEditorPane("text/plain","") fails for null context class loader
+   @author Mikhail Cherkasov
+   @run main bug6882559
+*/
+
+import javax.swing.*;
+
+
+public class bug6882559 {
+    public static void main(String[] args) throws Exception {
+        SwingUtilities.invokeAndWait(() -> {
+            Thread.currentThread().setContextClassLoader(null);
+            new javax.swing.JEditorPane("text/plain", "");
+        });
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/swing/JEditorPane/8158734/bug8158734.java	Wed Jun 15 14:32:54 2016 -0700
@@ -0,0 +1,115 @@
+/*
+ * 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
+ * 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
+   @bug 8158734
+   @summary JEditorPane.createEditorKitForContentType throws NPE after 6882559
+   @author Mikhail Cherkasov
+   @run main bug8158734
+*/
+
+import javax.swing.*;
+import javax.swing.text.*;
+import java.io.*;
+import java.lang.reflect.InvocationTargetException;
+
+
+public class bug8158734 {
+
+    public static final String TYPE = "test/test";
+    public static final String TYPE_2 = "test2/test2";
+
+    static boolean myClassloaderWasUsed = false;
+
+    static class MyEditorKit extends EditorKit {
+        @Override
+        public String getContentType() {
+            return null;
+        }
+
+        @Override
+        public ViewFactory getViewFactory() {
+            return null;
+        }
+
+        @Override
+        public Action[] getActions() {
+            return new Action[0];
+        }
+
+        @Override
+        public Caret createCaret() {
+            return null;
+        }
+
+        @Override
+        public Document createDefaultDocument() {
+            return null;
+        }
+
+        @Override
+        public void read(InputStream in, Document doc, int pos) throws IOException, BadLocationException {
+        }
+
+        @Override
+        public void write(OutputStream out, Document doc, int pos, int len) throws IOException, BadLocationException {
+
+        }
+
+        @Override
+        public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException {
+        }
+
+        @Override
+        public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException {
+        }
+    }
+
+    static class MyClassloader extends ClassLoader {
+        @Override
+        public Class<?> loadClass(String name) throws ClassNotFoundException {
+            myClassloaderWasUsed = true;
+            return super.loadClass(name);
+        }
+    }
+
+    public static void main(String[] args) throws InvocationTargetException, InterruptedException {
+        SwingUtilities.invokeAndWait(new Runnable() {
+            @Override
+            public void run() {
+                JEditorPane c = new JEditorPane();
+                c.setContentType(TYPE);
+
+                final MyClassloader loader = new MyClassloader();
+                JEditorPane.registerEditorKitForContentType(TYPE_2, MyEditorKit.class.getName(), loader);
+                JEditorPane.registerEditorKitForContentType(TYPE_2, MyEditorKit.class.getName(), null);
+                JEditorPane.createEditorKitForContentType(TYPE_2);
+
+                if (myClassloaderWasUsed) {
+                    throw new RuntimeException("Class loader has not been removed for '" + TYPE_2 + "' type");
+                }
+            }
+        });
+
+    }
+}
\ No newline at end of file