[ http://issues.apache.org/jira/browse/TAPESTRY-441?page=all ]

Howard M. Lewis Ship reassigned TAPESTRY-441:
---------------------------------------------

    Assign To: Howard M. Lewis Ship

> Poor reporting of duplicate method implementations
> --------------------------------------------------
>
>          Key: TAPESTRY-441
>          URL: http://issues.apache.org/jira/browse/TAPESTRY-441
>      Project: Tapestry
>         Type: Bug
>   Components: Framework
>     Versions: 4.0
>  Environment: jboss-4.0.2 with tomcat 5.5.9 on linux
>     Reporter: Thomas Pasch
>     Assignee: Howard M. Lewis Ship

>
> On a (abstract) Page that implements an interface it is impossible to inject 
> a property that
> is defined by an interface.
> This behaviour is a bug because 'Attempt to redefine method 
> de.atron.b2xsale.web.util.IPageBean getPageBean() '
> is not really true as IPageBean is an interface and the redefined method is 
> (still) abstract
> in my Caculate Page.
> The expected behaviour is to allow the 'redefinition' of the method without 
> any warning.
> Details:
> This page definition (still 3.0 style but this is a bug against 4.0-beta2; it 
> has work with 3.0.3):
> <?xml version="1.0" encoding="UTF-8"?>
> <page-specification class="de.atron.b2xsale.web.Calculate">
>     <description>Calculate</description>
>     <property-specification name="PageBean" 
> type="de.atron.b2xsale.web.util.IPageBean" 
>       persistent="yes" initial-value="new 
> de.atron.b2xsale.web.beans.CalculateBean()"/>
> ...
> </page-specification>
> leeds to the following Error:
> Error at classpath:/WEB-INF/Calculate.page, line 7, column 60: Error adding 
> property pageBean to class de.atron.b2xsale.web.Calculate: Attempt to 
> redefine method de.atron.b2xsale.web.util.IPageBean getPageBean() of class 
> $Calculate_25.
>   location:
> classpath:/WEB-INF/Calculate.page, line 7, column 60
> 2  
>   5  <!-- generated by Spindle, http://spindle.sourceforge.net -->
>   6
>   7  <page-specification class="de.atron.b2xsale.web.Calculate">
>   8
>   9   <description>Calculate</description>
>   10
>   11   <property-specification name="PageBean" 
> type="de.atron.b2xsale.web.util.IPageBean" 
>   12   persistent="yes" initial-value="new 
> de.atron.b2xsale.web.beans.CalculateBean()"/>
> org.apache.hivemind.ApplicationRuntimeException
>   Attempt to redefine method de.atron.b2xsale.web.util.IPageBean 
> getPageBean() of class $Calculate_25.
>   Stack Trace:
>   
> org.apache.hivemind.service.impl.ClassFabImpl.addMethod(ClassFabImpl.java:276)
>  
> org.apache.tapestry.enhance.EnhancementOperationImpl.addMethod(EnhancementOperationImpl.java:337)
>  
> org.apache.tapestry.enhance.EnhanceUtils.createSimpleAccessor(EnhanceUtils.java:71)
>  
> org.apache.tapestry.enhance.AbstractPropertyWorker.createProperty(AbstractPropertyWorker.java:69)
>  
> org.apache.tapestry.enhance.AbstractPropertyWorker.performEnhancement(AbstractPropertyWorker.java:45)
>  
> $EnhancementWorker_10551fa4f1f.performEnhancement($EnhancementWorker_10551fa4f1f.java)
>  
> $EnhancementWorker_10551fa4f21.performEnhancement($EnhancementWorker_10551fa4f21.java)
>  
> $EnhancementWorker_10551fa4f03.performEnhancement($EnhancementWorker_10551fa4f03.java)
>  
> org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:76)
>  
> $ComponentConstructorFactory_10551fa4eec.getComponentConstructor($ComponentConstructorFactory_10551fa4eec.java)
>  
> org.apache.tapestry.pageload.PageLoader.instantiatePage(PageLoader.java:611) 
> org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:639) 
> $IPageLoader_10551fa4ee8.loadPage($IPageLoader_10551fa4ee8.java) 
> $IPageLoader_10551fa4ee9.loadPage($IPageLoader_10551fa4ee9.java) 
> org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:118) 
> $IPageSource_10551fa4e58.getPage($IPageSource_10551fa4e58.java) 
> org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:252) 
> org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:235) 
> de.atron.b2xsale.web.Border.formGotoCalculate(Border.java:98)
> on the Page Caculate
> public abstract class Calculate extends AHiddenStatePage 
> { ... }
> with AHiddenStatePage with
> public abstract class AHiddenStatePage 
>     extends BasePage 
>     implements IHiddenStatePage, PageRenderListener 
> { ... }
> with the interface IHiddenStagePage
> public interface IHiddenStatePage extends IPage {
>     void setPageBean(IPageBean bean);
>     IPageBean getPageBean();  
> }

-- 
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