[
https://jira.jboss.org/jira/browse/RF-6947?page=com.atlassian.jira.plugin...
]
Jan Ziegler commented on RF-6947:
---------------------------------
Hi Nick,
thanks for checking. I found a "solution" - first of all: I couldn´t reproduce
the problem in a simple jsf scenario to send an example. We are using a self made jsf
framework including an own servlet filter so I checked again our components which are part
of the request process. The assumption I wrote when posting the web.xml concering our own
servlet filter that it would not clash with the richfaces filter seems to be wrong. I
still cannot explain what exactly the problem is.
This is what our servlet filter does in short words:
It checks some request and session attributes and write some others (which have quite
unique parameter names - so they should not collide with the richfaces parameter names)
for intializing our framework request context. But this modification of request and
session seems to lead to a problem during fileupload requests since RF-4187 (I guess). Per
configuration the RichFaces filter is the first filter in web.xml, afterwards our filter.
Now I changed the order: our filter is the first one which is called in the filterchain -
and it works! Magic...
As far as I understood when looking into the richfaces code the nullpointer from above
indicates that (only in combination with our servlet filter)
MultipartRequest.lookupRequest() returnes null which leads to a problem when
multipartRequest.getUploadItems() is called (FileuploadRendererBase). This must have been
different before 20090219. Either the lookup worked then or returning null was no
problem...
Well, anyway it´s working now, hopefully with no other side effects...
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: Tsikhon Kuprevich
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