diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/6669869-queries_per_appcontext.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/openjdk/6669869-queries_per_appcontext.patch | 355 |
1 files changed, 0 insertions, 355 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/6669869-queries_per_appcontext.patch b/java/openjdk6/files/icedtea/openjdk/6669869-queries_per_appcontext.patch deleted file mode 100644 index 5e0f001e7b35..000000000000 --- a/java/openjdk6/files/icedtea/openjdk/6669869-queries_per_appcontext.patch +++ /dev/null @@ -1,355 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1365686276 -3600 -# Node ID a939f541de9af5ccb78225c27cd46cd7dc6bcf87 -# Parent 9745a1f43592582cce60d8632d614fafc7dfdc3c -6669869: Beans.isDesignTime() and other queries should be per-AppContext -Reviewed-by: peterz, rupashka - -diff --git a/src/share/classes/java/beans/Beans.java b/src/share/classes/java/beans/Beans.java ---- jdk/src/share/classes/java/beans/Beans.java -+++ jdk/src/share/classes/java/beans/Beans.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2009, 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,26 +27,41 @@ - - import com.sun.beans.finder.ClassFinder; - --import java.applet.*; -+import java.applet.Applet; -+import java.applet.AppletContext; -+import java.applet.AppletStub; -+import java.applet.AudioClip; - --import java.awt.*; -- --import java.beans.AppletInitializer; -+import java.awt.GraphicsEnvironment; -+import java.awt.Image; - - import java.beans.beancontext.BeanContext; - --import java.io.*; -- --import java.lang.reflect.Constructor; -+import java.io.IOException; -+import java.io.InputStream; -+import java.io.ObjectInputStream; -+import java.io.ObjectStreamClass; -+import java.io.StreamCorruptedException; - - import java.net.URL; --import java.lang.reflect.Array; -+ -+import java.security.AccessController; -+import java.security.PrivilegedAction; -+ -+import java.util.Enumeration; -+import java.util.Hashtable; -+import java.util.Iterator; -+import java.util.Vector; -+ -+import sun.awt.AppContext; - - /** - * This class provides some general purpose beans control methods. - */ - - public class Beans { -+ private static final Object DESIGN_TIME = new Object(); -+ private static final Object GUI_AVAILABLE = new Object(); - - /** - * <p> -@@ -59,12 +74,12 @@ - * @param beanName the name of the bean within the class-loader. - * For example "sun.beanbox.foobah" - * -- * @exception java.lang.ClassNotFoundException if the class of a serialized -+ * @exception ClassNotFoundException if the class of a serialized - * object could not be found. -- * @exception java.io.IOException if an I/O error occurs. -+ * @exception IOException if an I/O error occurs. - */ - -- public static Object instantiate(ClassLoader cls, String beanName) throws java.io.IOException, ClassNotFoundException { -+ public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException { - return Beans.instantiate(cls, beanName, null, null); - } - -@@ -80,12 +95,12 @@ - * For example "sun.beanbox.foobah" - * @param beanContext The BeanContext in which to nest the new bean - * -- * @exception java.lang.ClassNotFoundException if the class of a serialized -+ * @exception ClassNotFoundException if the class of a serialized - * object could not be found. -- * @exception java.io.IOException if an I/O error occurs. -+ * @exception IOException if an I/O error occurs. - */ - -- public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws java.io.IOException, ClassNotFoundException { -+ public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws IOException, ClassNotFoundException { - return Beans.instantiate(cls, beanName, beanContext, null); - } - -@@ -135,19 +150,19 @@ - * @param beanContext The BeanContext in which to nest the new bean - * @param initializer The AppletInitializer for the new bean - * -- * @exception java.lang.ClassNotFoundException if the class of a serialized -+ * @exception ClassNotFoundException if the class of a serialized - * object could not be found. -- * @exception java.io.IOException if an I/O error occurs. -+ * @exception IOException if an I/O error occurs. - */ - - public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) -- throws java.io.IOException, ClassNotFoundException { -+ throws IOException, ClassNotFoundException { - -- java.io.InputStream ins; -- java.io.ObjectInputStream oins = null; -+ InputStream ins; -+ ObjectInputStream oins = null; - Object result = null; - boolean serialized = false; -- java.io.IOException serex = null; -+ IOException serex = null; - - // If the given classloader is null, we check if an - // system classloader is available and (if so) -@@ -166,8 +181,8 @@ - // Try to find a serialized object with this name - final String serName = beanName.replace('.','/').concat(".ser"); - final ClassLoader loader = cls; -- ins = (InputStream)java.security.AccessController.doPrivileged -- (new java.security.PrivilegedAction() { -+ ins = (InputStream)AccessController.doPrivileged -+ (new PrivilegedAction() { - public Object run() { - if (loader == null) - return ClassLoader.getSystemResourceAsStream(serName); -@@ -185,7 +200,7 @@ - result = oins.readObject(); - serialized = true; - oins.close(); -- } catch (java.io.IOException ex) { -+ } catch (IOException ex) { - ins.close(); - // Drop through and try opening the class. But remember - // the exception in case we can't find the class either. -@@ -264,8 +279,8 @@ - - final ClassLoader cloader = cls; - objectUrl = (URL) -- java.security.AccessController.doPrivileged -- (new java.security.PrivilegedAction() { -+ AccessController.doPrivileged -+ (new PrivilegedAction() { - public Object run() { - if (cloader == null) - return ClassLoader.getSystemResource -@@ -377,10 +392,11 @@ - * @return True if we are running in an application construction - * environment. - * -- * @see java.beans.DesignMode -+ * @see DesignMode - */ - public static boolean isDesignTime() { -- return designTime; -+ Object value = AppContext.getAppContext().get(DESIGN_TIME); -+ return (value instanceof Boolean) && (Boolean) value; - } - - /** -@@ -393,11 +409,12 @@ - * false in a server environment or if an application is - * running as part of a batch job. - * -- * @see java.beans.Visibility -+ * @see Visibility - * - */ - public static boolean isGuiAvailable() { -- return guiAvailable; -+ Object value = AppContext.getAppContext().get(GUI_AVAILABLE); -+ return (value instanceof Boolean) ? (Boolean) value : !GraphicsEnvironment.isHeadless(); - } - - /** -@@ -423,7 +440,7 @@ - if (sm != null) { - sm.checkPropertiesAccess(); - } -- designTime = isDesignTime; -+ AppContext.getAppContext().put(DESIGN_TIME, Boolean.valueOf(isDesignTime)); - } - - /** -@@ -449,14 +466,7 @@ - if (sm != null) { - sm.checkPropertiesAccess(); - } -- guiAvailable = isGuiAvailable; -- } -- -- -- private static boolean designTime; -- private static boolean guiAvailable; -- static { -- guiAvailable = !GraphicsEnvironment.isHeadless(); -+ AppContext.getAppContext().put(GUI_AVAILABLE, Boolean.valueOf(isGuiAvailable)); - } - } - -@@ -501,7 +511,7 @@ - - class BeansAppletContext implements AppletContext { - Applet target; -- java.util.Hashtable imageCache = new java.util.Hashtable(); -+ Hashtable imageCache = new Hashtable(); - - BeansAppletContext(Applet target) { - this.target = target; -@@ -546,8 +556,8 @@ - return null; - } - -- public java.util.Enumeration getApplets() { -- java.util.Vector applets = new java.util.Vector(); -+ public Enumeration getApplets() { -+ Vector applets = new Vector(); - applets.addElement(target); - return applets.elements(); - } -@@ -573,7 +583,7 @@ - return null; - } - -- public java.util.Iterator getStreamKeys(){ -+ public Iterator getStreamKeys(){ - // We do nothing. - return null; - } -diff --git a/test/java/beans/Beans/6669869/TestDesignTime.java b/test/java/beans/Beans/6669869/TestDesignTime.java -new file mode 100644 ---- /dev/null -+++ jdk/test/java/beans/Beans/6669869/TestDesignTime.java -@@ -0,0 +1,52 @@ -+/* -+ * Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 6669869 -+ * @summary Tests DesignTime property in different application contexts -+ * @author Sergey Malenkov -+ */ -+ -+import java.beans.Beans; -+import sun.awt.SunToolkit; -+ -+public class TestDesignTime implements Runnable { -+ public static void main(String[] args) throws InterruptedException { -+ if (Beans.isDesignTime()) { -+ throw new Error("unexpected DesignTime property"); -+ } -+ Beans.setDesignTime(!Beans.isDesignTime()); -+ ThreadGroup group = new ThreadGroup("$$$"); -+ Thread thread = new Thread(group, new TestDesignTime()); -+ thread.start(); -+ thread.join(); -+ } -+ -+ public void run() { -+ SunToolkit.createNewAppContext(); -+ if (Beans.isDesignTime()) { -+ throw new Error("shared DesignTime property"); -+ } -+ } -+} -diff --git a/test/java/beans/Beans/6669869/TestGuiAvailable.java b/test/java/beans/Beans/6669869/TestGuiAvailable.java -new file mode 100644 ---- /dev/null -+++ jdk/test/java/beans/Beans/6669869/TestGuiAvailable.java -@@ -0,0 +1,53 @@ -+/* -+ * Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 6669869 -+ * @summary Tests GuiAvailable property in different application contexts -+ * @author Sergey Malenkov -+ */ -+ -+import java.awt.GraphicsEnvironment; -+import java.beans.Beans; -+import sun.awt.SunToolkit; -+ -+public class TestGuiAvailable implements Runnable { -+ public static void main(String[] args) throws InterruptedException { -+ if (Beans.isGuiAvailable() == GraphicsEnvironment.isHeadless()) { -+ throw new Error("unexpected GuiAvailable property"); -+ } -+ Beans.setGuiAvailable(!Beans.isGuiAvailable()); -+ ThreadGroup group = new ThreadGroup("$$$"); -+ Thread thread = new Thread(group, new TestGuiAvailable()); -+ thread.start(); -+ thread.join(); -+ } -+ -+ public void run() { -+ SunToolkit.createNewAppContext(); -+ if (Beans.isGuiAvailable() == GraphicsEnvironment.isHeadless()) { -+ throw new Error("shared GuiAvailable property"); -+ } -+ } -+} |