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");
   }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to