-
Bug
-
Resolution: Fixed
-
P1
-
5.0
-
tiger
-
x86, sparc
-
linux, solaris_10, windows_nt
Name: dmR10075 Date: 08/21/2003
Run one of the test cases. They perform some stress testing, at the
middle of it ClassCastException occurs. There were catched two
exceptions so far:
java.lang.ClassCastException: java.awt.DefaultKeyboardFocusManager
at sun.awt.SunToolkit.postEvent(SunToolkit.java:494)
at sun.awt.X11.XWindow.postEvent(XWindow.java:303)
at sun.awt.X11.XWindow.postEventToEventQueue(XWindow.java:312)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:407)
at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:764)
at
sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:745)
at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:375)
at sun.awt.X11.XToolkit.run(XToolkit.java:463)
at sun.awt.X11.XToolkit.run(XToolkit.java:419)
at java.lang.Thread.run(Thread.java:549)
java.lang.ClassCastException: sun.awt.PostEventQueue
at
sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:703)
at
sun.awt.SunToolkit.getSystemEventQueueImpl(SunToolkit.java:697)
at java.awt.Toolkit.getEventQueue(Toolkit.java:1539)
at java.awt.EventQueue.isDispatchThread(EventQueue.java:656)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:821)
at java.awt.Window.dispose(Window.java:587)
at MemLeakTest.main(MemLeakTest.java:16)
The problem happens with latest Tiger build, I tried b14-b15.
Test cases:
import java.awt.*;
public class MemLeakTest {
public static void main(String[] str)
throws Exception
{
for (int i=0; i<10000; i++) {
Frame f = new Frame();
TestDialog d = new TestDialog(f);
f.addNotify(); // Create peer
// No child, no parent will be disposed here,
// but parent will be schuduled to dispose
f.dispose();
// Child will try to dispose parent coz he is scheduled
d.kill();
System.err.println("Test: iter=" + i);
}
}
}
class TestDialog extends Dialog {
TestDialog(Frame f) {
super(f);
}
public void kill() {
super.dispose();
}
public void dispose() {
hide();
}
}
------------------------------------
import java.awt.*;
public class Test {
public static void main(String [] args) {
Point p;
Frame frame = new Frame();
frame.setBounds(100,100,100,100);
ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
Canvas canvas = new Canvas();
canvas.setSize(300,300);
sp.add(canvas);
frame.add("Center",sp);
frame.setVisible(true);
for (int i=0;i<1000;i++) {
p = new Point(i%100,i%100);
sp.setScrollPosition(p);
if (!sp.getScrollPosition().equals(p)) {
System.out.println("Test Failed.");
System.out.println(i+" : Expected "+p+", but Returned:
"+sp.getScrollPosition());
frame.dispose();
System.exit(0);
}
}
System.out.println("Test Passed.");
frame.dispose();
}
}
======================================================================
- duplicates
-
JDK-4902195 REGRESSION: Java2D demo generates ClassCastException: java.awt.EventQueue
-
- Closed
-
-
JDK-4911838 ClassCastException in KeyboardFocusManager.getCurrentKeyboardFocusManager
-
- Closed
-
-
JDK-4911843 ClassCastException in using AppContext value
-
- Closed
-