Uploaded image for project: 'Velocity'
  1. Velocity
  2. VELOCITY-108

Use of Velocimacro forward reference and/or recursion causes error messages

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 1.3-rc1
    • Fix Version/s: 1.5
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      Operating System: All
      Platform: All
    • Bugzilla Id:
      13623

      Description

      I've confirmed that both forward referenced and recursed Velocimacros cause
      error messages in 1.3-rc1 and 1.3.1-rc2 (I assume the intervening versions are
      affected as well). I have not (yet) tested 1.4-dev.

      The error message currently spouted by
      org.apache.velocity.runtime.directive.VelocimacroProxy does not differentiate
      between forward referencing and recursion (it is a very similar problem), and is
      not representitive of the problem. It goes as follows:

      2002-10-14 16:03:49,562 - VM #linkIf: error : too few arguments to macro.
      Wanted 3 got 0

      This issue can be reproduced through either of the following setups:

      a) Use the #linkIf macro in your VM_global_library.vm, then define it later on
      in the file.

      b) Define a #linkIf macro which calls itself recursively.

      The expected behavior is that Velocity will either provide a more accurate
      description of what it wants from the user, or allow forward referencing and
      recursion without error messages. If not already in use, perhaps a multi-pass
      approach to dealing with Velocimacro libraries should be put in place to
      implement this.

        Issue Links

          Activity

          Hide
          cdmojoli@idea.com.py C. Daniel Mojoli B. added a comment -

          I am getting bit by this bug when trying to recurse to render a tree structure.

          Does velocity in general support recursive VM calling (protecting a given
          level's references from redefinition in other recursion levels)?

          Show
          cdmojoli@idea.com.py C. Daniel Mojoli B. added a comment - I am getting bit by this bug when trying to recurse to render a tree structure. Does velocity in general support recursive VM calling (protecting a given level's references from redefinition in other recursion levels)?
          Hide
          mrabato@earthlink.net Michael Abato added a comment -

          Created an attachment (id=12833)
          Simple test case illustrating this bug with trivial recursion

          Show
          mrabato@earthlink.net Michael Abato added a comment - Created an attachment (id=12833) Simple test case illustrating this bug with trivial recursion
          Hide
          nbubna Nathan Bubna added a comment -

          This issue is a duplicate of http://issues.apache.org/jira/browse/VELOCITY-71 I'm resolving this one to give preference to the earlier report.

          Show
          nbubna Nathan Bubna added a comment - This issue is a duplicate of http://issues.apache.org/jira/browse/VELOCITY-71 I'm resolving this one to give preference to the earlier report.
          Hide
          henning Henning Schmiedehausen added a comment -

          Close all resolved issues for Engine 1.5 release.

          Show
          henning Henning Schmiedehausen added a comment - Close all resolved issues for Engine 1.5 release.

            People

            • Assignee:
              Unassigned
              Reporter:
              dlr@finemaltcoding.com Daniel Rall
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development