cc'ing awt-dev. This change looks okay.
Mandy > On Dec 11, 2015, at 9:22 AM, Chris Hegarty <chris.hega...@oracle.com> wrote: > > More technical debt in sun.misc… > > Java SE has had support for Queues in Collections for many major releases, > sun.misc.Queue seems to predate that. I cannot find any usages outside of the > JDK, and just one in the JDK, AppletPanel. LinkedBlockingQueue appears to > provide the necessary minimum functionality required by AppletPanel, FIFO > blocking operations. > > The changes are quite small so I just included the diffs inline. > > Note: we could use either add(E) or offer(E) below, I don’t have a strong > opinion > either way. > > $ hg rm src/java.base/share/classes/sun/misc/Queue.java > > diff --git a/src/java.desktop/share/classes/sun/applet/AppletPanel.java > b/src/java.desktop/share/classes/sun/applet/AppletPanel.java > --- a/src/java.desktop/share/classes/sun/applet/AppletPanel.java > +++ b/src/java.desktop/share/classes/sun/applet/AppletPanel.java > @@ -38,6 +38,7 @@ > import java.security.*; > import java.util.*; > import java.util.Locale; > +import java.util.concurrent.LinkedBlockingQueue; > import sun.awt.AWTAccessor; > import sun.awt.AppContext; > import sun.awt.EmbeddedFrame; > @@ -45,7 +46,6 @@ > import sun.misc.ManagedLocalsThread; > import sun.misc.MessageUtils; > import sun.misc.PerformanceLogger; > -import sun.misc.Queue; > import sun.security.util.SecurityConstants; > > /** > @@ -247,8 +247,7 @@ > /** > * AppletEvent Queue > */ > - private Queue<Integer> queue = null; > - > + private LinkedBlockingQueue<Integer> queue = null; > > public synchronized void addAppletListener(AppletListener l) { > listeners = AppletEventMulticaster.add(listeners, l); > @@ -276,10 +275,10 @@ > synchronized(this) { > if (queue == null) { > //System.out.println("SEND0= " + id); > - queue = new Queue<>(); > + queue = new LinkedBlockingQueue<>(); > } > - Integer eventId = Integer.valueOf(id); > - queue.enqueue(eventId); > + boolean inserted = queue.offer(id); > + assert inserted; > notifyAll(); > } > if (id == APPLET_QUIT) { > @@ -303,8 +302,8 @@ > while (queue == null || queue.isEmpty()) { > wait(); > } > - Integer eventId = queue.dequeue(); > - return new AppletEvent(this, eventId.intValue(), null); > + int eventId = queue.take(); > + return new AppletEvent(this, eventId, null); > } > > boolean emptyEventQueue() { > > -Chris.