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.