You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by bu...@apache.org on 2004/11/24 02:35:18 UTC

DO NOT REPLY [Bug 32370] New: - FacesRequestProcessor call to lifecycle.render(context) needs to be wrapped in a try, finally

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=32370>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=32370

           Summary: FacesRequestProcessor call to lifecycle.render(context)
                    needs to be wrapped in a try, finally
           Product: Struts
           Version: 1.2.4
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: Struts-Faces Library
        AssignedTo: dev@struts.apache.org
        ReportedBy: cfraser@ticketweb.com


In FacesRequestProcessor.doForward() (as well as FacesTilesRequestProcessor), if
the call to lifecycle.render(context) throws an exception, then the context is
never given a chance to be released, resulting in an invalid FacesContext being
pegged to the executing thread.

The following code:
======== SNIP ========
        lifecycle.render(context);
        if (created) {
            if (log.isTraceEnabled()) {
                log.trace("  Releasing context for '" + uri + "'");
            }
            context.release();
        } else {
            if (log.isTraceEnabled()) {
                log.trace("  Rendering completed");
            }
        }
======== /SNIP ========

Should probably be changed to something like:
======== SNIP ========
        try {
            lifecycle.render(context);
            
        } finally {
            if (created) {
                if (log.isTraceEnabled()) {
                    log.trace("  Releasing context for '" + uri + "'");
                }
                context.release();
            } else {
                if (log.isTraceEnabled()) {
                    log.trace("  Rendering completed");
                }
            }
        }
======== /SNIP ========

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org