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

    Details

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

      Description

      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

        Activity

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development