Short of building a new sandbox test case I tried to be methodical in changing and deploying my existing application.
First I disabled Eclipse Building, and changed my ant script so it would clean old class files and rebuild with Sun 1.5 compiler every time. I use a JDK 1.5 from around December 2004. I then started out with no abstract methods in my Page classes and four <inject> instructions in the .page definition. Then I tried adding 'public abstract Market getMarket' to the super class and deployed... Exception. Tried to add the same declaration to the sub class.... Exception. Tried to remove the declaration from the super class... Page loaded. I then tried to add other properties and got them to work, but must admit that I the problem I had with getIdentity() was caused by not specifying public access. Henrik P.S. Thanks for putting all this effort in. And much respect for creating a truly top notch bit of software design. -----Original Message----- From: Howard M. Lewis Ship (JIRA) [mailto:[EMAIL PROTECTED] Sent: 16 November 2005 19:35 To: [EMAIL PROTECTED] Subject: [jira] Commented: (TAPESTRY-755) injection: Beware of where you declare the abstract method [ http://issues.apache.org/jira/browse/TAPESTRY-755?page=comments#action_1 2357812 ] Howard M. Lewis Ship commented on TAPESTRY-755: ----------------------------------------------- I'll be somewhat surprised if this is the case, especially for a Sun JDK. I'll be building a test case in my sandbox shortly. Are you absolutely sure about the property names, method names, and that everything is public and abstract? > injection: Beware of where you declare the abstract method > ---------------------------------------------------------- > > Key: TAPESTRY-755 > URL: http://issues.apache.org/jira/browse/TAPESTRY-755 > Project: Tapestry > Type: Bug > Components: Framework > Versions: 4.0 > Environment: Tested on Tomcat 5.5.9 / JDK 1.5 / FC2 > Reporter: Henrik Vendelbo > Priority: Minor > > Take the following class hierachy: BasePage -> MarketPage -> FeaturePage > If you inject into FeaturePage using an <inject> tag in the page file, but the abstract method is declared in MarketPage, the enhanced version of FeaturePage will _not_ have an implementation of the accessor method. > If you try to declare the abstract method in FeaturePage as well, it will _not_ have an implementation of the accessor method. > If you instead do an @InjectObject in MarketPage(and remember to remove the inject tag), the enhanced FeaturePage class will have an implementation of the accessor method. > I other words the current functionality requires that you inject into the class that first declares the abstract method, and not a sub class. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
