[richfaces-issues] [JBoss JIRA] Commented: (RF-6947) NullPointerException when uploading with rich:fileUpload

Nick Belaevski (JIRA) jira-events at lists.jboss.org
Mon May 4 12:20:47 EDT 2009


    [ 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

        



More information about the richfaces-issues mailing list