In my code I have a query of query, something like this:
<cfset someQueryVar = someComponent.getSomeQuery()>
<!--- ... --->
<cfquery name="abc" dbtype="query">
select * from someQueryVar
...
Recently I updated from CF 2018 hotfix 11 to hotfix 13. Now I get this error:
MESSAGE getColumnType()
TYPE coldfusion.runtime.CfErrorWrapper
Also in a different place in code I have another "query of query" like so:
42 | <cfquery name="abc2" dbtype="query">
43 | select * from someQueryVar2 where someColumn is not null
44 | </cfquery>
and here I get this error on line 42:
java.lang.ArrayIndexOutOfBoundsException: Index 45 out of bounds for length 45
which does not make any sense.
I am not able to find any information about it on internet.
Were there some breaking changes from hotfix 11 to 13 related to query of queries?
ColdFusion 2018 Update 12 and ColdFusion 2021 Update 2 broke some query of query functionality. This is a known issue and has been reported to Adobe. They have (unofficially) released a patch for this issue. Unfortunately, because of the urgency with the log4J exploit, they did NOT include the patch with ColdFusion 2018 Update 13 nor ColdFusion 2021 Update 3.
Several tickets have been submitted for this. Here are a few:
CF-4212425
CF-4212580
CF-4212600
Note that this ticket includes the patches for both ColdFusion 2018 and ColdFusion 2021.
I will include links to the patches here for others to find. Be sure to use the correct one for your version. You will likely need to be registered and logged into the bug Tracker to access these.
Instructions from Adobe on that ticket:
Please find the patch for CF2018 and CF2021 attached.
Steps to apply the patch-
- Download the file, rename it to hf201800-4212383.jar for CF2018 or hf202100-4212383.jar for CF2021.
- Place the file indside \cfusion\lib\updates
- Restart CF server.
Comment by Aayushi R.
Obviously you should apply these to non-production servers first and test.