You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Lance Bader (JIRA)" <de...@myfaces.apache.org> on 2015/08/04 15:27:04 UTC

[jira] [Comment Edited] (MYFACES-4008) AbstractMethodError thrown by javax.servlet.http.Part.getSubmittedFileName()

    [ https://issues.apache.org/jira/browse/MYFACES-4008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653627#comment-14653627 ] 

Lance Bader edited comment on MYFACES-4008 at 8/4/15 1:26 PM:
--------------------------------------------------------------

The work around we implemented.
{code:java}
        // This is a dangerous work around because the this.getFile().getSubmittedFileName()
        // Fails with an AbstractMethodError exception.  It only works because we know our form
        // only uploads a single file.
        
        for (String varContentDisposition : varContentHeaders) {
            StringTokenizer varTokens = new StringTokenizer(varContentDisposition, ";");
            while (varTokens.hasMoreTokens()) {
                String varField = varTokens.nextToken().trim();
                if (varField.startsWith("filename")) {
                    String varFileName = varField.substring("filename".length() + 2, varField.length() -1);
                    this.setFileName(varFileName);
                }
            }
        }
{code}


was (Author: ldbader0):
The work around we implemented.
{code:java}
        // This is a dangerous work around because the this.getFile().getSubmittedFileName()
        // Fails with an AbstractMethod exception.  It only works because we know our form
        // only uploads a single file.
        
        for (String varContentDisposition : varContentHeaders) {
            StringTokenizer varTokens = new StringTokenizer(varContentDisposition, ";");
            while (varTokens.hasMoreTokens()) {
                String varField = varTokens.nextToken().trim();
                if (varField.startsWith("filename")) {
                    String varFileName = varField.substring("filename".length() + 2, varField.length() -1);
                    this.setFileName(varFileName);
                }
            }
        }
{code}

> AbstractMethodError thrown by javax.servlet.http.Part.getSubmittedFileName()
> ----------------------------------------------------------------------------
>
>                 Key: MYFACES-4008
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4008
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.6, 2.2.8
>         Environment: apache-tomcat-8.0.24
> myfaces-core-2.2.8-bin
> Eclipse Version: Luna Release (4.4.0)
> jdk1.8.0_51
> Windows 7 Professional (64 bit, 32 GB ram, Intel i7-4900MQ 2.80 Ghz)
>            Reporter: Lance Bader
>
> I can't believe I am the first person in the world to try this combination.
> {code}
> java.lang.AbstractMethodError: org.apache.myfaces.shared.renderkit.html.util.HttpPartWrapper.getSubmittedFileName()Ljava/lang/String;
> 	at com.mli.filecollector.BeanWelcome.actionSubmit(BeanWelcome.java:220)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
> 	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
> 	at org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
> 	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
> 	at javax.faces.component.UICommand.broadcast(UICommand.java:120)
> 	at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1172)
> 	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365)
> 	at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1658)
> 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:862)
> 	at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:42)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
> 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
> 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
> 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> 	at java.lang.Thread.run(Thread.java:745)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)