diff --git a/CHANGELOG.md b/CHANGELOG.md index 36937b9a..bab2337e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed a bug where interop deployment manager would in some cases fail because it tried to load unrelated items from the repo (#977) +- Fixed bug causing compilation errors when first adding an IRIS Interoperability BPL or BR (#984) ## [2.17.0] - 2026-06-22 diff --git a/cls/SourceControl/Git/Extension.cls b/cls/SourceControl/Git/Extension.cls index 7f8e6d53..a97dc07e 100644 --- a/cls/SourceControl/Git/Extension.cls +++ b/cls/SourceControl/Git/Extension.cls @@ -597,9 +597,15 @@ Method CheckBusinessProcessesAndRules(InternalName As %String) As %Status // so we have to add them like this if (##class(SourceControl.Git.Utils).Type(InternalName) = "cls") { set name = $piece(InternalName,".CLS",1) - set exists = ##class(%Dictionary.CompiledClass).%ExistsId(name) - if (exists && ($classmethod(name,"%Extends","Ens.BusinessProcess") || $classmethod(name,"%Extends","Ens.Rule.Definition"))) { - do ..AddToSourceControl(InternalName) + if '##class(%Dictionary.CompiledClass).%ExistsId(name) quit + if '$system.CLS.IsMthd(name, "%Extends") quit + try { + if ($classmethod(name,"%Extends","Ens.BusinessProcess") || $classmethod(name,"%Extends","Ens.Rule.Definition")) { + do ..AddToSourceControl(InternalName) + } + } catch err { + // even if compiled class exists, we can get CLASS DOES NOT EXIST - ignore these + if '(err.AsStatus() [ "CLASS DOES NOT EXIST") throw err } } } diff --git a/cls/SourceControl/Git/Utils.cls b/cls/SourceControl/Git/Utils.cls index fc21b519..1d516c93 100644 --- a/cls/SourceControl/Git/Utils.cls +++ b/cls/SourceControl/Git/Utils.cls @@ -2455,6 +2455,7 @@ ClassMethod GitStatus(ByRef files, IncludeAllFiles = 0) set list = $listfromstring(lines, $char(0)) set pointer = 0 while $listnext(list, pointer, item) { + continue:item="" set operation = $zstrip($extract(item, 1, 2), "<>W") set externalName = $extract(item, 4, *) set internalName = ..NameToInternalName(externalName,0,0)