You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "François Facon (JIRA)" <ji...@apache.org> on 2011/01/15 10:47:45 UTC

[jira] Created: (TAP5-1415) Binding not found for required parameter called zone in mixin

Binding not found for required parameter called zone in mixin
-------------------------------------------------------------

                 Key: TAP5-1415
                 URL: https://issues.apache.org/jira/browse/TAP5-1415
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.2.4, 5.2.3, 5.2.2, 5.2.1, 5.2.0
            Reporter: François Facon


in Jumpstart v 4.12.2  the page http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/ajaxselect1 

<div t:type="zone" t:id="searchZone" style="background-color: eee; padding: 15px">
		<form t:type="form" t:id="searchCriteria" style="margin: 0">
			<t:errors/>

			<t:label for="carMake"/>:
			<select t:type="select" t:id="carMake" t:model="carMakes" t:blankLabel="Choose..." 
				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarMake" t:zone="searchZone"></select>
	
			<t:label for="carModel"/>:
			<select t:type="select" t:id="carModel" t:model="carModels" t:blankLabel="Choose..." 
				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarModel" t:zone="searchZone"></select>

			Keywords: <input t:type="TextField" t:id="keyWords" 
				t:mixins="zoneUpdater" t:clientEvent="keyup" t:event="changeOfKeyWords" t:zone="searchZone"/> (optional)<br/> 
			
			<input type="submit" value="Save"/>
		</form>
	</div>
	<br/>

Use a mixin that declare a parameter called zone.

