private methods in class heirarchy override each other with @SetupRender
annotation
-----------------------------------------------------------------------------------
Key: TAP5-1263
URL: https://issues.apache.org/jira/browse/TAP5-1263
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.1.0.5
Reporter: Paul Stanton
I've found a strange issue with the @SetupRender annotation when used in a
class hierarchy.
Typically, in java 2 classes within a hierarchy can have the same signature for
a private method and not effect each other, so I would expect this to be the
case when both of these private methods are annotated with @SetupRender.
Therefore the output for case 1 and case 2 (below) should be the same and print
both messages "setupRender2", "setupRender1".
However case 1 only prints "setupRender2" meaning it somehow overwrites the
method in it's implementing class.
This is concerning because
1. there should never be a requirement that a sub-class knows of it's
super-classes implementation
2. if hierarchy does come into play, the subclass should override the super
class.
CASE 1:
------------------
public abstract class StartBase {
@SetupRender
private void init() {
log.debug("setupRender2");
}
}
public class Start extends StartBase {
@SetupRender
private void init() {
log.debug("setupRender1");
}
}
CASE 2:
------------------
public abstract class StartBase {
@SetupRender
private void init2() {
log.debug("setupRender2");
}
}
public class Start extends StartBase {
@SetupRender
private void init1() {
log.debug("setupRender1");
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.