-
Bug
-
Resolution: Unresolved
-
P3
-
None
-
6u10
-
Cause Known
-
x86
-
windows_xp
FULL PRODUCT VERSION :
Linux and Windows:
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
WinXP SP3
Linux Debian testing - libc6 2.9-4 - kernel 2.6.26-1-686 - xorg 7.3
A DESCRIPTION OF THE PROBLEM :
I have a program performing several tasks when the main frame is disposed. In addition I would like to manage correctly all events such as SIGINT, user end session (WM_QUERYENDSESSION), but it seems that we can't call the dispose method on a JFrame in a shutdown hook (it runs perfectly on Linux but blocks on Windows).
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
to see easily the problem, run the code on a command line and perform a Ctrl+C (on Windows, the program never return)
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Either an exception (if it's an illegal operation), or windows behave like linux.
ACTUAL -
the program blocks under windows
ERROR MESSAGES/STACK TRACES THAT OCCUR :
no error message
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public static void main(String[] args) {
final JFrame frame = new JFrame("Title");
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {frame.setVisible(true);}
});
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override public void run() {frame.dispose();}
}
));
}
---------- END SOURCE ----------
Linux and Windows:
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
WinXP SP3
Linux Debian testing - libc6 2.9-4 - kernel 2.6.26-1-686 - xorg 7.3
A DESCRIPTION OF THE PROBLEM :
I have a program performing several tasks when the main frame is disposed. In addition I would like to manage correctly all events such as SIGINT, user end session (WM_QUERYENDSESSION), but it seems that we can't call the dispose method on a JFrame in a shutdown hook (it runs perfectly on Linux but blocks on Windows).
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
to see easily the problem, run the code on a command line and perform a Ctrl+C (on Windows, the program never return)
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Either an exception (if it's an illegal operation), or windows behave like linux.
ACTUAL -
the program blocks under windows
ERROR MESSAGES/STACK TRACES THAT OCCUR :
no error message
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public static void main(String[] args) {
final JFrame frame = new JFrame("Title");
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {frame.setVisible(true);}
});
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override public void run() {frame.dispose();}
}
));
}
---------- END SOURCE ----------