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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.3
    • 5.3
    • tapestry-core
    • 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.

      Attachments

        1. test-mixin.zip
          43 kB
          Laurent Guerin

        Activity

          People

            hlship Howard Lewis Ship
            lguerin Laurent Guerin
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: