How to implement a special hotfix that Adobe may give you to fix a CF update
If you’ve been told by Adobe to apply a special hotfix file (with a name like hf-something.jar), to fix a problem with a recent CF update, just be very careful how you proceed. Either of a couple of wrong moves could leave you feeling “the problem was not fixed” or worse, totally new “inexplicable” problems could occur that “no one else has reported”. Just follow these steps, for safe “update fixing”.
If you may ever be given a special ColdFusion hotfix file from Adobe (one to be applied separately from the normal update mechanism, such as a file with a name like hf-something.jar), in order to “fix” a problem with a recent CF update, then it is important that you are very careful in how you apply that hotfix file. (Thankfully the need is pretty rare, with the new automated hotfix mechanism was introduced in CF10.)
But my point here is that if you make either of a couple of mistakes, you could either fail to “fix the problem” in the update, or worse, you could introduce new “inexplicable” errors that could confuse yourself, Adobe, and others (for weeks or months to come) as they try to help you when you’ve perhaps made one of these mistakes that no one would reasonably expect.
In this post I share more about this, with a couple of tips, whether related to issues regarding the latest CF update or future ones. Forewarned is forearmed.
As background, folks who had applied the Sept 24 2019 updates for CF 2016 and 2018 may have experienced a bug (related to nesting of certain code, mostly). While many had no problems with the update, those who did have the problem reported it to Adobe and in the bug report Adobe within days had offered a “fix” to be applied on top of the update, in the form of a jar (that they would share, with instructions for how to implement it, if you asked them).
Even with those instructions, if you read the bug report and its comments and/or votes you will see people indicating they “still have the problem”, while others indicate that they realized they’d made a mistake in applying the fix to the update. I am drawing out the matter here as a stand-alone post, offering some best practices for if you are offered either that fix or some other fix to one of CF’s updates.
What you should and should not do with the hotfix files
So if you are given some hf*.jar file from Adobe, which is to “fix” a problem with a given CF update you have already applied, note these three important points:
- You will be told to copy the new hf jar file into the lib/updates folder of your cfusion directory under cf (so, for instance, /coldfusion2018/cfusion/lib/updates). Then you should of course restart cf, for the “fix” file to take effect. For some, it really is that easy.(As for any confirmation of whether “the fix did apply”, there’s no good mechanism other than to test to see if the reported problem went away. Some may know that the CF Admin “settings summary” and “system information” pages have long offered an “update level” field, and still do. But as I complained about back in the CF9 era and before, that line only ever shows the name of any ONE file that may be in that lib/updates folder, even if there are two or more. It does not list ALL of them. That leads to the next point.)
- Please note this VERY important point: you SHOULD NOT remove any chf jar file that you find in that folder already, unless perhaps Adobe tells you to do so. That chf jar file already there is the one that the cf update which you installed previously had put there itself–and the special hf jar Adobe may give you extends/”fixes” that. But the hf jar file does not REPLACE the chf jar file! It would be a major mistake if you deleted the chf jar while putting the hf jar in that folder. Don’t do that!If you made this mistake, not only might the “fix to the update bug not work”, buy you may introduce totally new errors in CF that would seem “inexplicable”, and would challenge those who try to help you (on this portal, on the forums, and even Adobe or troubleshooters like myself), who might never connect the dots that your “odd problem” that “no one has ever seen before” is actually caused by this one mistake.(Related to this, note also that the NEXT CF update you apply [in the traditional manner] will itself automatically remove any jars found in the folder, thus cleaning up after this fix.)
- And finally. a note that does not apply to those of you running on the Standard edition of CF. For those who are running CF Enterprise, or the trial or Developer editions), you may know that you can create new instances of CF (using the Instance Manager page of the CF Admin of the cfusion instance).Well, if you HAVE created a new instance, then it’s also imperative that you put the new hotfix file (the hf jar you were given) into the lib/updates folder of that/those new instance(s) also.Look for any sibling folder to the cfusion folder, which would have the name of any additional instance you created You will find sibling folders with the names of config, jre, and uninstall. Those are NOT new instance folders. An instance folder would have all the folders that the cfusion one does, such as bin, cfx, Custom Tags, logs, Mail, etc.)
The point is that it will also have a lib/updates folder. And while the regular CF updater process does ask if you want to update instances, the point here is that if you manually apply a “fix file” of the sort discussed here, then you have to take this extra step yourself. If you do not take this step, then you may run your code against that instance and assert that “the fix to the update bug didn’t take”. And again, some trying to help you might never realize that this was the real cause for it “not working” for you.
Finally, you do also have to restart that instance once you put the new fix file in place.
Again, these are akin to problems that we dealt with in CF9 and before, when people were always having to manually copy/paste hf jar files, especially for hotfixes or security fixes then (where again you may have had in place a “cumulative hotfix” already, whose chf jar you needed to be careful not to remove, if you were just adding hotfixes or security fixes. Eventually, Adobe went to having cumulative hotfixes offer security fixes as well, which helped.
Anyway, we’ve been blessed since 2012 (cf10) to have this more automated cf update process. But when on rare occasions where some bug in the update strikes (like this Sept 2019 one) and such special fixes to a given update are needed, then people need to be reminded of these important points, to apply such “update fixes” correctly.
Kind of like being reminded how to perform certain tasks that “old-timers” used to do, when modern implements somehow fail us, you know, things we did until the “turn of the century”, like fix a car, write a check, read a map, do math, cook without a microwave, etc. 🙂