Wow. I finally found time to take a closer look. The solution was to do as Massimo did: nullify the _visit ASO before leaving the page. This is a new requirement in 3.0.18. the code worked fine before.

Is this is a side-effect of fixing https://issues.apache.org/jira/browse/TAP5-399 ?

Some more info - it seems it doesn't matter whether the _visit ASO is nullified before invalidating the session or after invalidating the session - the important thing is to nullify it before returning. I have other non-null ASOs but I don't have to do anything with them. I'd guess that this practise is required for any non-null ASO used in the current page or perhaps the next rendered page.

On 10/12/2008, at 5:35 AM, Estevam Henrique Portela Mota e Silva wrote:

No problems using this piece of code, now I put it exactly as you gave.

On Tue, Dec 9, 2008 at 9:48 AM, Geoff Callender <[EMAIL PROTECTED] >wrote:

I wonder if the difference is that you're not redirecting to a new page?


On 09/12/2008, at 11:42 PM, Estevam Henrique Portela Mota e Silva wrote:

Geoff,

I've copied your code and applied it to my application, no problems were
found. This is exactly what I did:

Src:

 @Inject
 private RequestGlobals requestGlobals;

 @OnEvent(value = "onActionFromIndex")
 public void onActionFromLogoff(){
Session session = requestGlobals.getRequest().getSession(false);
     if(session != null){
         _visit = null;
         session.invalidate();
     }
 }

Are you sure that the problem is related only with this piece of code?

On Tue, Dec 9, 2008 at 9:15 AM, Geoff Callender <
[EMAIL PROTECTED]> wrote:

Is no-one else seeing this problem? Is there an obvious solution I've
missed?


On 08/12/2008, at 11:05 PM, Geoff Callender wrote:

-1 (non-binding)


My tests are failing on one thing only - I can't successfully log out.

In my Layout component there's an ActionLink with id LogOut. Here's the
event handler:

    Object onActionFromLogOut() {
_logger.info(_visit.getMyLoginId() + " is logging out.");
            Session session =
_requestGlobals.getRequest().getSession(false);
            if (session != null) {
                    session.invalidate();
            }
            return LogIn.class;
    }

It results in the exception below.  If I comment out
session.invalidate();
then there is no exception.

22:55:12,591 INFO  [Layout] secofr is logging out.
22:55:12,597 ERROR [[default]] Servlet.service() for servlet default
threw
exception
java.lang.IllegalStateException: Cannot create a session after the
response has been committed
    at
org.apache.catalina.connector.Request.doGetSession(Request.java: 2301)
    at
org.apache.catalina.connector.Request.getSession(Request.java: 2075)
    at

org .apache .catalina.connector.RequestFacade.getSession(RequestFacade.java: 833)
    at

org .apache .tapestry5 .internal.services.RequestImpl.getSession(RequestImpl.java:99)
    at $Request_11e16734cdd.getSession($Request_11e16734cdd.java)
    at $Request_11e16734c92.getSession($Request_11e16734c92.java)
    at

org .apache .tapestry5 .internal .services .SessionApplicationStatePersistenceStrategy .requestDidComplete (SessionApplicationStatePersistenceStrategy.java:126)
    at

org .apache .tapestry5 .internal .services .EndOfRequestListenerHubImpl .fire(EndOfRequestListenerHubImpl.java:40)
    at

$ EndOfRequestListenerHub_11e16734ca9 .fire($EndOfRequestListenerHub_11e16734ca9.java)
    at

org.apache.tapestry5.services.TapestryModule $3.service(TapestryModule.java:625)
    at
$ RequestHandler_11e16734cac .service($RequestHandler_11e16734cac.java)
    at

org.apache.tapestry5.services.TapestryModule $2.service(TapestryModule.java:611)
    at
$ RequestHandler_11e16734cac .service($RequestHandler_11e16734cac.java)
    at

org .apache .tapestry5 .internal .services.StaticFilesFilter.service(StaticFilesFilter.java:85)
    at
$ RequestHandler_11e16734cac .service($RequestHandler_11e16734cac.java)
    at

