[richfaces-issues] [JBoss JIRA] Created: (RF-3821) fileUpload: f:validator doesn't work under myfaces.

Mikhail Vitenkov (JIRA) jira-events at lists.jboss.org
Fri Jun 27 12:04:31 EDT 2008


fileUpload: f:validator doesn't work under myfaces.
---------------------------------------------------

                 Key: RF-3821
                 URL: http://jira.jboss.com/jira/browse/RF-3821
             Project: RichFaces
          Issue Type: Bug
    Affects Versions: 3.2.2
         Environment: IE,FF,Opera, Safari(myfaces)
            Reporter: Mikhail Vitenkov
         Assigned To: Nick Belaevski


Step 1. Add f:validator for the rich:fileUpload:
<f:validator validatorId="fileUploadValidator"/>(don't forget register validator in faces-config).
Step 2. See code of FileUploadValidator.class validate method:

public void validate(FacesContext context, UIComponent component,
			Object value) throws ValidatorException {
		
		UploadItem upload = (UploadItem)value;
				
		if (upload.isTempFile()) {
	    	File file = upload.getFile();
	    	String name = file.getName();
	    	System.out.println("fileName: " + name);
	    	if (name == "ExadelMinsk.avi") {
				throw new ValidatorException(new FacesMessage("Test validator: ExadelMinsk.avi file is restricted!"));
			}
	    } else {
	    	ByteArrayOutputStream b = new ByteArrayOutputStream();
	    	try {
				b.write(upload.getData());
			} catch (IOException e) {				
				e.printStackTrace();
			}
	    }

	}
Step 3. Upload any file through the "Upload" component's control.

Actual behavior:
Validator isn't invoked & following exception appears:

java.lang.Exception: Stack trace
	at java.lang.Thread.dumpStack(Unknown Source)
	at org.apache.myfaces.taglib.core.ValidatorImplTag.createValidator(ValidatorImplTag.java:69)
	at javax.faces.webapp.ValidatorELTag.doStartTag(ValidatorELTag.java:47)
	at org.apache.jsp.FileUpload.FileUpload_jsp._jspx_meth_f_005fvalidator_005f0(FileUpload_jsp.java:521)
	at org.apache.jsp.FileUpload.FileUpload_jsp._jspx_meth_rich_005ffileUpload_005f0(FileUpload_jsp.java:381)
	at org.apache.jsp.FileUpload.FileUpload_jsp._jspx_meth_f_005fsubview_005f0(FileUpload_jsp.java:161)
	at org.apache.jsp.FileUpload.FileUpload_jsp._jspService(FileUpload_jsp.java:124)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.pages.Rich.Rich_jsp._jspx_meth_h_005fpanelGroup_005f0(Rich_jsp.java:716)
	at org.apache.jsp.pages.Rich.Rich_jsp._jspx_meth_h_005fpanelGrid_005f0(Rich_jsp.java:658)
	at org.apache.jsp.pages.Rich.Rich_jsp._jspx_meth_h_005fform_005f0(Rich_jsp.java:235)
	at org.apache.jsp.pages.Rich.Rich_jsp._jspService(Rich_jsp.java:144)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:338)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:480)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:334)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:191)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:265)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:341)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:503)
	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:175)
	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:844)
	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(Unknown Source)

-- 
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 richfaces-issues mailing list