Have you tried {{#set ($JQId = '#' + $Utils.getJQuerySelector($SparklineElementId))}}
eg #set ($ok = '#' + 'ok') $ok then outputs #ok ######## #set ($ok = "#" + 'ok') gives Failed to parse String literal at 2f336dfc-5fee-4e00-a58d-1b5a54729690:standard[line 1, column 13] org.apache.velocity.exception.ParseErrorException On 30 May 2018 at 15:09, Steve O'Hara (JIRA) <j...@apache.org> wrote: > > [ https://issues.apache.org/jira/browse/VELOCITY-891?page= > com.atlassian.jira.plugin.system.issuetabpanels:comment- > tabpanel&focusedCommentId=16495207#comment-16495207 ] > > Steve O'Hara commented on VELOCITY-891: > --------------------------------------- > > Added the stack trace to the description. > > > Upgrade to v2.0 causes parser failures > > -------------------------------------- > > > > Key: VELOCITY-891 > > URL: https://issues.apache.org/jira/browse/VELOCITY-891 > > Project: Velocity > > Issue Type: Bug > > Components: Engine > > Affects Versions: 2.0 > > Reporter: Steve O'Hara > > Priority: Major > > > > We are upgrading from v1.7 to v2.0 but have come across a problem almost > immediately. > > Our templates can contain a lot of Javascript with references to things > that begin with the '#' character e.g. Kendo JS templates. These used to be > ignored by 1.7 but now they are causing parser failures as follows; > > {{#set ($JQId = "#" + $Utils.getJQuerySelector($SparklineElementId))}} > > {{org.apache.velocity.exception.ParseErrorException: Failed to parse > String literal}} > > It is complaining about the {{"#"}} > > I can't find any directive that switches this off or a way to circumvent > it. > > A workaround is to replace the '#' with {{$HASH}} but we have thousands > of these and no way of fixing the end-user commited templates. > > {code:java} > > 2018-05-30 15:07:30 ERROR context.ContextLoader - Context initialization > failed > > org.springframework.beans.factory.BeanCreationException: Error creating > bean with name 'velocityConfig' defined in ServletContext resource > [/WEB-INF/applicationContext.xml]: Invocation of init method failed; > nested exception is org.apache.velocity.exception.VelocityException: > Velocimacro: Error using VM library: ../macros/macros-forms.vm > > at org.springframework.beans.factory.support. > AbstractAutowireCapableBeanFactory.initializeBean( > AbstractAutowireCapableBeanFactory.java:1514) > > at org.springframework.beans.factory.support. > AbstractAutowireCapableBeanFactory.doCreateBean( > AbstractAutowireCapableBeanFactory.java:519) > > at org.springframework.beans.factory.support. > AbstractAutowireCapableBeanFactory.createBean( > AbstractAutowireCapableBeanFactory.java:456) > > at org.springframework.beans.factory.support. > AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) > > at org.springframework.beans.factory.support. > DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry. > java:223) > > at org.springframework.beans.factory.support. > AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) > > at org.springframework.beans.factory.support. > AbstractBeanFactory.getBean(AbstractBeanFactory.java:191) > > at org.springframework.beans.factory.support. > DefaultListableBeanFactory.preInstantiateSingletons( > DefaultListableBeanFactory.java:638) > > at org.springframework.context.support.AbstractApplicationContext. > finishBeanFactoryInitialization(AbstractApplicationContext.java:942) > > at org.springframework.context.support.AbstractApplicationContext. > refresh(AbstractApplicationContext.java:482) > > at org.springframework.web.context.ContextLoader. > configureAndRefreshWebApplicationContext(ContextLoader.java:410) > > at org.springframework.web.context.ContextLoader. > initWebApplicationContext(ContextLoader.java:306) > > at org.springframework.web.context.ContextLoaderListener. > contextInitialized(ContextLoaderListener.java:112) > > at com._4ng.web.servlet.Initialisation.contextInitialized( > Initialisation.java:175) > > at org.apache.catalina.core.StandardContext.listenerStart( > StandardContext.java:4745) > > at org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5207) > > at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:150) > > 30-May-2018 15:07:30.618 SEVERE [null Initialisation] > org.apache.catalina.core.StandardContext.startInternal One or more > listeners failed to start. Full details will be found in the appropriate > container log file > > at org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:752) > > 30-May-2018 15:07:30.621 SEVERE [null Initialisation] > org.apache.catalina.core.StandardContext.startInternal Context [] startup > failed due to previous errors > > at org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:728) > > at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:734) > > at org.apache.catalina.startup.HostConfig.manageApp( > HostConfig.java:1702) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > > at org.apache.tomcat.util.modeler.BaseModelMBean.invoke( > BaseModelMBean.java:300) > > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke( > DefaultMBeanServerInterceptor.java:819) > > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke( > JmxMBeanServer.java:801) > > at org.apache.catalina.mbeans.MBeanFactory.createStandardContext( > MBeanFactory.java:482) > > at org.apache.catalina.mbeans.MBeanFactory.createStandardContext( > MBeanFactory.java:431) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > > at org.apache.tomcat.util.modeler.BaseModelMBean.invoke( > BaseModelMBean.java:300) > > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke( > DefaultMBeanServerInterceptor.java:819) > > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke( > JmxMBeanServer.java:801) > > at javax.management.remote.rmi.RMIConnectionImpl.doOperation( > RMIConnectionImpl.java:1468) > > at javax.management.remote.rmi.RMIConnectionImpl.access$300( > RMIConnectionImpl.java:76) > > at javax.management.remote.rmi.RMIConnectionImpl$ > PrivilegedOperation.run(RMIConnectionImpl.java:1309) > > at javax.management.remote.rmi.RMIConnectionImpl. > doPrivilegedOperation(RMIConnectionImpl.java:1401) > > at javax.management.remote.rmi.RMIConnectionImpl.invoke( > RMIConnectionImpl.java:829) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > > at sun.rmi.server.UnicastServerRef.dispatch( > UnicastServerRef.java:361) > > at sun.rmi.transport.Transport$1.run(Transport.java:200) > > at sun.rmi.transport.Transport$1.run(Transport.java:197) > > at java.security.AccessController.doPrivileged(Native Method) > > at sun.rmi.transport.Transport.serviceCall(Transport.java:196) > > at sun.rmi.transport.tcp.TCPTransport.handleMessages( > TCPTransport.java:568) > > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0( > TCPTransport.java:826) > > at sun.rmi.transport.tcp.TCPTransport$ > ConnectionHandler.lambda$run$0(TCPTransport.java:683) > > at java.security.AccessController.doPrivileged(Native Method) > > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run( > TCPTransport.java:682) > > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1149) > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:624) > > at java.lang.Thread.run(Thread.java:748) > > Caused by: org.apache.velocity.exception.VelocityException: > Velocimacro: Error using VM library: ../macros/macros-forms.vm > > at org.apache.velocity.runtime.VelocimacroFactory.initVelocimacro( > VelocimacroFactory.java:213) > > at org.apache.velocity.runtime.RuntimeInstance.init( > RuntimeInstance.java:251) > > at org.apache.velocity.app.VelocityEngine.init( > VelocityEngine.java:87) > > at org.springframework.ui.velocity.VelocityEngineFactory. > createVelocityEngine(VelocityEngineFactory.java:251) > > at org.springframework.web.servlet.view.velocity. > VelocityConfigurer.afterPropertiesSet(VelocityConfigurer.java:119) > > at org.springframework.beans.factory.support. > AbstractAutowireCapableBeanFactory.invokeInitMethods( > AbstractAutowireCapableBeanFactory.java:1573) > > at org.springframework.beans.factory.support. > AbstractAutowireCapableBeanFactory.initializeBean( > AbstractAutowireCapableBeanFactory.java:1511) > > ... 58 more > > Caused by: org.apache.velocity.exception.ParseErrorException: Failed to > parse String literal at ../macros/macros-forms.vm[line 3586, column 19] > > at org.apache.velocity.Template.process(Template.java:160) > > at org.apache.velocity.runtime.resource.ResourceManagerImpl. > loadResource(ResourceManagerImpl.java:426) > > at org.apache.velocity.runtime.resource.ResourceManagerImpl. > getResource(ResourceManagerImpl.java:343) > > at org.apache.velocity.runtime.RuntimeInstance.getTemplate( > RuntimeInstance.java:1554) > > at org.apache.velocity.runtime.RuntimeInstance.getTemplate( > RuntimeInstance.java:1534) > > at org.apache.velocity.runtime.VelocimacroFactory.initVelocimacro( > VelocimacroFactory.java:196) > > ... 64 more > > {code} > > > > > > -- > This message was sent by Atlassian JIRA > (v7.6.3#76005) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org > For additional commands, e-mail: dev-h...@velocity.apache.org > >