@@ -94,7 +94,10 @@ func (k *keychainStore[T]) Delete(ctx context.Context, id store.ID) error {
9494 }
9595
9696 err = k .isCollectionLocked (service )
97- if err != nil {
97+ if err != nil && ! errors .Is (err , errCollectionLocked ) {
98+ return err
99+ }
100+ if errors .Is (err , errCollectionLocked ) {
98101 if err := service .Unlock ([]dbus.ObjectPath {objectPath }); err != nil {
99102 return err
100103 }
@@ -131,7 +134,10 @@ func (k *keychainStore[T]) Get(ctx context.Context, id store.ID) (store.Secret,
131134 }
132135
133136 err = k .isCollectionLocked (service )
134- if err != nil {
137+ if err != nil && ! errors .Is (err , errCollectionLocked ) {
138+ return nil , err
139+ }
140+ if errors .Is (err , errCollectionLocked ) {
135141 if err := service .Unlock ([]dbus.ObjectPath {objectPath }); err != nil {
136142 return nil , err
137143 }
@@ -178,7 +184,10 @@ func (k *keychainStore[T]) GetAll(ctx context.Context) (map[store.ID]store.Secre
178184 }
179185
180186 err = k .isCollectionLocked (service )
181- if err != nil {
187+ if err != nil && ! errors .Is (err , errCollectionLocked ) {
188+ return nil , err
189+ }
190+ if errors .Is (err , errCollectionLocked ) {
182191 if err := service .Unlock ([]dbus.ObjectPath {objectPath }); err != nil {
183192 return nil , err
184193 }
@@ -243,7 +252,10 @@ func (k *keychainStore[T]) Save(ctx context.Context, id store.ID, secret store.S
243252 }
244253
245254 err = k .isCollectionLocked (service )
246- if err != nil {
255+ if err != nil && ! errors .Is (err , errCollectionLocked ) {
256+ return err
257+ }
258+ if errors .Is (err , errCollectionLocked ) {
247259 if err := service .Unlock ([]dbus.ObjectPath {objectPath }); err != nil {
248260 return err
249261 }
0 commit comments