Sim está em várias threads.
O erro ocorre numa mesma consulta
Está assim o código.
public void getEntityManager() {
if (entityManager == null) {
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("desif");
entityManager = factory.createEntityManager();
}
}
Consulta generica
public Set<?> listar(GHEntity entidadeUm, GHEntity entidadeDois,
Integer primeiroRegistro, Integer totalRegistros,
String... ordenacao) throws Exception {
List aux = new ArrayList<>();
getEntityManager();
Session sessao = (Session) entityManager.getDelegate();
Criteria crit = sessao.createCriteria(entidadeUm.getClass());
montaRestricoes(entidadeUm, entidadeDois, crit);
contarTodos(entidadeUm, entidadeDois);
ordenar(crit, ordenacao);
if (!(total.equals(new Long(0)))) {
crit.setFirstResult(primeiroRegistro);
crit.setMaxResults(totalRegistros);
}
aux = crit.list();
RecordDataSet<GHEntity> linkedHashSet = new RecordDataSet<GHEntity>(aux);
linkedHashSet.setTotal(total);
// entityManager.clear();
sessao.evict(entidadeUm);
return linkedHashSet;
}
Se eu deixo esta parte entityManager.clear();, ocorre o erro. Se tiro não ocorre.
Se testo com breackpoint, não ocorre o erro.