Ticket T277956
Visible to All Users

How to request and apply a VCL hotfix

created 10 years ago

Description:
I want to request and apply a hotfix. How to do this?

Answer:
When the report's status is "Fixed" , this means that a problem has been fixed, and a corresponding fix will be included in the next minor release. If an issue was critical and you do not want to wait for the next build release, you are welcome to request the fix immediately. To do this, simply click the "Request hotfix" link located at the bottom of the report's status panel:

When the patch is ready, you will receive a notification from our Support Center. A link to the patch will be located in the same place on a web page.
For more details about this service, please read Julian's blog:
Getting your fix: the DevExpress way
Please note that hotfixes are not available when we are preparing new minor builds for release (the "Request Fix" link will not be available). Usually it takes several days and it is much better to download the official release that contains your fix (and was deeply tested), rather than download an intermediate build.
Note that we apply a hotfix to the latest available minor version of a certain major build. For example, if we were reported about an issue in version 14.2.5 and the latest available version is 14.2.8, we apply the hotfix to the next 14.2.9 minor version and recommend that our customers upgrade to this version.

As it is mentioned in the Getting your fix: the DevExpress way blog post, there are three types of fixes we can provide to our VCL customers:

1. A small code fix for a certain *.pas file.
In this case, once you click a link to the patch, you will see a code snippet and a name of the unit where it is necessary to apply these code changes. There can be several different unit names and each may have its own required modification. For example, the fix can look like this:

Delphi
cxGridCustomView.pas:  procedure TcxCustomGridMovingObject.BeginDragAndDrop; var AArrowNumber: TcxGridArrowNumber; begin FDragImage := GetDragImageClass.Create; InitDragImage; for AArrowNumber := Low(Arrows) to High(Arrows) do Arrows[AArrowNumber] := GetArrowClass.Create(DragImage.AlphaBlended); GridView.Control.UpdateWithChildren; inherited; end;

This means that to fix the problem, you can find the cxGridCustomView.pas file among our sources (this particular file is in the *<DevExpress_InstallationFolder>\ExpressQuantumGrid\Sources*  folder), open this file with a text editor (e.g., Notepad), find the TcxCustomGridMovingObject.BeginDragAndDrop procedure there, change its code to the one provided in the hotfix, save changes, and run our Installer in Recompile mode. As a result, our packages should be rebuilt and you will get a problem fixed.
2. A set of files (e.g., *.pas, *.res, *.dfm files) to replace the original files you've installed.
In certain cases, there can be so many code changes in a hotfix that it is inconvenient to provide them as code snippets. In this case, once you click a link to the patch, you will see another link or a number of links to download an archive. This archive contains a set of files which should replace corresponding files in our source folders. For example, the archive contains the cxGridCustomView.pas source file. This means that to fix the problem, you can find a folder where the file with the same name resides in our sources (for the cxGridCustomView.pas file, it is the *<DevExpress_InstallationFolder>\ExpressQuantumGrid\Sources*  folder), replace the old file with the one you downloaded, and run our Installer in Recompile mode.

3. A complete intermediate (daily) build.
In rare cases, when many units are affected by the issue, we can provide a link to an intermediate build that can fix a problem. This build can be installed in the same manner as our minor builds. However, such builds are not completely tested, and it is better to wait for the official minor release.

Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.