Hi, 
i have a jsp which uploads a file to a server. I uses <t:inputFileUpload> to
select a file. Here is the simle code: 

<%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk"; prefix="t" %>
 
<f:view>
<html>
<head>
</head>
<body>
<h:form id="uploadForm" enctype="multipart/form-data">
<t:inputHidden binding="#{myBean.fileStatusUI}"
value="#{myBean.fileStatusVal}"  id="fileStatus"/>
    <h:panelGrid columns="3" border="0" cellspacing="5">
 
        <h:outputLabel for="myFileId" value="File: "/>
 
        <t:inputFileUpload id="myFileId"
            value="#{myBean.myFile}"
            storage="file"
            required="true"/>
        <h:outputText value=" "/>
      
        <t:commandButton value="Submit"
            action="#{myBean.processMyFile}"/>
        <h:outputText value=" "/>
 
    </h:panelGrid>
</h:form>
</body>
</html>
</f:view>


When i click on commandbutton once, nothing happens. I dont see the managed
bean's println's in the console. Now when I click button again first
following error will come up:

MultipartRequestWrapper.parseRequest(96) | Exception while uploading file.
org.apache.commons.fileupload.FileUploadException: Processing of
multipart/form-data request failed. Stream ended unexpectedly
        at
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:429)
        at
org.apache.myfaces.webapp.filter.MultipartRequestWrapper.parseRequest(MultipartRequestWrapper.java:85)
        at
org.apache.myfaces.webapp.filter.MultipartRequestWrapper.getParameter(MultipartRequestWrapper.java:181)
        at
javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:203)
        at
com.sun.faces.context.RequestParameterMap.get(ExternalContextImpl.java:697)
        at
com.sun.faces.renderkit.ResponseStateManagerImpl.getTreeStructureToRestore(ResponseStateManagerImpl.java:135)
        at
org.ajax4jsf.application.AjaxStateManager.restoreStateFromSession(AjaxStateManager.java:183)
        at
org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:163)
        at
com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:250)
        at
org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:116)
        at
org.ajax4jsf.application.AjaxViewHandler.restoreView(AjaxViewHandler.java:154)
        at
oracle.adfinternal.view.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:232)
        at
org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:116)
        at
org.ajax4jsf.application.AjaxViewHandler.restoreView(AjaxViewHandler.java:154)
        at
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:177)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
        at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
        at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
        at
com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
        at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:619)
        at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
        at
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
        at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
        at
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
        at
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
        at
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
        at
oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
        at
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
        at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
        at java.lang.Thread.run(Thread.java:552)


But the code in managed bean is executed correctly and the file is getting
uploaded. 
I don't understand this behavior. I want the page to be submitted correctly
on single click of button.

Any pointers will be very helpful.
Thank!
-- 
View this message in context: 
http://www.nabble.com/Button-action-is-called-on-double-click-tf4393457.html#a12527023
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to