-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
1.4.0
-
sparc
-
solaris_2.6
Name: dsR10051 Date: 01/24/2001
The method
java.awt.EventQueue.invokeLater(Runnable runnable)
may not call run method of runnable if this method was
called before with null parameter.
Here is a minimized test:
import java.awt.*;
import java.awt.event.*;
public class Test02 {
public static void main (String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(i);
System.out.flush();
EventQueue.invokeLater(null);
MoreRunnable runnable = new MoreRunnable();
EventQueue.invokeLater(runnable);
try {
runnable.WAIT();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
class MoreRunnable implements Runnable {
public boolean run_done = false;
public synchronized void WAIT() throws InterruptedException {
while (!run_done) {
System.out.println("MoreRunnable.WAIT");
System.out.flush();
wait();
}
}
public synchronized void NOTIFY() {
run_done = true;
System.out.println("MoreRunnable.NOTIFY");
System.out.flush();
notifyAll();
}
public void run() {
NOTIFY();
}
}
--- Output ---
%java -version
java version "1.4.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b48)
Java HotSpot(TM) Client VM (build 1.4beta-B48, mixed mode)
%java Test02
0
java.lang.NullPointerException
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:435)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:140)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:121)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
MoreRunnable.WAIT
MoreRunnable.NOTIFY
1
MoreRunnable.WAIT
java.lang.NullPointerException
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:435)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:140)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:121)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
^C%
======================================================================
- duplicates
-
JDK-4391482 JCK: api/java_awt/EventQueue tests: Runtime Exception kills EventDispatchThread
-
- Closed
-