Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-1642

A mixin parameter that is required but also provides a default property results in an "unbound parameter" exception, starting in Tapestry 5.3


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.3
    • Fix Version/s: 5.3
    • Component/s: tapestry-core
    • Labels:


      In our Tapestry 5 library (exanpe-t5-lib), we provide some mixins containing some parameters declared as "required=true" AND with a default value.
      These parameters are required for the operation of the mixin.

      For example, in a Dialog mixin, we have :

      @Parameter(value = "confirm", required = true, allowNull = false, defaultPrefix = BindingConstants.LITERAL)
      private DialogRenderModeEnum renderMode;

      If this required parameter is not explicity bound in the TML :

      • In 5.2.6, everything is ok : the default value is used
      • In 5.3-beta-5, we get the following Exception :
        Parameter(s) 'Dialog.renderMode' are required for org.apache.tapestry5.corelib.components.ActionLink, but have not been bound.

      The TML example looks like this :
      <t:actionlink t:id="link1" t:mixins="exanpe/dialog">link1</t:actionlink>

      With a simple type for mixin parameter (Integer or String), the same error occurs.
      This behavior is only for mixins, not for components.

      A simplified project that duplicates the issue has been attached : the mixin Emphasis used into Index.tml is ok in 5.2.6 and ko in 5.3.


        1. test-mixin.zip
          43 kB
          Laurent Guerin



            • Assignee:
              hlship Howard M. Lewis Ship
              lguerin Laurent Guerin
            • Votes:
              1 Vote for this issue
              3 Start watching this issue


              • Created: