[
https://issues.apache.org/jira/browse/TAPESTRY-352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jesse Kuhnert updated TAPESTRY-352:
-----------------------------------
Fix Version/s: (was: 4.1.2)
4.1.3
> Catch common invalid abstract setter
> ------------------------------------
>
> Key: TAPESTRY-352
> URL: https://issues.apache.org/jira/browse/TAPESTRY-352
> Project: Tapestry
> Issue Type: Improvement
> Components: Framework
> Affects Versions: 4.0
> Reporter: Howard M. Lewis Ship
> Priority: Minor
> Fix For: 4.1.3
>
>
> I constantly attempt to define properties as follows:
> public abstract String setMessage(String message);
> Which is not valid; it should be a void method.
> However, I always spend a good amount of time parsing the following to
> determine that:
> Error at context:/WEB-INF/Home.page, line 6, column 21: Method 'public
> abstract java.lang.String com.vaisala.ww.ui.pages.Home.setMessage()'
> (declared in class com.vaisala.ww.ui.pages.Home) has no implementation in
> class com.vaisala.ww.ui.pages.Home (or enhanced subclass $Home_0).
> location: context:/WEB-INF/Home.page, line 6, column 21
> 1 <?xml version="1.0"?>
> 2 <!DOCTYPE page-specification PUBLIC
> 3 "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
> 4 "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
> 5
> 6 <page-specification>
> 7
> 8 <component id="register" type="DirectLink">
> 9 <binding name="listener" value="doRegister"/>
> 10 </component>
> 11 </page-specification>
> Stack Trace:
> *
> org.apache.hivemind.impl.StrictErrorHandler.error(StrictErrorHandler.java:39)
> * org.apache.hivemind.impl.ErrorLogImpl.error(ErrorLogImpl.java:40)
> *
> org.apache.tapestry.enhance.EnhancedClassValidatorImpl.validate(EnhancedClassValidatorImpl.java:60)
> *
> $EnhancedClassValidator_1049ff23ffb.validate($EnhancedClassValidator_1049ff23ffb.java)
> *
> $EnhancedClassValidator_1049ff23ffa.validate($EnhancedClassValidator_1049ff23ffa.java)
> *
> org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:85)
> *
> $ComponentConstructorFactory_1049ff23fe6.getComponentConstructor($ComponentConstructorFactory_1049ff23fe6.java)
> *
> $ComponentConstructorFactory_1049ff23fe5.getComponentConstructor($ComponentConstructorFactory_1049ff23fe5.java)
> *
> org.apache.tapestry.pageload.PageLoader.instantiatePage(PageLoader.java:611)
> * org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:639)
> * $IPageLoader_1049ff23fe1.loadPage($IPageLoader_1049ff23fe1.java)
> * $IPageLoader_1049ff23fe2.loadPage($IPageLoader_1049ff23fe2.java)
> * org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:118)
> * $IPageSource_1049ff23f4f.getPage($IPageSource_1049ff23f4f.java)
> * $IPageSource_1049ff23f4e.getPage($IPageSource_1049ff23f4e.java)
> * org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:252)
> This is a very common mistake (I think); Tapestry should have a special
> message for this case, such as "Setter methods must return void.".
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]