[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