/* * The zone to be updated by us. / @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
private String zone;

this page works fine in 5.1.0.5 but in 5.2.4 an exception occured

An unexpected application exception has occurred.
* org.apache.tapestry5.ioc.internal.OperationException

  Parameter(s) 'ZoneUpdater.zone' are required for org.apache.tapestry5.corelib.components.Select, but have not been bound.

 
If I change the parameter name to zoneName, the binding works fine.

When debugging
public void bindParameter(String parameterName, Binding binding)
{
     if (bindings == null)bindings = CollectionFactory.newCaseInsensitiveMap();
     bindings.put(parameterName, binding);
}

in see the value LiteralBinding[zone: searchZone] for parameterName zone
the exception occured when isBinding is looking for parameter zone in component searchCriteria which is a form

According to Mr Lewis Ship

"This was a bit of unintended consequences ... the Mixin's zone
parameter was ignored and the Select components (new in 5.2) zone
parameter was bound instead.  Using zoneupdater.zone="searchZone",
which is Tapestry's way of identifying, in the template, that its the
zone parameter of the ZoneUpdater mixin that is bound, should fix it."

Regards
François

 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Closed] (TAP5-1415) Binding not found for required parameter called zone in mixin

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-1415.
--------------------------------------

    Resolution: Invalid
      Assignee: Howard M. Lewis Ship

I do see that there's a challenge with components and mixins: if the components change, they can invalidate the mixin after-the-fact.  However, the alternative is to freeze the components entirely, which is less acceptable than an occasional upgrade problem such as yours.

> Binding not found for required parameter called zone in mixin
> -------------------------------------------------------------
>
>                 Key: TAP5-1415
>                 URL: https://issues.apache.org/jira/browse/TAP5-1415
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.0, 5.2.1, 5.2.2, 5.2.3, 5.2.4
>            Reporter: François Facon
>            Assignee: Howard M. Lewis Ship
>
> in Jumpstart v 4.12.2  the page http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/ajaxselect1 
> <div t:type="zone" t:id="searchZone" style="background-color: eee; padding: 15px">
> 		<form t:type="form" t:id="searchCriteria" style="margin: 0">
> 			<t:errors/>
> 			<t:label for="carMake"/>:
> 			<select t:type="select" t:id="carMake" t:model="carMakes" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarMake" t:zone="searchZone"></select>
> 	
> 			<t:label for="carModel"/>:
> 			<select t:type="select" t:id="carModel" t:model="carModels" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarModel" t:zone="searchZone"></select>
> 			Keywords: <input t:type="TextField" t:id="keyWords" 
> 				t:mixins="zoneUpdater" t:clientEvent="keyup" t:event="changeOfKeyWords" t:zone="searchZone"/> (optional)<br/> 
> 			
> 			<input type="submit" value="Save"/>
> 		</form>
> 	</div>
> 	<br/>
> Use a mixin that declare a parameter called zone.
> /* * The zone to be updated by us. / @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
> private String zone;
> this page works fine in 5.1.0.5 but in 5.2.4 an exception occured
> An unexpected application exception has occurred.
> * org.apache.tapestry5.ioc.internal.OperationException
>   Parameter(s) 'ZoneUpdater.zone' are required for org.apache.tapestry5.corelib.components.Select, but have not been bound.
>  
> If I change the parameter name to zoneName, the binding works fine.
> When debugging
> public void bindParameter(String parameterName, Binding binding)
> {
>      if (bindings == null)bindings = CollectionFactory.newCaseInsensitiveMap();
>      bindings.put(parameterName, binding);
> }
> in see the value LiteralBinding[zone: searchZone] for parameterName zone
> the exception occured when isBinding is looking for parameter zone in component searchCriteria which is a form
> According to Mr Lewis Ship
> "This was a bit of unintended consequences ... the Mixin's zone
> parameter was ignored and the Select components (new in 5.2) zone
> parameter was bound instead.  Using zoneupdater.zone="searchZone",
> which is Tapestry's way of identifying, in the template, that its the
> zone parameter of the ZoneUpdater mixin that is bound, should fix it."
> Regards
> François
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (TAP5-1415) Binding not found for required parameter called zone in mixin

Posted by "Andreas Andreou (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12999208#comment-12999208 ] 

Andreas Andreou commented on TAP5-1415:
---------------------------------------

I understand the problem was introduced with 5.2 "hijacking" the zone parameter from ZoneUpdater... 
But since the error message is descriptive and you can indeed use zoneupdater.zone="searchZone", i don't see
what else can be done about this now.

> Binding not found for required parameter called zone in mixin
> -------------------------------------------------------------
>
>                 Key: TAP5-1415
>                 URL: https://issues.apache.org/jira/browse/TAP5-1415
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.0, 5.2.1, 5.2.2, 5.2.3, 5.2.4
>            Reporter: François Facon
>
> in Jumpstart v 4.12.2  the page http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/ajaxselect1 
> <div t:type="zone" t:id="searchZone" style="background-color: eee; padding: 15px">
> 		<form t:type="form" t:id="searchCriteria" style="margin: 0">
> 			<t:errors/>
> 			<t:label for="carMake"/>:
> 			<select t:type="select" t:id="carMake" t:model="carMakes" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarMake" t:zone="searchZone"></select>
> 	
> 			<t:label for="carModel"/>:
> 			<select t:type="select" t:id="carModel" t:model="carModels" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarModel" t:zone="searchZone"></select>
> 			Keywords: <input t:type="TextField" t:id="keyWords" 
> 				t:mixins="zoneUpdater" t:clientEvent="keyup" t:event="changeOfKeyWords" t:zone="searchZone"/> (optional)<br/> 
> 			
> 			<input type="submit" value="Save"/>
> 		</form>
> 	</div>
> 	<br/>
> Use a mixin that declare a parameter called zone.
> /* * The zone to be updated by us. / @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
> private String zone;
> this page works fine in 5.1.0.5 but in 5.2.4 an exception occured
> An unexpected application exception has occurred.
> * org.apache.tapestry5.ioc.internal.OperationException
>   Parameter(s) 'ZoneUpdater.zone' are required for org.apache.tapestry5.corelib.components.Select, but have not been bound.
>  
> If I change the parameter name to zoneName, the binding works fine.
> When debugging
> public void bindParameter(String parameterName, Binding binding)
> {
>      if (bindings == null)bindings = CollectionFactory.newCaseInsensitiveMap();
>      bindings.put(parameterName, binding);
> }
> in see the value LiteralBinding[zone: searchZone] for parameterName zone
> the exception occured when isBinding is looking for parameter zone in component searchCriteria which is a form
> According to Mr Lewis Ship
> "This was a bit of unintended consequences ... the Mixin's zone
> parameter was ignored and the Select components (new in 5.2) zone
> parameter was bound instead.  Using zoneupdater.zone="searchZone",
> which is Tapestry's way of identifying, in the template, that its the
> zone parameter of the ZoneUpdater mixin that is bound, should fix it."
> Regards
> François
>  

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] Commented: (TAP5-1415) Binding not found for required parameter called zone in mixin

Posted by "Andreas Andreou (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TAP5-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12999208#comment-12999208 ] 

Andreas Andreou commented on TAP5-1415:
---------------------------------------

I understand the problem was introduced with 5.2 "hijacking" the zone parameter from ZoneUpdater... 
But since the error message is descriptive and you can indeed use zoneupdater.zone="searchZone", i don't see
what else can be done about this now.

> Binding not found for required parameter called zone in mixin
> -------------------------------------------------------------
>
>                 Key: TAP5-1415
>                 URL: https://issues.apache.org/jira/browse/TAP5-1415
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.0, 5.2.1, 5.2.2, 5.2.3, 5.2.4
>            Reporter: François Facon
>
> in Jumpstart v 4.12.2  the page http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/ajaxselect1 
> <div t:type="zone" t:id="searchZone" style="background-color: eee; padding: 15px">
> 		<form t:type="form" t:id="searchCriteria" style="margin: 0">
> 			<t:errors/>
> 			<t:label for="carMake"/>:
> 			<select t:type="select" t:id="carMake" t:model="carMakes" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarMake" t:zone="searchZone"></select>
> 	
> 			<t:label for="carModel"/>:
> 			<select t:type="select" t:id="carModel" t:model="carModels" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarModel" t:zone="searchZone"></select>
> 			Keywords: <input t:type="TextField" t:id="keyWords" 
> 				t:mixins="zoneUpdater" t:clientEvent="keyup" t:event="changeOfKeyWords" t:zone="searchZone"/> (optional)<br/> 
> 			
> 			<input type="submit" value="Save"/>
> 		</form>
> 	</div>
> 	<br/>
> Use a mixin that declare a parameter called zone.
> /* * The zone to be updated by us. / @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
> private String zone;
> this page works fine in 5.1.0.5 but in 5.2.4 an exception occured
> An unexpected application exception has occurred.
> * org.apache.tapestry5.ioc.internal.OperationException
>   Parameter(s) 'ZoneUpdater.zone' are required for org.apache.tapestry5.corelib.components.Select, but have not been bound.
>  
> If I change the parameter name to zoneName, the binding works fine.
> When debugging
> public void bindParameter(String parameterName, Binding binding)
> {
>      if (bindings == null)bindings = CollectionFactory.newCaseInsensitiveMap();
>      bindings.put(parameterName, binding);
> }
> in see the value LiteralBinding[zone: searchZone] for parameterName zone
> the exception occured when isBinding is looking for parameter zone in component searchCriteria which is a form
> According to Mr Lewis Ship
> "This was a bit of unintended consequences ... the Mixin's zone
> parameter was ignored and the Select components (new in 5.2) zone
> parameter was bound instead.  Using zoneupdater.zone="searchZone",
> which is Tapestry's way of identifying, in the template, that its the
> zone parameter of the ZoneUpdater mixin that is bound, should fix it."
> Regards
> François
>  

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Closed] (TAP5-1415) Binding not found for required parameter called zone in mixin

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-1415.
--------------------------------------

    Resolution: Invalid
      Assignee: Howard M. Lewis Ship

I do see that there's a challenge with components and mixins: if the components change, they can invalidate the mixin after-the-fact.  However, the alternative is to freeze the components entirely, which is less acceptable than an occasional upgrade problem such as yours.

> Binding not found for required parameter called zone in mixin
> -------------------------------------------------------------
>
>                 Key: TAP5-1415
>                 URL: https://issues.apache.org/jira/browse/TAP5-1415
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.0, 5.2.1, 5.2.2, 5.2.3, 5.2.4
>            Reporter: François Facon
>            Assignee: Howard M. Lewis Ship
>
> in Jumpstart v 4.12.2  the page http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/ajaxselect1 
> <div t:type="zone" t:id="searchZone" style="background-color: eee; padding: 15px">
> 		<form t:type="form" t:id="searchCriteria" style="margin: 0">
> 			<t:errors/>
> 			<t:label for="carMake"/>:
> 			<select t:type="select" t:id="carMake" t:model="carMakes" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarMake" t:zone="searchZone"></select>
> 	
> 			<t:label for="carModel"/>:
> 			<select t:type="select" t:id="carModel" t:model="carModels" t:blankLabel="Choose..." 
> 				t:mixins="zoneUpdater" t:clientEvent="change" t:event="changeOfCarModel" t:zone="searchZone"></select>
> 			Keywords: <input t:type="TextField" t:id="keyWords" 
> 				t:mixins="zoneUpdater" t:clientEvent="keyup" t:event="changeOfKeyWords" t:zone="searchZone"/> (optional)<br/> 
> 			
> 			<input type="submit" value="Save"/>
> 		</form>
> 	</div>
> 	<br/>
> Use a mixin that declare a parameter called zone.
> /* * The zone to be updated by us. / @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
> private String zone;
> this page works fine in 5.1.0.5 but in 5.2.4 an exception occured
> An unexpected application exception has occurred.
> * org.apache.tapestry5.ioc.internal.OperationException
>   Parameter(s) 'ZoneUpdater.zone' are required for org.apache.tapestry5.corelib.components.Select, but have not been bound.
>  
> If I change the parameter name to zoneName, the binding works fine.
> When debugging
> public void bindParameter(String parameterName, Binding binding)
> {
>      if (bindings == null)bindings = CollectionFactory.newCaseInsensitiveMap();
>      bindings.put(parameterName, binding);
> }
> in see the value LiteralBinding[zone: searchZone] for parameterName zone
> the exception occured when isBinding is looking for parameter zone in component searchCriteria which is a form
> According to Mr Lewis Ship
> "This was a bit of unintended consequences ... the Mixin's zone
> parameter was ignored and the Select components (new in 5.2) zone
> parameter was bound instead.  Using zoneupdater.zone="searchZone",
> which is Tapestry's way of identifying, in the template, that its the
> zone parameter of the ZoneUpdater mixin that is bound, should fix it."
> Regards
> François
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira