Comportamento da EDT no Linux é diferente que no Windows

Olá!
Eu encontrei um problema com a EDT no Linux (Ubuntu - Gnome).
Dêem uma olhada por favor:

import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
 
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class JFrameTest extends JFrame {
 
	private JPanel jContentPane = null;
	private JTextField jTextField = null;
	private JTextField jTextField1 = null;
 
	public JFrameTest() {
		super();
		this.setSize(300, 200);
		this.setTitle("JFrame");
		this.setLocationRelativeTo(null);
 
 
		jTextField = new JTextField();
		jTextField.setBounds(new java.awt.Rectangle(35,10,171,16));
		jTextField.addFocusListener(new FocusAdapter(){
			public void focusLost(FocusEvent e) {
				JOptionPane.showMessageDialog(JFrameTest.this,"Test Message1","",JOptionPane.ERROR_MESSAGE,null);
 
				try {Thread.sleep(500);} catch (InterruptedException e1) {e1.printStackTrace();}
 
				JOptionPane.showMessageDialog(JFrameTest.this,"Test Message2","",JOptionPane.ERROR_MESSAGE,null);
			}
		});
 
 
		jTextField1 = new JTextField();
		jTextField1.setBounds(new java.awt.Rectangle(35,30,171,16));
 
		jContentPane = new JPanel();
		jContentPane.setLayout(null);
		jContentPane.add(jTextField, null);
		jContentPane.add(jTextField1, null);
		this.setContentPane(jContentPane);
	}
 
	public static void main(String[] args) {
		JFrameTest frame = new JFrameTest();
		frame.setVisible(true);
	}
}

Se vocês rodarem este trecho de código no linux (rodei no Ubuntu - Gnome) vocês verão um JFrame e 2 JTextFields. O primeiro JTextField com o foco.
Se você apertar a tecla TAB, o JTextField com foco perde o foco e a mensagem “Test Message1” aparece na tela.
Aí, se você apertar Ok nesta mensagem e apertar o TAB antes da segunda mensagem aparecer na tela, a mensagem “Test Message2” aparece na tela e logo depois, uma outra mensagem “Test Message1” aparece em cima de novo… Sendo esta última a proprietária do foco.
Então, o que eu entendi disso tudo é que a EDT está executando 2 listeners no mesmo componente ao mesmo tempo!!!

No windows eu rodei este mesmo código e isto não acontece... aparece apenas uma vez a primeira mensagem e depois apenas uma vez a segunda...

Vocês tem alguma idéia do que está acontecendo???
Como eu poderia evitar que isso acontecesse?

Obrigado a todos!