[
https://jira.jboss.org/jira/browse/RF-6947?page=com.atlassian.jira.plugin...
]
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