Simple example: some.package.base;
import org.apache.tapestry5.annotations.Parameter; public abstract class AbstractComponent { @Parameter(required=true, principal=true)//happens regardless of parameter settings, but. private String foo; String defaultFoo() { return "bar"; } } some.package.components; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.MarkupWriter; import some.package.base.AbstractComponent; public class AComponent extends AbstractComponent { @Parameter private String baz; String defaultBaz() { return getFoo() + "-baz"; } void beginRender(MarkupWriter writer) { writer.writeRaw("baz is: " + baz); writer.writeRaw(" Foo is: " + getFoo()); } } Now if you include AComponent on a tapestry page and render, you get: baz is: null-baz Foo is bar So the use of getFoo in the defaultBaz method is invalid, /even though foo is a "principal" parameter/. Note, however, that if I move (or duplicate) the "foo" parameter in the "AComponent" class, then things work as expected, and you get "baz is: bar-baz". Anybody else see this behavior? Robert --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org