[ http://issues.apache.org/jira/browse/VELOCITY-98?page=comments#action_12330240 ]
Will Glass-Husain commented on VELOCITY-98: ------------------------------------------- Hi, Tested this against the unreleased Velocity 1.5. I couldn't duplicate the problem. I know it has been a long time, but has anyone hit this recently? Here's the code I used to test it: /** * Tests for fix of bug VELOCITY-98 where a #include followed by #parse * of the same file throws ClassCastException when caching is on. * @throws Exception */ public void testIncludeParseCaching () throws Exception { VelocityEngine ve = new VelocityEngine(); ve.setProperty("file.resource.loader.cache", "true"); ve.setProperty("file.resource.loader.path", FILE_RESOURCE_LOADER_PATH); ve.init(); Template template = ve.getTemplate("testincludeparse.vm"); Writer writer = new StringWriter(); VelocityContext context = new VelocityContext(); // will produce a ClassCastException if Velocity-98 is not solved template.merge(context, writer); writer.flush(); writer.close(); } And two files: testincludeparse.vm #include("include1.vm") #parse("include1.vm") include1.vm test > #parse / #include causing ClassCastException > -------------------------------------------- > > Key: VELOCITY-98 > URL: http://issues.apache.org/jira/browse/VELOCITY-98 > Project: Velocity > Type: Bug > Components: Source > Versions: 1.3-rc1 > Environment: Operating System: Linux > Platform: All > Reporter: Simon Christian > Priority: Minor > Fix For: 1.5 > > 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]