Instantiating BasemapLayer with Visual Beans causes a crash.
上次发布: March 27, 2015ArcGIS Engine
漏洞 ID 编号
NIM065108
已提交
February 15, 2011
上次修改时间
June 5, 2024
适用范围
ArcGIS Engine
找到的版本
10.0
编程语言
Java
操作系统
Red Hat Enterprise Linux
操作系统版本
4
修正版本
10.3.1
状态
Fixed
此漏洞已得到修复。 有关详细信息,请参阅“版本修复”和“其他信息”(如果适用)。
解决办法
The crash is happening in the OLE32.DLLl function RegisterInterfaceInGlobal() when adding the BasemapLayer interface pointer to the global interface table (GIT). It is deemed appropriate to disable the GIT. Users can do this themselves with this call before calling initializeVisualBeans: System.setProperty("ARCGIS_NOGIT", ""); EngineInitializer.initializeVisualBeans();When setting ARCGIS_NOGIT, an updated VisualBeans architecture is used to manage interface pointers between threads, so the GIT is an old way to do the same task.This seems to only happen with BasemapLayer. RegisterInterfaceInGlobal crashes in ole32.dll on older machines such as Windows 98 if the interface being registered does not contain a proxy/stub. MainWin uses the old WinNT 4 code base for their version of ole32 so it is very likely the same issue.