Adobe ColdFusion (2021 release) | Release Notes

Welcome to ColdFusion (2021 release), a creative progression in Adobe's efforts to help web developers build robust Internet applications.

Adobe ColdFusion (2021 release) Downloads

The following are the download locations for ColdFusion (2021 release):

Location Description
Adobe ColdFusion (2021 release) - Product Downloads Download a free Developer Edition or Trial Edition of Adobe ColdFusion (2021 release).
Adobe ColdFusion (2021 release) - Developer Tools Download tools that help you develop ColdFusion applications quickly and efficiently.

Release Highlights | What's New for Adobe ColdFusion (2021 release)

Adobe ColdFusion 2021 is a feature packed version of ColdFusion with benefits ranging from better security, performance, scalability, language enhancements along with the all new Performance Monitoring Toolset.

Location Description
What's New for Adobe ColdFusion (2021 release)
A quick summary of the new and enhanced features in this release.
Go through the document before you install the 2021 release of ColdFusion.
Adobe ColdFusion (2021 release) Documentation
Your entry point to ColdFusion documentation.

List of bugs fixed in ColdFusion (2021 release)

Bug Id Description Product Area
CF-4180400 When managing multiple instances of coldfusion running on a single host, using tabs in any web browser, the CFAUTHORIZATION_cfadmin cookie is cleared every time the login page is visited/auto-refreshed.  This logs out all prior authenticated /CFIDE/administrator sessions forcing a constant re-login for every instance. Administrator
CF-4202953 CF Scripts URI Should be Random after locking down a server Administrator
CF-4205372 False Positive for CFCollection "path" Attribute on Code Analyzer Administrator
CF-4209577 Datasource deleted when clicking on "Cancel" of delete confirmation popup Administrator
CF-4202664 Typo in CF Admin's collection deletion error. Administrator
CF-4202007 When you add/index files from CF admin, the documents count for the Solr collection does not update. Administrator
CF-4200425 HTML security header "X-Content-Type- Options: nosniff" breaks various '.gif' icons in CF Admin on IE11. Administrator
CF-4204493 cfwindow and cfform not working after hotfix 1 Ajax
CF-4204857 Allow upload of files with no extension Ajax
CF-4205050 Submitting form with CFGRID - Exception in The submitted cfgrid form field is corrupt Ajax
CF-4205063 ColdFusion.Window.create with initshow=false causes javascript error Ajax
CF-4207973 Persistent exception when you dump the result of the function cacheGetAllIds() Caching
CF-4210052 Redis Caching - end of stream error when caching queries and structures Caching
CF-4208329 Null Pointer Exception occurs on Admin caching page when you submit Redis caching info. Caching
CF-4156552 Add support for multiple caching engines. Caching
CF-4204175 The imageRotate function with bilinear or bicubic with PNG gives Incorrect pixel stride. CFIMAGE
CF-4203369 URL does not work as expected in CFCHART once show3d is set to yes. Charting
CF-4204356 URL not working on client-side CFCHART Charting
CF-4204631 Incorrect error message from CFSTOREDPROC if you do not specify the datasource attribute. Database
CF-4201341 You are unable to create a DSN using a MS Access Database. Database
CF-4204465 Add the option to connect to Oracle databases using SERVICE_NAME instead of SID Database
CF-4206999 Error when composing cfstoredproc  invocations on stored procedures from different databases and schemas Database
CF-4204879 Dates beyond 12/31/9999 are considered "valid", yet crash or result in data loss. Date/time
CF-4204880 Dateformat() performs poorly under load due to internal NumberFormatExceptions Date/time
CF-4208948 Code Errors When comparing an identical time stamp Date/time
CF-4204413 CFDump is missing CSS and JavaScript when output is set to false Debugging
CF-4204866  CFDump does not send JS and CSS to browser when used in a Component (CFC).  This results in no formatting of the tables for structs, arrays, nor objects and makes the info very hard to read Debugging
CF-4201076 Debug consumes almost all available memory even when showdebugoutput="false". Debugging
CF-4202269 Typo in error message of DecodeBinary function. Debugging
CF-4205335 CF2018 Docker image "cli" command (REPL) fails, sends container into 100% cpu spin Docker
CF-4206253 Issue with underlines in format structure of SpreadsheetFormatCell. Document Management
CF-4146073 Redaction of words in a PDF. Document Management
CF-4198342 Intermittently, cfdocument will simply stop working completely and it simply times out Document Management
CF-4205366 SpreadsheetAddRows throws java.lang.ArrayStoreException when 2d array contains mixed value types Document Management
CF-4205373 False positive for missing CFPDFParam source attribute Document Management
CF-4206454 Error when using 'word-break: break-all;' used inside <cfdocument> tag Document Management
CF-4204990 CFEXCHANGECONNECTION documentation update. Documentation
CF-4204281 Outputting a query with a group results in case-insensitive grouping when the default behavior is case-sensitive. Documentation
CF-4208380 Unable to search or copy text from the PDF on CFNext Docker images. Documentation
CF-4206170 The example of FilePath() in documentation uses invalid parameter filePath when it should be file. Documentation
CF-4205913 The createobject help page does not mention wsversion arguments. Documentation
CF-4203969 Docs for CF Mobile feature have a link that leads to 404. Documentation
CF-4203412 CacheSetProperties/CacheRegionNew functions are not properly documented. Documentation
CF-4203272 "Using closures" doc has many code examples that use optional arguments that do not work. Documentation
CF-4203085 EULA doesn't cover container/Docker scenarios. Documentation
CF-4203084 EULA for ColdFusion 2018 is not hosted on Adobe website. Documentation
CF-4203077 Toolkit should be Toolset in Performance Monitoring Toolset docs. Documentation
CF-4203076 Auto-Lockdown installer docs are missing. Documentation
CF-4203051 Error in docs, showing how to refer to an array element Documentation
CF-4202428 Document silent installers for Add-on services. Documentation
CF-4207423 If you write a file to a directory that contains a colon, you will no longer be able to read/delete from that directory. File Management
CF-4202339 cffile action="rename" causes S3 file to lose it's previous ACL value(s) File Management
CF-4203714 When running the migration wizard from ColdFusion 11 Std to 2016 Std, scheduled tasks fail to get imported. Installation
CF-3550103 support specifying the port for built-in web server during installation Installation
CF-4204267  Any folder named "connector" will not properly function in an IIS/ColdFusion 2018 configuration - CFC files do not work. Installation
CF-4203443 Session scope java integration has case sensitivity issues. Java Integration
CF-3231457 Method chaining support inconsitent with CFCs and use of java objects. For example, a Java class with methods such as "is()" and "contains()" that is instantiated by CF via createObject does not make such methods available Java Integration
CF-4205209 When a java-compiled CFC class is loaded, it throws a java.lang.VerifyError. It seems like the java bytecode compiled by the ColdFusion's compiler is invalid when compiling the code Java Integration
CF-4201768 There is tremendous inconsistency the way that java objects are used in CF. When creating certain direct java classes and calling methods on it, those methods seem to be lost and not executable.  Java Integration
CF-3033950 Add support for calling a component method using associative array notation Language
CF-3799027 Allow dynamic CASE values Language
CF-3853251 Support array methods: shift(), unshift(), push(), pop() Language
CF-4073759 Add a return type argument for cfquery/queryExecute Language
CF-4125124 The newly added arrayContainsNoCase is missing its member function equivalent. Language
CF-4197194 nested arrayEach parent execution context scoping issue Language
CF-4198389 Ternary operator doesn't short-circuit with implicit array/struct expressions Language
CF-4198519 Add parallelism to xEach() functions and loops Language
CF-4201587 GetFunctionList() omits Invoke() Language
CF-4203366 When using QueryFilter the original query is mutated Language
CF-4203580 There appears to be a fundamental, breaking change in how null values are evaluated in a comparison. The comparisons below evaluated to False/NO in every version of Coldfusion before 2018. They now evaluate to True/YES. Language
CF-4203844 ListDeleteAt remove last symbol instead of entire delimiter.  Language
CF-4203968 Calling methods on JDK 8 interfaces does not work Language
CF-4204516 isValid("email") and isValid("url") treat unicode domain differently Language
CF-4204992 Safe Navigation errors if key is a "reserved keyword" Language
CF-4205371 Some compiler errors don't report actual file and line of invalid syntax Language
CF-4205758 Array slice syntax  does not compile when used in an inner function Language
CF-4206329 After installing Update 13, component initialization fails with the message clientID is undefined in ARGUMENTS. Language
CF-4206403 Certain syntax breaks the interpreter (compiler) Language
CF-4206924 CFSaveContent does not capture output up to the point where an exception is raised Language
CF-4206955 'null' returned from function always returning an array Language
CF-4207473 Unexpected result when setting inline struct inside function call that's inside a CFIF/CFELSE that's inside a CFOUTPUT query loop Language
CF-4207690 ArraySort() callback chokes on large numbers returned Language
CF-4207716 Allow cascading return from assignments Language
CF-4207962 "first" and "last" are reserved keywords when used in a Query-of-Queries Language
CF-4208310 Elvis Operator is not thread safe Language
CF-4208493 isNull not evaluating array notation for structs Language
CF-4208572 Validation for a variable is occurring in an unreached branch BEFORE determining if that branch is reachable if the variable exists inside of an inline struct that's inside of a function call that's inside of a CFIF statement (that also has a CFELSE statement) that's surrounded by CFOUTPUT tags Language
CF-4207294 Referencing an undefined struct value in a <cfif> statement causes the code to behave unexpectedly in a few cases. Language
CF-4198020 Allow more advanced features in RegEx. Language
CF-4205576 If a user uploads a completely valid text file that is empty, ColdFusion throws an error. Language
CF-4205210 When the java-compiled CFC class is loaded it throws a java.lang.VerifyError. Language
CF-4205196 Implement Spread operator. Language
CF-4204882 Within a function, the Arguments scope is a struct, also accessible via `Local.Arguments` Language
CF-4204401 structCopy cannot be used on exception object. Language
CF-4204292 Strings that contain emojis (and presumably other 2-byte characters) cause ReplaceNoCase to behave unexpectedly. Language
CF-4203287 StructGet() doesn't support array notation when referencing an XML object. Language
CF-4203124 Ternary with implicit, in attribute value, throws ArrayIndexOutOfBoundsException. Language
CF-4203046 CFPOP incorrectly labels CIDs struct with attachment mime ID's instead of inline image CID. Language
CF-4201962 xmlNode.delete("child") does not work as expected. Language
CF-4200574 When adding a row with SpreadsheetAddRow if the string starts or ends with a comma CF will throw String index out of range error. Language
CF-4198982 When you serialize a cfcatch struct, the JSON doesn't match the same data format at all. Language
CF-4198860 Using throw() with parentheses and colons inside the message text causes ColdFusion to make a new exception TagContext entry with part of the string inside the parentheses labeled as the "template". Language
CF-4198802 When you use Application.cfm file and set the Value of the sameformfieldsasarray = true, it still shows the values as List, Instead of Array. Language
CF-4198801 Quoted variable assignment errors when using keys that start with a number. Language
CF-4198573 Sort member functions must accept compare and compareNoCase functions as comparator callbacks. Language
CF-4198571 IsImageFile does not work as expected. Language
CF-4198230 implicit constructor does not respect argumentCollection for setter properties with accessors = true. Language
CF-4198223 For implicit Constructor support, either specify accessors=true in the cfcomponent or ensure that you have the setter functions for the properties defined. Language
CF-4197116 Unexpected behavior from setLocale when used inside cfthread. Language
CF-4176011 Setting a cookie to a non-simple value doesn't throws an error in scope-syntax. Language
CF-4164408 CFBREAK and CFCONTINUE should be able to work on different nested levels. Language
CF-4118951 The documentation on Sorted Structs is incorrect. Language
CF-4101200 Support Base64Url encoding for BinaryEncode & BinaryDecode. Language
CF-4026104 Arrays-of-objects returntype checking does not work as expected. Language
CF-4007976 % is valid in a URL's path and query string only if it preceeds 2 hexadecimal digits, but isValid("url") doesn't perform this check. Language
CF-3950736 Implement IIFE. Language
CF-3754490 Add ability to treat strings like collections. Language
CF-3731421 Some lines of code are ignored. Language
CF-3588558 objectSave() errors with XML. Language
CF-3558899 Covariance in CFML data types with interface contracts. Language
CF-3346435 Implement anonymous function blocks. Language
CF-3041787 Issues with cfloop group attribute. Language
CF-4203901 csrfGenerateToken generates error in ColdFusion 2016 Update 15. Language 
CF-4202187 <meta http-equiv="x-ua-compatible" content="IE=Edge"> is being ignored in the header. Language 
CF-4204865 The extends attribute path of the CFComponent seems to be caching on the server level the first request being made. Language
CF-4200108 Dot notation produces unexpected results in queryExecute() in closure, when QoQ'ing a variable in owner function. Language
CF-4205212 ArgumentCollection accepts array in invoke()/cfinvoke but not direct method calls Language
CF-4204293 The expandPath function incorrectly expands absolute paths. Language
CF-4202293 Invalid UDF argument types must not be allowed. Language
CF-4200656 Objects with property defaults defined do not serialize properly. Language
CF-4202306 week()'s "calendar" parameter should accept its default value "gregorian" Language
CF-4204063 IsNull() aeways returns true when evaluating a safe navigation expression. Language
CF-4206938 Certain unicode chharacters, like emojis cause replace() to behave unexpectedly. Language
CF-4204017 CFLOOP ignores undefined array elements when looping over an array. Language
CF-3539041 The content of coldfusion-out logs is targeted for other logs. Logging
CF-4204065 The audit log in ColdFusion 2018 does not reflect all changes in Admin. Logging
CF-4203461 CfScript ORM mapping annotation for param/sequence does not work ORM
CF-4206777 If you set a value of threads to be busy before alert, it will notify you even if not all those threads have been busy for the allocated time. PMT
CF-4206047 When monitoring is enabled for a server in Performance Monitoring Toolset, cfthread tags fail to execute intermittently. PMT
CF-4205489 Numerous Redis calls every 5 seconds when monitoring sessions. PMT
CF-4204874 Memory Leak- Persisted closures hold onto tag instances every time they execute Performance
CF-4207069 Very slow startup time CF2018 update 6 and above - compiler issue? Performance
CF-4207269 CF should not be setting a maxmetaspace argument Performance
CF-4207397 Race Condition (for in loop + single statement + struct notation) Performance
CF-4201968 When editing a scheduled task, if validation fails and there's a date in the end date field, it turns into a timestamp when the page reloads which doesn't save. Scheduler
CF-4201967 If you have a proxy password saved for a scheduled task and you edit that task and fail validation while saving, on the next successful save, the proxy password will literally be changed to "***********" Scheduler
CF-4199233 cfschedule action="list" result needs "PORT" column. Scheduler
CF-4197252 ColdFusion Admin creates task with a handler incorrectly. Scheduler
CF-4197250 Tasks must run off-schedule. Scheduler
CF-3154885 During a task handler event request, there are some incorrect CGI variables. Scheduler
CF-4199840 Security Analyzer throws s.erver error if folder names has a comma within the name Security Analyzer
CF-4205226 CFINDEX has issues with INDEX attribute. Text Search
CF-4203917 ColdFusion 2018 flags erroneous warnings for properties in server.xml Web Container (Tomcat)
CF-4207558 cfinvoke fails when calling service with returnType of "any" Web Services
CF-4210060 Trusted Cache Breaks REST Service Web Services