org.apache.tapestry5.internal.services.CheckForUpdatesFilter $2.invoke(CheckForUpdatesFilter.java:93)
    at

org.apache.tapestry5.internal.services.CheckForUpdatesFilter $2.invoke(CheckForUpdatesFilter.java:84)
    at

org .apache .tapestry5 .ioc .internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java: 83)
    at

org .apache .tapestry5 .internal .services .CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
    at
$ RequestHandler_11e16734cac .service($RequestHandler_11e16734cac.java)
    at
$ RequestHandler_11e16734ca3 .service($RequestHandler_11e16734ca3.java)
    at

org.apache.tapestry5.services.TapestryModule $16.service(TapestryModule.java:1007)
    at

org .apache .tapestry5 .internal .services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
    at

$ HttpServletRequestFilter_11e16734ca2 .service($HttpServletRequestFilter_11e16734ca2.java)
    at

$ HttpServletRequestHandler_11e16734ca4 .service($HttpServletRequestHandler_11e16734ca4.java)
    at

$ HttpServletRequestHandler_11e16734ca1 .service($HttpServletRequestHandler_11e16734ca1.java)
    at
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java: 179)
    at

org .apache .catalina .core .ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:235)
    at

org .apache .catalina .core .ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at

org .jboss .web .tomcat .filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at

org .apache .catalina .core .ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:235)
    at

org .apache .catalina .core .ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at

org .apache .catalina .core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at

org .apache .catalina .core.StandardContextValve.invoke(StandardContextValve.java:175)
    at

org .jboss .web .tomcat .security .SecurityAssociationValve.invoke(SecurityAssociationValve.java: 182)
    at

org .jboss .web .tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    at

org .apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java: 127)
    at

org .apache .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 102)
    at

org .jboss .web .tomcat .service .jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    at

org .apache .catalina .core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at

org .apache .catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
    at

org .apache .coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at

org.apache.coyote.http11.Http11Protocol $Http11ConnectionHandler.process(Http11Protocol.java:583)
    at
org.apache.tomcat.util.net.JIoEndpoint $Worker.run(JIoEndpoint.java:446)
    at java.lang.Thread.run(Thread.java:613)

Geoff

On 05/12/2008, at 5:58 AM, Howard Lewis Ship wrote:

I've created and uploaded a release of Tapestry 5.0.18, ready to be
voted

upon.

We've had the combined experience period of 5.0.16 and 5.0.17 to vet
the stability and correctness of this release,
and 5.0.18 is ready to be the final Tapestry 5.0 release.  If you
disagree, please vote -1 and offer a plan to bring
5.0.18 to readiness.

A +1 vote is to make  5.0.18 available as the FINAL 5.0 release.

The files are uploaded to:

http://people.apache.org/~hlship/tapestry-releases/<http://people.apache.org/%7Ehlship/tapestry-releases/ >
<http://people.apache.org/%7Ehlship/tapestry-releases/>

and a Maven repository:

http://people.apache.org/~hlship/tapestry-ibiblio-rsynch-repository/ <http://people.apache.org/%7Ehlship/tapestry-ibiblio-rsynch-repository/ >
<
http://people.apache.org/%7Ehlship/tapestry-ibiblio-rsynch-repository/


Please examine these files to determine if a new preview release,
5.0.18, is ready.

I've also created a 5.0.18 tag in Subversion:

http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.0.18/

On a successful vote, I'll move the files from these directories to
the proper distribution directories.

Vote will run for seven days (until Thu 11 2008); on success I'll move the voted artifacts into place and send out appropriate notifications.

--
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Regards,

Estevam Henrique Portela Mota e Silva
Handicapped Auditory = deaf
[EMAIL PROTECTED] / [EMAIL PROTECTED]
Programmer Java and Tapestry
Brazil - Fortaleza / CE



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Regards,

Estevam Henrique Portela Mota e Silva
Handicapped Auditory = deaf
[EMAIL PROTECTED] / [EMAIL PROTECTED]
Programmer Java and Tapestry
Brazil - Fortaleza / CE


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to