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

#parse / #include causing ClassCastException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.3-rc1
    • 1.5
    • Engine
    • None
    • Operating System: Linux
      Platform: All
    • 11126

    Description

      If caching is on, and a template has been previously cached due to a #parse or
      #include directive, subsequently using the other directive will cause a
      ClassCastException and fail.

      Example: if I have two templates, the first one loaded includes the line:
      #include( "include/header.vtl" )
      and the second one the line:
      #parse( "include/header.vtl" )

      When the second page is viewed, a ClassCastException is thrown with an error in
      the log like:

      [error] #parse() : arg = include/header.vtl. Exception :
      java.lang.ClassCastException:
      org.apache.velocity.runtime.resource.ContentResource

      A solution might be to include the resourceType as part of the key when
      caching/retrieving the resource, within the getResource() method of the
      org.apache.velocity.runtime.resource.ResourceManagerImpl class. Alternatively
      seperate caches could be used for the different types of Resource.

      Attachments

        Activity

          People

            Unassigned Unassigned
            simon@cpd.co.uk Simon Christian
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: