From 4b19d69528f3f0e0d6ab234fb95e7f010049eff6 Mon Sep 17 00:00:00 2001 From: Cabbie Team Date: Tue, 10 Sep 2024 13:10:05 -0700 Subject: [PATCH] Add retries to oleutil.GetProperty since we've seen this fail with some properties. PiperOrigin-RevId: 673076826 --- updates/updates_windows.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/updates/updates_windows.go b/updates/updates_windows.go index 84d328e..2c61eec 100644 --- a/updates/updates_windows.go +++ b/updates/updates_windows.go @@ -60,10 +60,21 @@ func New(item *ole.IDispatch) (*Update, []error) { continue } } - - v, err := oleutil.GetProperty(u.Item, p) - if err != nil { - errs = append(errs, fmt.Errorf("get property %q: %w", p, err)) + var v *ole.VARIANT + var err error + retries := 0 + for { + v, err = oleutil.GetProperty(u.Item, p) + if err == nil { + break + } + if retries >= 1 { + errs = append(errs, fmt.Errorf("get property %q: %w", p, err)) + break + } + retries++ + } + if len(errs) > 0 { continue }