Problema com um timertask

=
Bom eu tenho um timertask para fazer uma verificação e gerar um alert caso tenha um novo registro na tabela e está funcionando (ou quase) normal porém:

   public void timer(){
        System.out.println("Iniciou a execução...");
        Timer timer = null;
        if (timer == null) {
            timer = new Timer();
            TimerTask task = new TimerTask() {
                public void run() {
                    try {
                                            String verStatus = "SELECT COUNT(*) FROM equipamento_requisicao";
                                            PreparedStatement stmt = con.prepareStatement(verStatus);
                                            ResultSet rsStatus = stmt.executeQuery();
                                            if(rsStatus.next()){
                                            int Resultado = rsStatus.getInt(1);
                                                if(Resultado>Sessao.getInstancia().getQtdRegistroBD()){
                                                    Sessao.getInstancia().setQtdRegistroBD(Resultado);
                                                Alert alert = new Alert(Alert.AlertType.INFORMATION);
                                                alert.setTitle("ATENÇÃO");
                                                alert.setHeaderText("Campos vazios");
                                                alert.setContentText("registro novo");
                                                alert.showAndWait();
                                                }else if(Resultado<Sessao.getInstancia().getQtdRegistroBD()){
                                                Alert alert = new Alert(Alert.AlertType.INFORMATION);
                                                alert.setTitle("ATENÇÃO");
                                                alert.setHeaderText("Campos vazios");
                                                alert.setContentText("um registro ou mais a menos");
                                                alert.showAndWait();
                                                    Sessao.getInstancia().setQtdRegistroBD(Resultado);
                                                } else{
                                                    //aq não irei fazer nada.
                                                }
                                            }
                                        } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            };
            timer.scheduleAtFixedRate(task, TIME , TIME );
        }
    }

ele entra no if ou no else if normalmente porém no alert ele para nessa parte:

else if(Resultado<Sessao.getInstancia().getQtdRegistroBD()){
                                                Alert alert = new Alert(Alert.AlertType.INFORMATION);
                                                alert.setTitle("ATENÇÃO");
                                                alert.setHeaderText("Campos vazios");
                                                alert.setContentText("um registro ou mais a menos");
                                                alert.showAndWait();
                                                    Sessao.getInstancia().setQtdRegistroBD(Resultado);

alguém poderia me ajuda por qual motivo está parando no alert e não está dando o alert ( não aparece nenhum error )

eu debugei e qnd ta nessa parte:

     Alert alert = new Alert(Alert.AlertType.INFORMATION);

ele não executa o resto do alert… E um outro problema é eu tenho um serversocket para bloquear duas instancias da aplicação depois de utilizar esse timertask quando eu fecho aplicação ela continua aberta.