You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org> on 2005/06/15 00:46:06 UTC
[jira] Created: (TAPESTRY-344) Unimplemented abstract method check broken
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
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 $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]: $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
component: $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]
location: context:/regwiz/RegistrationWizard.html, line 3
1 <html jwcid="@Border">
2
3 <div jwcid="wizardForm@WizardForm"
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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
[jira] Closed: (TAPESTRY-344) Unimplemented abstract method check broken
Posted by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org>.
[ http://issues.apache.org/jira/browse/TAPESTRY-344?page=all ]
Howard M. Lewis Ship closed TAPESTRY-344:
-----------------------------------------
Fix Version: 4.0
Resolution: Fixed
> 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
> Fix For: 4.0
>
> 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 $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]: $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
> component: $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]
> location: context:/regwiz/RegistrationWizard.html, line 3
> 1 <html jwcid="@Border">
> 2
> 3 <div jwcid="wizardForm@WizardForm"
> 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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
[jira] Assigned: (TAPESTRY-344) Unimplemented abstract method check broken
Posted by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org>.
[ http://issues.apache.org/jira/browse/TAPESTRY-344?page=all ]
Howard M. Lewis Ship reassigned TAPESTRY-344:
---------------------------------------------
Assign To: Howard M. Lewis Ship
> 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 $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]: $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
> component: $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]
> location: context:/regwiz/RegistrationWizard.html, line 3
> 1 <html jwcid="@Border">
> 2
> 3 <div jwcid="wizardForm@WizardForm"
> 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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
[jira] Commented: (TAPESTRY-344) Unimplemented abstract method check broken
Posted by "Kevin J. Menard, Jr. (JIRA)" <ta...@jakarta.apache.org>.
[ http://issues.apache.org/jira/browse/TAPESTRY-344?page=comments#action_12323140 ]
Kevin J. Menard, Jr. commented on TAPESTRY-344:
-----------------------------------------------
I've run into an issue recently where I didn't implement an abstract method, and Tapestry reported back the wrong method as being unimplemented. Clearly I was at fault for not implementing the method, but I had an abstract getter marked @Persist, and Tapestry indicated that was the one at fault. Perplexed, I spent a few hours trying to figure out if @Persist couldn't be inherited or something before I caught the error. Anyway, just adding another anecdote as to why this bug hurts.
> 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
>
> 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 $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]: $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
> component: $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]
> location: context:/regwiz/RegistrationWizard.html, line 3
> 1 <html jwcid="@Border">
> 2
> 3 <div jwcid="wizardForm@WizardForm"
> 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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org
[jira] Commented: (TAPESTRY-344) Unimplemented abstract method check broken
Posted by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org>.
[ 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 $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]: $Credentials_83.validateSubmission(Lorg/apache/tapestry/valid/IValidationDelegate;)V
> component: $WizardForm_72@17af46e[regwiz/RegistrationWizard/wizardForm]
> location: context:/regwiz/RegistrationWizard.html, line 3
> 1 <html jwcid="@Border">
> 2
> 3 <div jwcid="wizardForm@WizardForm"
> 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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org