bem, me parece q o problema de memory leak do meu programa esta nos meus resultSets olhem como estou fazendo e me digam se estou fazendo errado por favor, pq apos algumas consultas ao sistema o programa consome muita memoria sem o gc limpar ela apos fechar a janela
public List consultarTabela() {
fecha(session);
session = ConnectDB.getInstance();
tx = session.beginTransaction();
List list = session.createQuery("from Carros as carros").list();
return list;
}
public List consultarTabelaCliente(Cliente cliente) {
fecha(session);
session = ConnectDB.getInstance();
tx = session.beginTransaction();
iterator = consultarTabela().iterator();
List<Carros> list = new ArrayList<Carros>();
int id = cliente.getID();
Carros teste;
while(iterator.hasNext()) {
teste = (Carros) iterator.next();
if(teste.getCliente() != null) {
if(id == teste.getCliente().getID())
list.add(teste);
}
}
return list;
}
nesse consultarTabelaCliente ao qual eh um arrayList eu utilizo em um iterator em outra classe, mas nunca fecho o objeto list, tenho varios emtodos assim, este seria o erro? como deveria fazer?
e com respeito ao consultarTabela, ao qual retorna um List? uso tambem em um iterator mas nunca fecho esse list, seria este o problema? todas as minhas consultas estao assim, como deveria proceder?