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) - 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.|
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.
|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.
|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-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-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-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|
The following are the known issues for Adobe ColdFusion (2021 release):
- 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.
- 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.
- 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='developer_enabled'><boolean value='false'/></var> to the struct of type coldfusion.server.ConfigMap.
- 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.
- 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.
- 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.