Session (Como finalizar ?) VRaptor 2 -> ERRO 500

Como finalizar uma sessão no VRaptor 2 ?

EDITADO.: O problema persiste, por favor vejam o post abaixo de Paulo Silveira… a sulção que tinha pensado não esta funcionando…

EDITADO: Achei que a solução iria dar conta, mas infelismente não esta, por favor vejam o post abaixo do Paulo Silveira.

acredito que lembrie de uma solução…

[code]@In
HttpSession session;

public void logout() {
if (session != null)
session.invalidate();
}
[/code]
se tiver uma forma mais legal de fazer, por favor digam ^^

é isso mesmo lavieri, via o invalidate.

Opa paulo blz ?? achei que ia ser simples assim… mas infelismente não esta sendo =/

recebo erro 500 e uma Exception esparramando na tela toda hora…

Achei que podia ser pq tinha outros @Outs que dependiam da Session, mas isolei totalmente a logica de logout e continua dando problema…

Pelo que percebi, no meio do VRaptor é checado se existem objetos na session: org.vraptor.scope.SessionContext.hasAttribute(SessionContext.java:53)
neste momento ele da algum getAttribute(), gerando uma IllegalStateException, que não foi esperada ou tratada, =/ gerando a exception.

Alguem com certeza já deve ter invalidado alguma Session no VRaptor, e deve ter uma solução para isto =/

e a solução não pode ser tão feia como:
logout.jsp

<% if (request.getSession(false) != null) request.getSession().invalidate(); response.sendRedirect("."); %>
tem que ter um modo de fazer isso de dentro da logica.

meu properties esta assim: view.properties

Minha lógica esta assim:

[code]import javax.servlet.http.HttpSession;

import org.vraptor.annotations.Component;
import org.vraptor.annotations.In;

@Component(“login”)
public class AutenticarOutLogic {

@In(required=false)
HttpSession session;

public void out() {
	if (session != null)
		session.invalidate();
}

}[/code]

meu erro é esse

[code]exception

javax.servlet.ServletException: java.lang.IllegalStateException: getAttribute: Session already invalidated
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:73)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.IllegalStateException: getAttribute: Session already invalidated
org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1032)
org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:110)
org.vraptor.scope.SessionContext.hasAttribute(SessionContext.java:53)
org.vraptor.scope.DefaultLogicRequest.findAttribute(DefaultLogicRequest.java:80)
org.vraptor.introspector.WebBeanProvider.findAttribute(WebBeanProvider.java:14)
org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:37)
org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:38)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:130)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:57)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
[/code]