[ 
http://issues.apache.org/jira/browse/TAPESTRY-344?page=comments#action_12331027 
] 

Howard M. Lewis Ship commented on TAPESTRY-344:
-----------------------------------------------

I've been experimenting with beta-9.  What I've seen is that when a method is 
inherited from an interface, the check is broken.  It doesn't matter whether 
the class extends the interface, or whether a super-class extends the interface.

Worse, when the listener gets invoked, the unhandled Error (not Exception) 
bypasses Tapestry's exception reporting.

java.lang.AbstractMethodError: $UnimplementedAbstractMethod_9.doClick()V
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeTargetMethod(ListenerMethodInvokerImpl.java:214)
        at 
org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:155)
        at 
org.apache.tapestry.listener.ListenerMethodInvokerImpl.searchAndInvoke(ListenerMethodInvokerImpl.java:124)
        at 
org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:65)
        at 
org.apache.tapestry.listener.SyntheticListener.actionTriggered(SyntheticListener.java:51)
        at 
org.apache.tapestry.binding.ListenerMethodBinding.actionTriggered(ListenerMethodBinding.java:77)
        at 
org.apache.tapestry.listener.ListenerInvokerTerminator.invokeListener(ListenerInvokerTerminator.java:51)
        at 
$ListenerInvoker_106ad2e2d8e.invokeListener($ListenerInvoker_106ad2e2d8e.java)
        at 
$ListenerInvoker_106ad2e2d8d.invokeListener($ListenerInvoker_106ad2e2d8d.java)
        at org.apache.tapestry.link.DirectLink.trigger(DirectLink.java:105)
        at 
org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:144)
        at 
org.apache.tapestry.engine.DirectService.service(DirectService.java:130)
        at $IEngineService_106ad2e2de6.service($IEngineService_106ad2e2de6.java)
        at 
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:65)
        at 
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
        at 
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
        at 
$WebRequestServicer_106ad2e2dc3.service($WebRequestServicer_106ad2e2dc3.java)
        at 
org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:48)
        at 
$WebRequestServicerFilter_106ad2e2dc5.service($WebRequestServicerFilter_106ad2e2dc5.java)
        at 
$WebRequestServicer_106ad2e2dc7.service($WebRequestServicer_106ad2e2dc7.java)
        at 
$WebRequestServicer_106ad2e2dbf.service($WebRequestServicer_106ad2e2dbf.java)
        at 
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
        at 
$ServletRequestServicer_106ad2e2da3.service($ServletRequestServicer_106ad2e2da3.java)
        at 
org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
        at 
$ServletRequestServicerFilter_106ad2e2d9f.service($ServletRequestServicerFilter_106ad2e2d9f.java)
        at 
$ServletRequestServicer_106ad2e2da5.service($ServletRequestServicer_106ad2e2da5.java)
        at 
org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
        at 
$ServletRequestServicerFilter_106ad2e2d9d.service($ServletRequestServicerFilter_106ad2e2d9d.java)
        at 
$ServletRequestServicer_106ad2e2da5.service($ServletRequestServicer_106ad2e2da5.java)
        at 
org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
        at 
$ServletRequestServicerFilter_106ad2e2da1.service($ServletRequestServicerFilter_106ad2e2da1.java)
        at 
$ServletRequestServicer_106ad2e2da5.service($ServletRequestServicer_106ad2e2da5.java)
        at 
$ServletRequestServicer_106ad2e2d97.service($ServletRequestServicer_106ad2e2d97.java)
        at 
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:141)
        at 
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:342)
        at org.apache.tapestry.RedirectFilter.doFilter(RedirectFilter.java:103)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:286)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
        at org.mortbay.http.HttpServer.service(HttpServer.java:879)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:961)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
        at 
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)

> Unimplemented abstract method check broken
> ------------------------------------------
>
>          Key: TAPESTRY-344
>          URL: http://issues.apache.org/jira/browse/TAPESTRY-344
>      Project: Tapestry
>         Type: Bug
>   Components: Framework
>     Versions: 4.0
>     Reporter: Howard M. Lewis Ship
>     Assignee: Howard M. Lewis Ship

>
> Inadventently left off the implementation of a method (specified by an 
> interface).  I should have gotten an early exception about the unimplemented 
> method, but instead, got a late exception when attempting to invoke the 
> missing method:
> org.apache.hivemind.ApplicationRuntimeException
> Failure invoking listener method 'public void 
> com.vaisala.ww.ui.components.WizardForm.doFormSubmit()' on [EMAIL 
> PROTECTED]/RegistrationWizard/wizardForm]: 
> $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
> component:    [EMAIL PROTECTED]/RegistrationWizard/wizardForm]
> location:     context:/regwiz/RegistrationWizard.html, line 3
> 1     <html jwcid="@Border">
> 2     
> 3     <div jwcid="[EMAIL PROTECTED]"
> 4     pageNames="regwiz/Credentials,regwiz/Contact,regwiz/Billing"/>
> 5     
> 6     </html>
>  
> java.lang.AbstractMethodError
> $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
> Stack Trace:
>     * com.vaisala.ww.ui.components.WizardForm.doFormSubmit(WizardForm.java:84)
>     * sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     * 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     * 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     * java.lang.reflect.Method.invoke(Method.java:585)
>     * 
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeTargetMethod(ListenerMethodInvokerImpl.java:183)
>     * 
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:151)
>     * 
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.searchAndInvoke(ListenerMethodInvokerImpl.java:122)
>     * 
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:63)
>     * 
> org.apache.tapestry.listener.SyntheticListener.actionTriggered(SyntheticListener.java:51)
>     * 
> org.apache.tapestry.listener.ListenerInvokerTerminator.invokeListener(ListenerInvokerTerminator.java:51)
>     * 
> $ListenerInvoker_1047d032c35.invokeListener($ListenerInvoker_1047d032c35.java)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to