Fechar Transacao Em Uma Acao Marcada Como Transacao Manual

Como faz para Fechar uma Transação na Sessão quando executado um Botão de Ação Java, designado como Transação Manual ?

Em um botão de Ação Realizei a Impressão das Informações do Jape.

public class TestandoJape implements AcaoRotinaJava {

	@Override
	public void doAction(ContextoAcao contexto) throws Exception {
		
		System.out.println("Sessao Jape:" + JapeSession.getCurrentSession().toString());
		System.out.println("Sessao Jape -> hasTransaction:" + JapeSession.getCurrentSession().hasTransaction());
		
		System.out.println("Sessao Jape: Tentando Abrir uma Transação no Jape");
		    SessionHandle hnd = JapeSession.open(); 
            hnd.beginTransaction();
		
		    System.out.println("Sessao Jape:" + JapeSession.getCurrentSession().toString());
		    System.out.println("Sessao Jape -> hasTransaction:" + 
        JapeSession.getCurrentSession().hasTransaction());
		
		    JapeSession.close(hnd);
		
		    System.out.println("Encerrando a Transação do Jape");
		    System.out.println("Sessao Jape:" + JapeSession.getCurrentSession().toString());
		    System.out.println("Sessao Jape -> hasTransaction:" + JapeSession.getCurrentSession().hasTransaction());
    }
}

Ao Visualizar o Log

Sessao Jape: JapeSession:SUP@52FF5E0C0C7327FD231685B2FA641675
Sessao Jape → hasTransaction: false
Sessao Jape: Tentando Abrir uma Transação no Jape
Sessao Jape:JapeSession:SUP@52FF5E0C0C7327FD231685B2FA641675
Sessao Jape → hasTransaction:true
Encerrando a Transação do Jape
Sessao Jape:JapeSession:SUP@52FF5E0C0C7327FD231685B2FA641675
Sessao Jape → hasTransaction:true

Porém na Ultima Saída do hasTransaction, mesmo eu acreditando que fechei a Transação, ela ainda permace aberta.

Como consigo de Fato encerrar a Transação ?
Ou não é possível finalizar até o Encerramento da Ação ?

6 respostas