laptop and a wrench

漏洞

'EditCompletedEventArgs' shows zero features created and modified after using the Create Point and Edit Point tools in ArcGIS Pro's Location Referencing tab.

上次发布: March 13, 2019 ArcGIS Pro SDK for .NET
漏洞 ID 编号 BUG-000113721
已提交May 4, 2018
上次修改时间June 5, 2024
适用范围ArcGIS Pro SDK for .NET
找到的版本2.0
操作系统Windows OS
操作系统版本10.0 64 Bit
状态Will Not Be Addressed

附加信息

This is as designed. The reason for the unexpected behavior is coming from two different sources of error. The linear referencing code making the edit calls IExternalEditCallbackContext::InvalidateTable to invalidate the entirety of the table in which a point was created (as well as another modified table in which a feature was changed). The editor purposefully interprets this to mean that the table may have changed in unpredictable ways (perhaps the calling code disabled event firing for performance) and the results of listening to geodatabase object events may not reflect the extent to which the table had been modified. As a result the properties of the EditCompletedEventArgs is escalated, and broadcasted to managed listeners to (similarly to how the editor internally invalidates all viewer tiles for this table, a rather costly operation for a spatially confined edit such as this one) interpret the event as any features in the concerned layers (referencing these tables) may have changed and to more exhaustively respond to the event to invalidate any caches necessary.The add-in supplied in the reproduction case is making a faulty assumption that if the list of created or modified features is zero, it just reports this without checking EditCompletedEventArgs.InvalidateAllMembers and relaying the information present in that property to the user in the modal dialog they show.As a result this is considered as designed from an Editing perspective. To achieve the desired results the Linear referencing code should be re-written to avoid calling IExternalEditCallbackContext::InvalidateTable and instead call the more specific IExternalEditCallbackContext::InvalidateRow which confines the amount of work done to invalidate the viewer to just the modified feature. (This is how the built-in editor provided tools work thus the issue is not reproducible with them.) Ideally, for modified features this would be called both before and after the changes were made to the row so if the set of viewer tiles is changed by the edit that both sets are properly accounted for in editing's messaging to the viewers.Editing should also clarify existing SDK documentation as while this specific API is for internal use only the same general issues come up with EditOperation.Callback's use of EditOperation.IEditContext's Invalidate methods.

重现步骤

漏洞 ID: BUG-000113721

软件:

  • ArcGIS Pro SDK for .NET

当漏洞状态发生变化时获得通知

下载 Esri 支持应用程序

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项