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.

Reply via email to