Erro ao comparar datas de 2 dias diferentes

Pessoal, tenho que comparar duas datas diferentes e estou fazendo da seguinte forma:

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
Date data = fmt.parse("03/12/2007 23:01:00");
Date dataBase = fmt.parse("03/12/2007 20:00:00");
Date dataFinal = fmt.parse("04/12/2007 06:00:00");

if(data.after(dataBase) && data.before(dataFinal)){
       System.out.println("Entrei");
}

Ele não entra na condição, mesmo estando entre o after e o before.
P.S.: já usei esse tipo de comparação dentro do mesmo dia, só com horários diferentes. Alguém sabe se entre dias realmente não dá certo essa forma?

Testei o seu código aqui.

Ele está correto, está entrando na condição.

Tb testei seu código e ele funcionou…
será que as bibliotecas que vc adicionou são as corretas??
Tenta dar uma olhada, eu usei essas:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

falo…

import java.util.*;
import java.text.*;
class TesteAfterBefore {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
        Date data = fmt.parse("03/12/2007 23:01:00");
        Date dataBase = fmt.parse("03/12/2007 20:00:00");
        Date dataFinal = fmt.parse("04/12/2007 06:00:00");

        if(data.after(dataBase) && data.before(dataFinal)){
            System.out.println("Entrei");
        }
    }
}

É essa foi bizarra, meu computador estava com algum erro, foi só reiniciar (processo mágico do Windows que acaba com todos os problemas) que passou a funcionar.
Isso eu nunca tinha visto.