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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 1.3-rc1
    • 1.5
    • Engine
    • None
    • Operating System: All
      Platform: All
    • 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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: