ColdFusion 2016

Your CFHTTP requests may fail with an error I/O Exception: Received fatal alert: handshake_failure.  the reason could be a try to connect to a web server that has very high SSL security levels enabled and is no longer compatible with older Java 8 versions.

If you are running ColdFusion on Java < 8.0.161 and you add -Djavax.net.debug=ssl,handshake,verbose to C:\ColdFusion2016\[cfusion]\bin\jvm.config you will see the below info message in coldfusion-out.log:

In November 2016 we became aware that Adobe ColdFusion 2016 and earlier versions have issues with sending emails to IDN domains. Something that is possible for a very long time and becomes more and more common - at least in countries like Germany that have special chars. The CFMAIL errors with

The value of the attribute to, which is currently foo@bäüöß.com, is invalid.

coldfusion.tagext.InvalidTagAttributeException: Attribute validation error for tag CFMAIL. at coldfusion.tagext.net.MailTag.validate(MailTag.java:743) at coldfusion.tagext.net.MailTag.processAttributes(MailTag.java:846)
and compared to this failure the validation with isValid('email', local.email) says the email address is valid.

You may be in the situation that ColdFusion services are not starting up and a manual startup yields no useful information, too. It simply failed after it tries to startup the services for a very long time. If services are starting up it may takes an extreme long time to start.

Start-Service : Failed to start service 'ColdFusion 10 Application Server cfusion (ColdFusion 10 Application Server cfusion)'.
At line:1 char:1
+ Start-Service Cold*
+ ~~~~~~~~~~~~~~~~~~~
   + CategoryInfo  : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
  ServiceCommandException
   + FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.StartServiceCommand

Background:

There are for sure more possible situation that may cause a ColdFusion startup failure, but if you have not changed anything and only rebooted/restarted your server/coldfusion after some OS updates and ColdFusion is now failing to start without having anything changed in ColdFusion you should check this issue very first. From my point of view this issue here is the most common issue that everyone will experience sooner or later.

Over the course of several months we identified some date/time issues that also exist in CF10 and CF11. In CF10 and CF11 there are still more inconsistency issues like in CF2016. Some of the date/time formatter and parser issues have been fixed in CF2016 RTM, but it was still a mess and the functions are not behaving as expected in many cases. We are still in discussion about incorrect IsNumericDate() results not listed below. Please also see ColdFusion 2016: Upcoming new IsDateObject() function that was a result of the issues we faced with below bugs.

Notable changes are:

The functions IsDate() / LSIsDate()ParseDateTime()LSIsDate() require that you provide a string to these functions. However these functions do not throw an exception if you provide a date/time object. Not only this - they return inconsistent results if you use an object - often it works, but not always. So you may feel like the function allows an object as param and you learn later the hard way that your code is not always behaving properly. The bad about this issue is that there exists no function that allows you to check if you have a valid ColdFusion date/time object or just a date/time string.

If you run a CFOUTPUT with attributecollection you will get an error cannot find encodefor key in structure error.

Fails:

<cfset result = queryNew("id,name","Integer,Varchar",[{id=1,name="One"},{id=2,name="Two"},{id=3,name="Three"}]) />
<cfset params={query:'result'} />
 
<!--- this works --->
<cfoutput query="#params.query#">
#id# - #name#
</cfoutput>
 
<!--- this don't work --->
<cfoutput attributecollection="#params#">
#id# - #name#
</cfoutput>

If you have some older code and you run ColdFusion 2016 and you use CFLOOP with a list and you have CFOUTPUT placed outside the loop than the code fails. I think this is very common.

Fails:

<cfoutput>
<cfloop list="test1,test2,test3,test4,test5" index="index" item="item">
	#invoke('mycomp', 'myFunction', {index=index,item=item})#<br />
</cfloop>
</cfoutput>

Workaround:

<cfloop list="test1,test2,test3,test4,test5" index="index" item="item">
	<cfoutput>#invoke('mycomp', 'myFunction', {index=index,item=item})#</cfoutput><br />
</cfloop>

Adobe has released ColdFusion 2016 Final some time ago. Well we took some time to give it a try and since 3 days we do not have so much fun.

The most heavy bug I can share is that CF 2016 is failing to execute SQL statements that has comments inside. This happens only with -- comments. I'm not sure if this is limited to Microsoft SQL. It has for sure nothing to do with the Microsoft JDBC driver you are using. See Adobe bugtracker ColdFusion 2016 - Bug 4126398: SQL comments inside CFQuery are not ignored.

Broken:

-- Using a comment after the code on a line.
USE Northwind
GO
UPDATE Products
SET UnitPrice = UnitPrice * .9 -- Try to build market share.
GO

Workaround:

USE Northwind
GO
SELECT * FROM Employees
/* The
GO in this comment causes it to be broken in half */
SELECT * FROM Products
GO

Solution: You can change all your code... (just kidding) or ask support. They have a hotfix with file name chf20160001.jar that works and will be integrated in Updater 1.