Criteria retornando dados inesperados

Estou com um problema estranho.
Estou fazendo uns testes e me vi na seguinte situação.
Tenho dois métodos:

public List<T> findAll() { 
		Criteria criteria = getSession().createCriteria(entityClass);
		criteria.setMaxResults(50);

		return criteria.list();
    } 

public List<LogProcessamento> findByNoSeq(BigDecimal noSeq){
    	Criteria criteria = super.getSession().createCriteria(LogProcessamento.class);
    	criteria.add(Restrictions.eq("noSeq", noSeq));

		return criteria.list();
    }

Eu chamo ele dessa forma:

List<LogProcessamento> list = logProcessamentoDAO.findAll();
BigDecimal noSeq = new BigDecimal("3505");
		List<LogProcessamento> listLogProcessamento = logProcessamentoDAO.findByNoSeq(noSeq);

O problema é q ele ta retornando dados q não devia.
Na tabela tem 7 cara com noSeq = 3505 e ele tráz 7, mas o primeiro e o último q ele tráz não são 3505, são 4185 e 1
:roll:

Eu fiz um teste e tirei a primeira chamada:

List<LogProcessamento> list = logProcessamentoDAO.findAll();

E ai retornou todos os sete 3505 corretamente.
Alguém saberia me explicar o pq isso ocorre ?
Será q é algo na mesma sessão ?

Alguém tem idéia dq possa ser ?
Preciso fechar uma sessão depois da primeira busca ?
Não né ? Mas pelo q vi ele mistura dados da primeira busca com os da segunda busca.
Não sei pq faz isso apenas no primeiro e no último.
Ta muito estranho isso.
:frowning:

public Session getSession() {
		Session session = threadLocal.get();
		if (session == null) {
			session = sessionFactory.openSession();
			threadLocal.set(session);
		}
		return session;
	}