Known Issues in Adobe ColdFusion (2021 release)

The following are the known issues for Adobe ColdFusion (2021 release):

CFSetup

  • For msaccess and odbc datasources set using the though CFSetup utility, verification through ColdFusion administrator may not work as expected. As a work around, from the administrator, you must click Edit datasource and then click Submit.
  • While performing import operations for the categories that include file paths, you may have to update the file paths in the exported json file. The file paths must be relative to the server on which you want to perform the import operation.
  • In JEE configuration, you must grant execute permission to all the scripts in cfusion/bin and config/cfsetup folders, if the permission is not already set.

ColdFusion Package Manager

  • If you run the command Install All or Update All using CFPM, and the ColdFusion server is stopped, the error message "<package name> could not be installed" may display. You may ignore the message. After restarting the server, the packages will be seen as installed.
  • If you upgrade or downgrade the ColdFusion Administrator package, and the Administrator works unexpectedly when you log in, refresh the Administrator, and it will launch as expected.
  • When you install the scheduler package, you may see an error on the console. The scheduler package however works as expected.
  • You may see an issue while installing a package if the downloaded jar file is corrupted. As a work around, delete the corrupted jar manually from the location mentioned in the error, and re-install the package.

AWS S3

  • The getLocation method returns NULL, when a bucket is created in the region us-east-1.
  • You cannot add lifecycle rules to a bucket by passing the key lifecycleRuleFilter in a struct to the method setRules. As a work around, use the key prefix, which is used to filter the objects.
  • You cannot add ACL to an S3 bucket by passing the key accessControlPolicy in a struct to the method putBucketAcl. As a work around, pass the struct with the key acl or other keys for grant permissions.

