We should definitely forbid to bind a parameter to itself. Can you pleas fill a JIRA issue?
On Sat, Feb 5, 2011 at 1:32 PM, Joost Schouten (mailing lists) < joost...@jsportal.com> wrote: > Hi, > > I had the following: > > @Property > @Parameter(value="actionZone") > private String actionZone; > > which caused the exception at [2]. I would not expect this behaviour > based on the documentation at [1] and am wondering if I should file a > bug report. The situation probably won't happen a lot and in all > honesty having the default value for a property the same as my > property name does not deserve beauty prize. Though still I have > provided the default "value" for a String parameter which should have > a default literal binding and thus do not expect the generated > getActionZone() method to be invoked. (Hence the StackOverflowError). > > My quick fix was to change it to: > > @Property > @Parameter(value="literal:actionZone") > private String actionZone; > > But I do believe there is nothing wrong with my first option. And if > Tapesty is clever enough to change the default binding if it finds a > property by that name maybe an Exception should be thrown in the case > that the default is bound to itself. > > Cheers, > Joost > > > > [1] http://tapestry.apache.org/tapestry5/guide/parameters.html > > [2]: the exception: > > > java.lang.StackOverflowError > at > org.apache.tapestry5.internal.transform.PropertyWorker$2.advise(PropertyWorker.java:100) > at > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable.getActionZone(TimeExpenseTable.java) > at > $PropertyConduit_12df355dff1.get($PropertyConduit_12df355dff1.java) > at > org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:59) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.readFromBinding(ParameterWorker.java:314) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.get(ParameterWorker.java:413) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$get_actionZone(TimeExpenseTable.java) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$readaccess_actionZone(TimeExpenseTable.java) > at $FieldAccess_12df355dfd9.read($FieldAccess_12df355dfd9.java) > at > org.apache.tapestry5.internal.services.DelegateFieldAccess.read(DelegateFieldAccess.java:38) > at > org.apache.tapestry5.internal.transform.PropertyWorker$2.advise(PropertyWorker.java:100) > at > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable.getActionZone(TimeExpenseTable.java) > at > $PropertyConduit_12df355dff1.get($PropertyConduit_12df355dff1.java) > at > org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:59) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.readFromBinding(ParameterWorker.java:314) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.get(ParameterWorker.java:413) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$get_actionZone(TimeExpenseTable.java) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$readaccess_actionZone(TimeExpenseTable.java) > at $FieldAccess_12df355dfd9.read($FieldAccess_12df355dfd9.java) > at > org.apache.tapestry5.internal.services.DelegateFieldAccess.read(DelegateFieldAccess.java:38) > at > org.apache.tapestry5.internal.transform.PropertyWorker$2.advise(PropertyWorker.java:100) > at > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable.getActionZone(TimeExpenseTable.java) > at > $PropertyConduit_12df355dff1.get($PropertyConduit_12df355dff1.java) > at > org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:59) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.readFromBinding(ParameterWorker.java:314) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.get(ParameterWorker.java:413) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$get_actionZone(TimeExpenseTable.java) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$readaccess_actionZone(TimeExpenseTable.java) > at $FieldAccess_12df355dfd9.read($FieldAccess_12df355dfd9.java) > at > org.apache.tapestry5.internal.services.DelegateFieldAccess.read(DelegateFieldAccess.java:38) > at > org.apache.tapestry5.internal.transform.PropertyWorker$2.advise(PropertyWorker.java:100) > at > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable.getActionZone(TimeExpenseTable.java) > at > $PropertyConduit_12df355dff1.get($PropertyConduit_12df355dff1.java) > at > org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:59) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.readFromBinding(ParameterWorker.java:314) > at > org.apache.tapestry5.internal.transform.ParameterWorker$2$1.get(ParameterWorker.java:413) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$get_actionZone(TimeExpenseTable.java) > at > com.jsportal.projectportal.client.http.components.table.TimeExpenseTable._$readaccess_actionZone(TimeExpenseTable.java) > at $FieldAccess_12df355dfd9.read($FieldAccess_12df355dfd9.java) > etc...... > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- Best regards, Igor Drobiazko http://tapestry5.de