Janela Modal não fecha

Tenho o seguinte codigo digitado em um arquivo .java

import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DFF0900 extends JDialog{
	JLabel lblCOMAND;
	JTextField txtCOMAND;
	JButton btnEXECUT, btnSAISQL;
	public DFF0900(Frame booOWNER, String chaTITULO, boolean booMODAL){
		super(booOWNER, chaTITULO, booMODAL);
		Container ctnUTISQL = getContentPane();
		ctnUTISQL.setLayout(null);
		lblCOMAND = new JLabel("Comando");
		txtCOMAND = new JTextField(255);
		btnEXECUT = new JButton("Executar");
		btnSAISQL = new JButton("Sair");
		lblCOMAND.setBounds(10,20,200,20);
		txtCOMAND.setBounds(10,50,380,20);
		btnEXECUT.setBounds(80,80,100,20);
		btnSAISQL.setBounds(210,80,100,20);
		ctnUTISQL.add(lblCOMAND);
		ctnUTISQL.add(txtCOMAND);
		ctnUTISQL.add(btnEXECUT);
		ctnUTISQL.add(btnSAISQL);
		btnSAISQL.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				int opcSAIDA;
				Object[] objBOTOES = {"Sim", "Não"};
				opcSAIDA = JOptionPane.showOptionDialog(null,"Deseja Realmente Sair?","Controle de Alugueis",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,objBOTOES,objBOTOES[0]);
				if (opcSAIDA==JOptionPane.YES_OPTION){
					booDFF0900.setVisible(false);
					booDFF0900.dispose();
				}
			}
		}
		);
		btnEXECUT.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					String chaSERVID = "jdbc:postgresql://localhost/dffalu";
					String chaUSUARI = "";
					String chaSENHA = "";
					try{
						Class.forName("org.postgresql.Driver").newInstance();
					}
					catch(Exception event){
						JOptionPane.showMessageDialog(null,"Não foi possivel encontrar e carregar o Driver!","Controle de Alugueis",JOptionPane.ERROR_MESSAGE);
						System.exit(1);
					}
					Connection conDFFALU;
					conDFFALU = DriverManager.getConnection(chaSERVID, chaUSUARI, chaSENHA);
					Statement staDFFALU = conDFFALU.createStatement();
					staDFFALU.executeUpdate(txtCOMAND.getText());
					JOptionPane.showMessageDialog(null,"Comando Executado Com Sucesso!","Controle de Alugueis",JOptionPane.INFORMATION_MESSAGE);
					conDFFALU.close();
				}
				catch(Exception event){
					JOptionPane.showMessageDialog(null,"Comando Não Executado! \n Verifique Conexão ou Sintaxe!","Controle de Alugueis",JOptionPane.ERROR_MESSAGE);
				}
			}
		}
		);
		setResizable(false);
		setSize(410,150);
		setLocationRelativeTo(null);
	}
}

que é inicializado a partir das linhas:

mitUTISQL.addActionListener(new ActionListener(){
	public void actionPerformed(ActionEvent e){
		booDFF0900 = new DFF0900(null,"Executa Comando SQL",true);
                booDFF0900.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		booDFF0900.setVisible(true);
	}
}
);

Porem, quando clico no botão Sair (btnSAISQL), ele exibe a caixa de dialogo solicitando a confirmação, mas não fecha a janela.

Ola,

Substitua as linhas dentro do seu actionPerformed, que estão:

               booDFF0900.setVisible(false);
               booDFF0900.dispose(); 
// aqui o booDFF0900 não faz referencia a nenhuma instancia.[/code]
e Coloque[code]
               DFF0900.this.setVisible(false);
               DFF0900.this.dispose(); 

Obrigado Bruno. Resolveu meu problema.