Azure Service Bus

  • The threadpool allocated to handle callbacks are not terminated if the related topic is deleted or unsubscribed. The threads keep polling the non-existent entities.
  • Reading messages from the RECEIVEANDDELETE mode returns not more than one message for a partitioned queue.

ColdFusion Administrator

  • To run the system probes, you must install the mail package first.
  • On Windows Server 2019, the System Information shows the OS incorrectly as Windows Server 2016.
  • The Settings Summary page does not contain the details of a few newly added features, like SAML or NoSQL.
  • After deploying the car migration built by selecting and installing all the packages, the page Debugging IP Addresses displays a few issues. As a work around, perform these steps:
    • In neo-debug.xml file, add the following:

                            <var name='iplist'><string>127.0.0.1,0:0:0:0:0:0:0:1,::1</string></var>

                            <var name='developer_enabled'><boolean value='false'/></var> to the struct of type coldfusion.server.ConfigMap.

  Restart ColdFusion.                       

Web services

  • A REST service returns a 404 for .json or .xml. As a work around, use the following header when making the rest call (instead of suffixing the URL wth .json or .xml)

             <cfhttpparam type="header" name="Accept" value="application/json; charset=utf-8">

  • On WebLogic, on registering, a REST service does not work as expected. This is caused by an issue in WebLogic.

Language

  • Built-in functions, such as createDateTime and Max, you cannot use the spread operator.
  • The spread operator does not work when used as a default value of a function parameter.

API Manager

  • On OSX, you must launch the API Manager installer using a root account. If you do not use the root account, the API Manager fails to start.
  • On OSX, when you click Test this API when registering an API, you may seen an error message, even if the API is successfully registered.