Bug Report Q580916
Visible to All Users

An AV occasionally occurs when calling Application.ProcessMessages within the View's BeginUpdate/EndUpdate block

created 11 years ago

I encounter EInvalidIndex exceptions in TcxGridBandsViewInfo.GetHitTest, ProcessItems. Later up in the call stack there is TcxCustomGridController,MouseMove and eventually TApplication.ProcessMessages.
I've found out this is caused by someone calling Application.ProcessMessage while I'm populating a banded table view with Begin/EndUpdate. In so far this problem is related to B209536 and maybe Q260115 - the HitTesting uses a ViewInfo which is invalid during Begin/EndUpdate.
Unfortunately I cannot suppress that ProcessMessage call , since it is out of my control.
After finding Q471656 and Q370950 I see that TcxCustomGridController.GetCursor now checks GridView.CanGetHitTest before actually working the ViewInfo.
On the other hand I see that Tcx CustomGridController.MouseMove/Up/Down all use ViewInfo.GetHitTest *without* checking GridView.CanGetHitTest?!
Please consider a fix for this similar to the one of Q471656!

Comments (3)
DevExpress Support Team 11 years ago

    Hello,
    Thank you for your research. You are right, Controller's mouse methods do not use CanGetHitTest. However, to be sure that this can cause errors, it will be good to reproduce the problem using a demo. Would you please provide us with a small sample project demonstrating the error? I believe that the reproducible scenario will help our developers fix the problem. Thanks in advance.

    SM SM
    Sebastian Modersohn 11 years ago

      I had hoped referring to two already reported issues would save me the effort of creating a test case.
      Please find it attached. Click the button "Start lengthy update" on the bottom right, then move the mouse over the grid next to the button. You'll see an EInvalidIndex.

      DevExpress Support Team 11 years ago

        Thank you very much for your demo. I have forwarded this ticket to our developers for research.

        Answers approved by DevExpress Support

        created 11 years ago (modified 11 years ago)

        We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.

        Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.

          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.