summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/security/20130201/7192977.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/icedtea/security/20130201/7192977.patch')
-rw-r--r--java/openjdk6/files/icedtea/security/20130201/7192977.patch436
1 files changed, 0 insertions, 436 deletions
diff --git a/java/openjdk6/files/icedtea/security/20130201/7192977.patch b/java/openjdk6/files/icedtea/security/20130201/7192977.patch
deleted file mode 100644
index 19e366b08377..000000000000
--- a/java/openjdk6/files/icedtea/security/20130201/7192977.patch
+++ /dev/null
@@ -1,436 +0,0 @@
-diff --git a/src/share/classes/java/awt/EventQueue.java b/src/share/classes/java/awt/EventQueue.java
---- jdk/src/share/classes/java/awt/EventQueue.java
-+++ jdk/src/share/classes/java/awt/EventQueue.java
-@@ -173,8 +173,14 @@ public class EventQueue {
- }
- public void removeSourceEvents(EventQueue eventQueue,
- Object source,
-- boolean removeAllEvents) {
-+ boolean removeAllEvents)
-+ {
- eventQueue.removeSourceEvents(source, removeAllEvents);
-+ }
-+ public void invokeAndWait(Object source, Runnable r)
-+ throws InterruptedException, InvocationTargetException
-+ {
-+ EventQueue.invokeAndWait(source, r);
- }
- });
- }
-@@ -1042,8 +1048,14 @@ public class EventQueue {
- * @since 1.2
- */
- public static void invokeAndWait(Runnable runnable)
-- throws InterruptedException, InvocationTargetException {
-+ throws InterruptedException, InvocationTargetException
-+ {
-+ invokeAndWait(Toolkit.getDefaultToolkit(), runnable);
-+ }
-
-+ static void invokeAndWait(Object source, Runnable runnable)
-+ throws InterruptedException, InvocationTargetException
-+ {
- if (EventQueue.isDispatchThread()) {
- throw new Error("Cannot call invokeAndWait from the event dispatcher thread");
- }
-@@ -1052,8 +1064,7 @@ public class EventQueue {
- Object lock = new AWTInvocationLock();
-
- InvocationEvent event =
-- new InvocationEvent(Toolkit.getDefaultToolkit(), runnable, lock,
-- true);
-+ new InvocationEvent(source, runnable, lock, true);
-
- synchronized (lock) {
- Toolkit.getEventQueue().postEvent(event);
-diff --git a/src/share/classes/java/awt/Window.java b/src/share/classes/java/awt/Window.java
---- jdk/src/share/classes/java/awt/Window.java
-+++ jdk/src/share/classes/java/awt/Window.java
-@@ -1036,7 +1036,7 @@ public class Window extends Container im
- }
- else {
- try {
-- EventQueue.invokeAndWait(action);
-+ EventQueue.invokeAndWait(this, action);
- }
- catch (InterruptedException e) {
- System.err.println("Disposal was interrupted:");
-diff --git a/src/share/classes/javax/swing/RepaintManager.java b/src/share/classes/javax/swing/RepaintManager.java
---- jdk/src/share/classes/javax/swing/RepaintManager.java
-+++ jdk/src/share/classes/javax/swing/RepaintManager.java
-@@ -27,17 +27,21 @@ package javax.swing;
-
- import java.awt.*;
- import java.awt.event.*;
--import java.awt.peer.ComponentPeer;
--import java.awt.peer.ContainerPeer;
- import java.awt.image.VolatileImage;
-+import java.security.AccessControlContext;
- import java.security.AccessController;
-+import java.security.PrivilegedAction;
- import java.util.*;
-+import java.util.concurrent.atomic.AtomicInteger;
- import java.applet.*;
-
- import sun.awt.AppContext;
-+import sun.awt.AWTAccessor;
- import sun.awt.DisplayChangedListener;
- import sun.awt.SunToolkit;
- import sun.java2d.SunGraphicsEnvironment;
-+import sun.misc.JavaSecurityAccess;
-+import sun.misc.SharedSecrets;
- import sun.security.action.GetPropertyAction;
-
-
-@@ -168,6 +172,9 @@ public class RepaintManager
- * Runnable used to process all repaint/revalidate requests.
- */
- private final ProcessingRunnable processingRunnable;
-+
-+ private final static JavaSecurityAccess javaSecurityAccess =
-+ SharedSecrets.getJavaSecurityAccess();
-
-
- static {
-@@ -553,13 +560,26 @@ public class RepaintManager
- // This is called from the toolkit thread when awt needs to run a
- // Runnable before we paint.
- //
-- void nativeQueueSurfaceDataRunnable(AppContext appContext, Component c,
-- Runnable r) {
-+ void nativeQueueSurfaceDataRunnable(AppContext appContext,
-+ final Component c, final Runnable r)
-+ {
- synchronized(this) {
- if (runnableList == null) {
- runnableList = new LinkedList<Runnable>();
- }
-- runnableList.add(r);
-+ runnableList.add(new Runnable() {
-+ public void run() {
-+ AccessControlContext stack = AccessController.getContext();
-+ AccessControlContext acc =
-+ AWTAccessor.getComponentAccessor().getAccessControlContext(c);
-+ javaSecurityAccess.doIntersectionPrivilege(new PrivilegedAction<Void>() {
-+ public Void run() {
-+ r.run();
-+ return null;
-+ }
-+ }, stack, acc);
-+ }
-+ });
- }
- scheduleProcessingRunnable(appContext);
- }
-@@ -639,9 +659,9 @@ public class RepaintManager
- * @see #addInvalidComponent
- */
- public void validateInvalidComponents() {
-- java.util.List<Component> ic;
-+ final java.util.List<Component> ic;
- synchronized(this) {
-- if(invalidComponents == null) {
-+ if (invalidComponents == null) {
- return;
- }
- ic = invalidComponents;
-@@ -649,7 +669,17 @@ public class RepaintManager
- }
- int n = ic.size();
- for(int i = 0; i < n; i++) {
-- ic.get(i).validate();
-+ final Component c = ic.get(i);
-+ AccessControlContext stack = AccessController.getContext();
-+ AccessControlContext acc =
-+ AWTAccessor.getComponentAccessor().getAccessControlContext(c);
-+ javaSecurityAccess.doIntersectionPrivilege(
-+ new PrivilegedAction<Void>() {
-+ public Void run() {
-+ c.validate();
-+ return null;
-+ }
-+ }, stack, acc);
- }
- }
-
-@@ -696,76 +726,75 @@ public class RepaintManager
- paintDirtyRegions(tmpDirtyComponents);
- }
-
-- private void paintDirtyRegions(Map<Component,Rectangle>
-- tmpDirtyComponents){
-- int i, count;
-- java.util.List<Component> roots;
-- Component dirtyComponent;
--
-- count = tmpDirtyComponents.size();
-- if (count == 0) {
-+ private void paintDirtyRegions(
-+ final Map<Component,Rectangle> tmpDirtyComponents)
-+ {
-+ if (tmpDirtyComponents.isEmpty()) {
- return;
- }
-
-- Rectangle rect;
-- int localBoundsX = 0;
-- int localBoundsY = 0;
-- int localBoundsH = 0;
-- int localBoundsW = 0;
-- Enumeration keys;
--
-- roots = new ArrayList<Component>(count);
-+ final java.util.List<Component> roots =
-+ new ArrayList<Component>(tmpDirtyComponents.size());
-
- for (Component dirty : tmpDirtyComponents.keySet()) {
- collectDirtyComponents(tmpDirtyComponents, dirty, roots);
- }
-
-- count = roots.size();
-- // System.out.println("roots size is " + count);
-+ final AtomicInteger count = new AtomicInteger(roots.size());
- painting = true;
- try {
-- for(i=0 ; i < count ; i++) {
-- dirtyComponent = roots.get(i);
-- rect = tmpDirtyComponents.get(dirtyComponent);
-- // System.out.println("Should refresh :" + rect);
-- localBoundsH = dirtyComponent.getHeight();
-- localBoundsW = dirtyComponent.getWidth();
-+ for(int j = 0; j < count.get(); j++) {
-+ final int i = j;
-+ final Component dirtyComponent = roots.get(j);
-
-- SwingUtilities.computeIntersection(localBoundsX,
-- localBoundsY,
-- localBoundsW,
-- localBoundsH,
-- rect);
-- if (dirtyComponent instanceof JComponent) {
-- ((JComponent)dirtyComponent).paintImmediately(
-- rect.x,rect.y,rect.width, rect.height);
-- }
-- else if (dirtyComponent.isShowing()) {
-- Graphics g = JComponent.safelyGetGraphics(
-- dirtyComponent, dirtyComponent);
-- // If the Graphics goes away, it means someone disposed of
-- // the window, don't do anything.
-- if (g != null) {
-- g.setClip(rect.x, rect.y, rect.width, rect.height);
-- try {
-- dirtyComponent.paint(g);
-- } finally {
-- g.dispose();
-+ AccessControlContext stack = AccessController.getContext();
-+ AccessControlContext acc =
-+ AWTAccessor.getComponentAccessor().getAccessControlContext(dirtyComponent);
-+ javaSecurityAccess.doIntersectionPrivilege(new PrivilegedAction<Void>() {
-+ public Void run() {
-+ Rectangle rect = tmpDirtyComponents.get(dirtyComponent);
-+
-+ int localBoundsH = dirtyComponent.getHeight();
-+ int localBoundsW = dirtyComponent.getWidth();
-+ SwingUtilities.computeIntersection(0,
-+ 0,
-+ localBoundsW,
-+ localBoundsH,
-+ rect);
-+ if (dirtyComponent instanceof JComponent) {
-+ ((JComponent)dirtyComponent).paintImmediately(
-+ rect.x,rect.y,rect.width, rect.height);
- }
-+ else if (dirtyComponent.isShowing()) {
-+ Graphics g = JComponent.safelyGetGraphics(
-+ dirtyComponent, dirtyComponent);
-+ // If the Graphics goes away, it means someone disposed of
-+ // the window, don't do anything.
-+ if (g != null) {
-+ g.setClip(rect.x, rect.y, rect.width, rect.height);
-+ try {
-+ dirtyComponent.paint(g);
-+ } finally {
-+ g.dispose();
-+ }
-+ }
-+ }
-+ // If the repaintRoot has been set, service it now and
-+ // remove any components that are children of repaintRoot.
-+ if (repaintRoot != null) {
-+ adjustRoots(repaintRoot, roots, i + 1);
-+ count.set(roots.size());
-+ paintManager.isRepaintingRoot = true;
-+ repaintRoot.paintImmediately(0, 0, repaintRoot.getWidth(),
-+ repaintRoot.getHeight());
-+ paintManager.isRepaintingRoot = false;
-+ // Only service repaintRoot once.
-+ repaintRoot = null;
-+ }
-+
-+ return null;
- }
-- }
-- // If the repaintRoot has been set, service it now and
-- // remove any components that are children of repaintRoot.
-- if (repaintRoot != null) {
-- adjustRoots(repaintRoot, roots, i + 1);
-- count = roots.size();
-- paintManager.isRepaintingRoot = true;
-- repaintRoot.paintImmediately(0, 0, repaintRoot.getWidth(),
-- repaintRoot.getHeight());
-- paintManager.isRepaintingRoot = false;
-- // Only service repaintRoot once.
-- repaintRoot = null;
-- }
-+ }, stack, acc);
- }
- } finally {
- painting = false;
-diff --git a/src/share/classes/sun/applet/AppletPanel.java b/src/share/classes/sun/applet/AppletPanel.java
---- jdk/src/share/classes/sun/applet/AppletPanel.java
-+++ jdk/src/share/classes/sun/applet/AppletPanel.java
-@@ -47,6 +47,7 @@ import java.util.WeakHashMap;
- import java.util.WeakHashMap;
- import javax.swing.SwingUtilities;
- import sun.awt.AppContext;
-+import sun.awt.AWTAccessor;
- import sun.awt.EmbeddedFrame;
- import sun.awt.SunToolkit;
- import sun.misc.MessageUtils;
-@@ -449,12 +450,12 @@ abstract class AppletPanel extends Panel
- // to avoid deadlock.
- try {
- final AppletPanel p = this;
--
-- SwingUtilities.invokeAndWait(new Runnable() {
-- public void run() {
-- p.validate();
-- }
-- });
-+ Runnable r = new Runnable() {
-+ public void run() {
-+ p.validate();
-+ }
-+ };
-+ AWTAccessor.getEventQueueAccessor().invokeAndWait(applet, r);
- }
- catch(InterruptedException ie) {
- }
-@@ -479,18 +480,19 @@ abstract class AppletPanel extends Panel
- try {
- final AppletPanel p = this;
- final Applet a = applet;
-+ Runnable r = new Runnable() {
-+ public void run() {
-+ p.validate();
-+ a.setVisible(true);
-
-- SwingUtilities.invokeAndWait(new Runnable() {
-- public void run() {
-- p.validate();
-- a.setVisible(true);
--
-- // Fix for BugTraq ID 4041703.
-- // Set the default focus for an applet.
-- if (hasInitialFocus())
-- setDefaultFocus();
-+ // Fix for BugTraq ID 4041703.
-+ // Set the default focus for an applet.
-+ if (hasInitialFocus()) {
-+ setDefaultFocus();
- }
-- });
-+ }
-+ };
-+ AWTAccessor.getEventQueueAccessor().invokeAndWait(applet, r);
- }
- catch(InterruptedException ie) {
- }
-@@ -513,13 +515,12 @@ abstract class AppletPanel extends Panel
- // to avoid deadlock.
- try {
- final Applet a = applet;
--
-- SwingUtilities.invokeAndWait(new Runnable() {
-- public void run()
-- {
-- a.setVisible(false);
-- }
-- });
-+ Runnable r = new Runnable() {
-+ public void run() {
-+ a.setVisible(false);
-+ }
-+ };
-+ AWTAccessor.getEventQueueAccessor().invokeAndWait(applet, r);
- }
- catch(InterruptedException ie) {
- }
-@@ -571,17 +572,14 @@ abstract class AppletPanel extends Panel
- }
- status = APPLET_DISPOSE;
-
-- try
-- {
-+ try {
- final Applet a = applet;
--
-- EventQueue.invokeAndWait(new Runnable()
-- {
-- public void run()
-- {
-+ Runnable r = new Runnable() {
-+ public void run() {
- remove(a);
- }
-- });
-+ };
-+ AWTAccessor.getEventQueueAccessor().invokeAndWait(applet, r);
- }
- catch(InterruptedException ie)
- {
-diff --git a/src/share/classes/sun/awt/AWTAccessor.java b/src/share/classes/sun/awt/AWTAccessor.java
---- jdk/src/share/classes/sun/awt/AWTAccessor.java
-+++ jdk/src/share/classes/sun/awt/AWTAccessor.java
-@@ -29,6 +29,7 @@ import java.awt.*;
-
- import sun.misc.Unsafe;
-
-+import java.lang.reflect.InvocationTargetException;
- import java.security.AccessControlContext;
-
- import java.util.Vector;
-@@ -198,6 +199,11 @@ public final class AWTAccessor {
- */
- void removeSourceEvents(EventQueue eventQueue, Object source,
- boolean removeAllEvents);
-+ /**
-+ * Static in EventQueue
-+ */
-+ void invokeAndWait(Object source, Runnable r)
-+ throws InterruptedException, InvocationTargetException;
- }
-
- /**
-diff --git a/src/windows/classes/sun/awt/windows/WComponentPeer.java b/src/windows/classes/sun/awt/windows/WComponentPeer.java
---- jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java
-+++ jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java
-@@ -427,14 +427,15 @@ public abstract class WComponentPeer ext
- try {
- replaceSurfaceData();
- } catch (InvalidPipeException e) {
-- // REMIND : what do we do if our surface creation failed?
-+ // REMIND : what do we do if our surface creation failed?
- }
- }
- }
- };
-+ Component c = (Component)target;
- // Fix 6255371.
-- if (!PaintEventDispatcher.getPaintEventDispatcher().queueSurfaceDataReplacing((Component)target, r)) {
-- postEvent(new InvocationEvent(Toolkit.getDefaultToolkit(), r));
-+ if (!PaintEventDispatcher.getPaintEventDispatcher().queueSurfaceDataReplacing(c, r)) {
-+ postEvent(new InvocationEvent(c, r));
- }
- }
-