ColdFusion 2021

Hello!

Wonderful work on this project. Are there any plans to support Adobe CF2021 in p7xx or p8xx?

Best,
Spencer

1 Like

I haven’t looked at CF2021 yet but it should be supportable. Do you have exception logs / stack traces for any particular problems you’re dealing with?

Hi Justin,

I am able to stand up a Chelsea Boots-based installation in cf2016 without issue based on the current p740 branch. Once I move the site to cf2021 with wsconfig and (having exported/imported the CAR between instances) the first compilation issues I run up against are issues with parsing in core/packages/lib/objectBroker.cfc:225.

(apologies ahead of time while I work out formatting a stack trace)

The underlying issue seems to stem from the way defaults are declared for arguments using the coapiadmin scoped functions. The only successful workaround I have is to clear the default arg values (replace with empty string) to get compilation further along.

arguments.exception - struct
Cause	
arguments.exception - struct
Column	10
Detail	The start tag must have a matching end tag. An explicit end tag can be provided by adding </cffunction>. If the body of the tag is empty, you can use the shortcut <cffunction .../>.
KnownColumn	-1
KnownLine	-1
KnownText	&lt;unknown&gt;
Line	225
Message	Context validation error for the cffunction tag.
Snippet	<cffunction name="generateWebskinCacheID" access="public" output="false" returntype="string" hint="Generates a webskin Cache ID that can be hashed to store a specific version of a webskin cache.">
StackTrace	coldfusion.compiler.UnmatchedStartTagException: Context validation error for the cffunction tag. at coldfusion.compiler.cfml40.cffunction(cfml40.java:6751) at coldfusion.compiler.cfml40.processCfmlTags(cfml40.java:7436) at coldfusion.compiler.cfml40.cfml(cfml40.java:7480) at coldfusion.compiler.cfml40.start(cfml40.java:7949) at coldfusion.compiler.NeoTranslator.parsePage(NeoTranslator.java:656) at coldfusion.compiler.NeoTranslator.parsePage(NeoTranslator.java:636) at coldfusion.compiler.NeoTranslator.parseAndTransform(NeoTranslator.java:457) at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:407) at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:160) at coldfusion.runtime.TemplateClassLoader$TemplateCache$1.fetch(TemplateClassLoader.java:533) at coldfusion.util.LruCache.get(LruCache.java:180) at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:453) at coldfusion.util.AbstractCache.fetch(AbstractCache.java:58) at coldfusion.util.SoftCache.get_statsOff(SoftCache.java:153) at coldfusion.util.SoftCache.get(SoftCache.java:92) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:721) at coldfusion.runtime.RuntimeServiceImpl.getFile(RuntimeServiceImpl.java:1233) at coldfusion.runtime.RuntimeServiceImpl.resolveTemplatePath(RuntimeServiceImpl.java:1185) at coldfusion.runtime.TemplateProxyFactory.getResolvedFile(TemplateProxyFactory.java:1464) at coldfusion.runtime.TemplateProxyFactory.getTemplateFileHelper(TemplateProxyFactory.java:1812) at coldfusion.cfc.ComponentProxyFactory.getProxy(ComponentProxyFactory.java:77) at coldfusion.cfc.ComponentProxyFactory.getProxy(ComponentProxyFactory.java:56) at coldfusion.runtime.CFPage._CreateObject(CFPage.java:10451) at coldfusion.runtime.CFPage.CreateObject(CFPage.java:10473) at cflib2ecfc513165072$funcINIT.runFunction(C:\inetpub\farcry7\core\packages\lib\lib.cfc:12) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:629) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:559) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:522) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:469) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:444) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:316) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4239) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4202) at cfApplication2ecfc1338136132$funcINITAPPLICATIONSCOPE.runFunction(C:\inetpub\farcry7\core\Application.cfc:1018) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:629) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:559) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:522) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:469) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:444) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:316) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:4996) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:4976) at cfApplication2ecfc1338136132$funcONAPPLICATIONSTART.runFunction(C:\inetpub\farcry7\core\Application.cfc:366) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:629) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:559) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:522) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:469) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:444) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:687) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:4894) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:4875) at coldfusion.runtime.SuperScope.invoke(SuperScope.java:18) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4150) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:4114) at cfApplication2ecfc1394872188$funcONAPPLICATIONSTART.runFunction(C:\inetpub\farcry7\projects\chelsea\www\Application.cfc:5) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:629) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:559) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:522) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:469) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:444) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:316) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503) at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:115) at coldfusion.runtime.AppEventInvoker.onApplicationStart(AppEventInvoker.java:238) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:427) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:162) at coldfusion.filter.IpFilter.invoke(IpFilter.java:45) at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:97) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:232) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359) at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:460) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834)

This reveals an issue in the core/packages/coapi/coapiadmin.cfc:267 where the compiler complains “class coldfusion.runtime.RequestScope cannot be cast to class coldfusion.runtime.Struct (coldfusion.runtime.RequestScope and coldfusion.runtime.Struct are in unnamed module of loader coldfusion.bootstrap.BootstrapClassLoader @7951c3a2)” It seems to be confused about the way we dereference the qAll.webskin columns in the request scope. I’ve tried refactoring some of the naming here to get further along without any luck yet.

Appreciate any insight you can provide. Thanks!
Spencer