[ 
https://jira.jboss.org/jira/browse/RF-6947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12465619#action_12465619
 ] 

Nick Belaevski commented on RF-6947:
------------------------------------

File upload code has been reworked to store data in application-scoped bean to 
avoid serialization happening in clustered environments. Filter puts it there 
when request comes and removes, when request is processed. 

FacesContext.getCurrentInstance() can be null in filter because request has not 
reached Faces Servlet. Probably, all file data got read before FacesContext 
appeared, I'll add call to setupProgressData() in parseRequest() so that it 
will be 100% called when FacesContext is available.

> NullPointerException when uploading with rich:fileUpload
> --------------------------------------------------------
>
>                 Key: RF-6947
>                 URL: https://jira.jboss.org/jira/browse/RF-6947
>             Project: RichFaces
>          Issue Type: Bug
>    Affects Versions: 3.3.1
>         Environment: tomcat 6.0.18
> facelets 1.1.14
> myfaces 1.2.6
>            Reporter: Jan Ziegler
>            Assignee: Nick Belaevski
>             Fix For: 3.3.1
>
>
> When using rich:fileUpload in the current 3.3.1 Snapshot (20090427) a 
> nullpinter occurs when performing the upload:
> javax.faces.FacesException: Exception while decoding component : 
> {Component-Path : [Class: org.ajax4jsf.component.AjaxViewRoot,ViewId: 
> /examples/fileUpload/index.xhtml][Class: 
> org.richfaces.component.html.HtmlTabPanel,Id: j_id71][Class: 
> org.richfaces.component.html.HtmlTab,Id: j_id72][Class: 
> javax.faces.component.html.HtmlForm,Id: j_id74][Class: 
> org.richfaces.component.html.HtmlFileUpload,Id: j_id75]}
>       at 
> javax.faces.component.UIComponentBase.decode(UIComponentBase.java:583)
>       at javax.faces.component.UIInput.decode(UIInput.java:231)
>       at 
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:709)
>       at javax.faces.component.UIInput.processDecodes(UIInput.java:149)
>       at javax.faces.component.UIForm.processDecodes(UIForm.java:65)
>       at 
> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:705)
>       at 
> org.richfaces.component.UISwitchablePanel.processDecodes(UISwitchablePanel.java:170)
>       at 
> org.richfaces.component.UITabPanel.processDecodes(UITabPanel.java:155)
>       at 
> org.ajax4jsf.component.AjaxViewRoot$1.invokeContextCallback(AjaxViewRoot.java:392)
>       at 
> org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:238)
>       at 
> org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
>       at 
> org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> de.solseit.framework.base.lifecyle.FrameworkFilter.doFilter(FrameworkFilter.java:265)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:344)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
>       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
>       at 
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:347)
>       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
>       at 
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
>       at 
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
>       at 
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
>       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:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>       at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
>       at 
> org.richfaces.renderkit.FileUploadRendererBase.doDecode(FileUploadRendererBase.java:140)
>       at org.ajax4jsf.renderkit.RendererBase.decode(RendererBase.java:75)
>       at 
> javax.faces.component.UIComponentBase.decode(UIComponentBase.java:579)
>       ... 45 more
> the component is used in this very simple way (no listener-binding, for 
> simplicity):
>               <rich:fileUpload
>                               maxFilesQuantity="3"
>                               immediateUpload="false"
>                               acceptedTypes="jpg" />

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

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to