Can't have more than 1 space after `param` if the parameter is scoped

Description

param variables.foo="bar"; and param  foo="bar"; works, param  variables.foo="bar"; does not. It results in an exception: "Invalid Identifier, the following character cannot be part of a identifier [.]"

Stack trace:

Invalid Identifier, the following character cannot be part of a identifier [.] at lucee.transformer.cfml.tag.CFMLTransformer.identifier(CFMLTransformer.java:1126):1126 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.attributeName(AbstrCFMLScriptTransformer.java:1976):1976 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.attribute(AbstrCFMLScriptTransformer.java:1944):1944 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.attributes(AbstrCFMLScriptTransformer.java:1886):1886 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer._paramStatement(AbstrCFMLScriptTransformer.java:1362):1362 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.paramStatement(AbstrCFMLScriptTransformer.java:1285):1285 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:211):211 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:201):201 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statements(AbstrCFMLScriptTransformer.java:184):184 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.block(AbstrCFMLScriptTransformer.java:1857):1857 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:221):221 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.closurePart(AbstrCFMLScriptTransformer.java:896):896 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.funcStatement(AbstrCFMLScriptTransformer.java:740):740 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:212):212 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:201):201 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statements(AbstrCFMLScriptTransformer.java:184):184 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.block(AbstrCFMLScriptTransformer.java:1857):1857 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:221):221 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.__multiAttrStatement(AbstrCFMLScriptTransformer.java:994):994 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer._multiAttrStatement(AbstrCFMLScriptTransformer.java:933):933 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.tagStatement(AbstrCFMLScriptTransformer.java:920):920 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:219):219 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statement(AbstrCFMLScriptTransformer.java:201):201 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statements(AbstrCFMLScriptTransformer.java:184):184 at lucee.transformer.cfml.script.AbstrCFMLScriptTransformer.statements(AbstrCFMLScriptTransformer.java:168):168 at lucee.transformer.cfml.script.CFMLScriptTransformer.transform(CFMLScriptTransformer.java:50):50 at lucee.transformer.cfml.tag.CFMLTransformer.tag(CFMLTransformer.java:600):600 at lucee.transformer.cfml.tag.CFMLTransformer.body(CFMLTransformer.java:331):331 at lucee.transformer.cfml.tag.CFMLTransformer.transform(CFMLTransformer.java:271):271 at lucee.transformer.cfml.tag.CFMLTransformer.transform(CFMLTransformer.java:171):171 at lucee.runtime.compiler.CFMLCompilerImpl.compile(CFMLCompilerImpl.java:71):71 at lucee.runtime.PageSourceImpl._compile(PageSourceImpl.java:335):335 at lucee.runtime.PageSourceImpl.compile(PageSourceImpl.java:309):309 at lucee.runtime.PageSourceImpl.loadPhysical(PageSourceImpl.java:253):253 at lucee.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:175):175 at lucee.runtime.component.ComponentLoader.loadComponent(ComponentLoader.java:456):456 at lucee.runtime.component.ComponentLoader.loadComponent(ComponentLoader.java:388):388 at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:110):110 at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:35):35 at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2257):2257 at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2224):2224 at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:456):456 at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:47):47 at javax.servlet.http.HttpServlet.service(HttpServlet.java:727):727 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303):303 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208):208 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220):220 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122):122 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503):503 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170):170 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103):103 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116):116 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421):421 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070):1070 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611):611 at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314):314 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145):1145 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615):615 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61):61 at java.lang.Thread.run(Thread.java:745):745

Environment

Debian

Activity

Show:

Ryan Guill 9 November 2015 at 14:21

This also breaks:

param variables.foo = "bar" //notice no semicolon and spaces around the =

Also there are these other `param` related issues:

https://luceeserver.atlassian.net/browse/LDEV-69
https://luceeserver.atlassian.net/browse/LDEV-294

Details

Assignee

Reporter

Priority

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Affects versions

Created 9 November 2015 at 14:13
Updated 19 May 2021 at 11:07

Flag notifications