Olá a todos,
Estou fazendo alguns testes com J2EE (Glassfish) e percebi o seguinte:
Estou utilizando um managed bean com escopo de sessão e pelo que pude perceber o Glassfish não está destruindo o objeto depois que a sessão é encerrada ( invalidate() ).
Fiz o teste um println() no constructor e no método finalize() do bean:
public IndiceMB() {
System.out.println("*** CRIOU MB");
}
....
@Override
public void finalize() {
System.out.println("***** DESTRUIU MB");
}
O constructor é chamado normalmente quando o mb é criado, porém o finalize não é chamado nunca, nem muito tempo depois da sessão ter sido invalidada.
A questão é: Existe alguma configuração a ser feita para que o Glassfish libere estes objetos da memória? Ou isso têm de ser feito manualmente pelo programador?