[jbossseam-issues] [JBoss JIRA] Closed: (JBSEAM-318) ViewHandler.createView using SeamViewHandler.calculateLocale tries to use already released FacesContext when used outside lifecycle

Pete Muir (JIRA) jira-events at lists.jboss.org
Fri Jan 25 13:29:21 EST 2008


     [ http://jira.jboss.com/jira/browse/JBSEAM-318?page=all ]

Pete Muir closed JBSEAM-318.
----------------------------

    Resolution: Out of Date

SeamViewHandler is dead.

> ViewHandler.createView using SeamViewHandler.calculateLocale tries to use already released FacesContext when used outside lifecycle
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-318
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-318
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.1
>         Environment: JBoss 4.0.4.GA
> MyFaces 1.1.3
>            Reporter: Tuomas Kiviaho
>
> ViewHandler.createView can't be used outside lifecycle phases. The locale calculation done by seam view handler using locale selector ends up in a NullPointerException (should propably be t be IllegalStateException)
> in MyFaces external context implementation if FacesContext had already been consumed by Seam threadlocals (Contexts) 
> One could ask why I am using createView outside lifecycle, but this is what happens when done so.
> StackTrace (NullPointerException):
> ApplicationMap.getAttribute(String) line: 42	
> ApplicationMap(AbstractAttributeMap).get(Object) line: 87	
> FacesApplicationContext.get(String) line: 46	
> FacesApplicationContext.get(Class) line: 79	
> Init.instance() line: 95	
> Component.getInstanceFromFactory(String) line: 1199	
> Component.getInstance(String, boolean, Object) line: 1176	
> Component.getInstance(String, ScopeType, boolean) line: 1169	
> LocaleSelector.instance() line: 123	
> SeamViewHandler.calculateLocale(FacesContext) line: 32	
> JspViewHandlerImpl.createView(FacesContext, String) line: 130	
> To tacle the symptom:
> 1. FacesContext.getExternalContext could be used inside Seam's FacesApplicationContext  instead of direct reference to see if the context has been released by catching the IllegalStateException that MyFaces throws. 
> 2. Using external context with RuntimeException precaution 
> (3. Blame the messenger)
> But what then can be done inside Seam goes beyond my knowledge, since Seam's component instantiation is a core part of the system. Of course this step can be left alone just by a try/catch around locale selector instantiation and continuing with a warning.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list