Tapestry overrides page methods that implement a superclass's abstract method
-----------------------------------------------------------------------------
Key: TAPESTRY-1545
URL: https://issues.apache.org/jira/browse/TAPESTRY-1545
Project: Tapestry
Issue Type: Bug
Components: Framework
Affects Versions: 4.1.1
Reporter: Robert J. Walker
If you have an abstract accessor method in a page class, then implement the
getter in the subclass, then call that method in an OGNL expression on the
page, the implemented method never gets called. Instead, Tapestry overrides it
when it enhances the page class with its own version. Tapestry should not
override existing methods on page classes. An example follows. Bug is fixed
when MySubclassPage displays "Fixed" instead of "Borken".
_____
MySuperclassPage.java
public abstract class MySuperclassPage extends
org.apache.tapestry.html.BasePage {
public abstract boolean isMyBooleanProperty();
}
_____
MySubclassPage.java
public abstract class MySubclassPage extends MySuperclassPage {
public boolean isMyBooleanProperty() {
return true; // This never gets called
}
}
_____
MySubclassPage.html
<span jwcid="@Insert" value="ognl:myBooleanProperty ? 'Fixed' : 'Borken'" />
_____
MySubclassPage.page
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<page-specification class="mypackage.MySubclassPage">
</page-specification>
--
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]