| Index: filter/txnBuf/state.go
|
| diff --git a/filter/txnBuf/state.go b/filter/txnBuf/state.go
|
| index 57286361a0340175bfe3d7d524ff3691bf64dd35..44b23542ebe9a13307358df88fb7558fcfb7097b 100644
|
| --- a/filter/txnBuf/state.go
|
| +++ b/filter/txnBuf/state.go
|
| @@ -316,12 +316,16 @@ func (t *txnBufState) getMulti(keys []*datastore.Key, metas datastore.MultiMetaG
|
|
|
| for i, itm := range data {
|
| err := lme.GetOne(i)
|
| + var cbErr error
|
| if err != nil {
|
| - cb(nil, err)
|
| + cbErr = cb(nil, err)
|
| } else if itm.data == nil {
|
| - cb(nil, datastore.ErrNoSuchEntity)
|
| + cbErr = cb(nil, datastore.ErrNoSuchEntity)
|
| } else {
|
| - cb(itm.data, nil)
|
| + cbErr = cb(itm.data, nil)
|
| + }
|
| + if cbErr != nil {
|
| + return cbErr
|
| }
|
| }
|
| return nil
|
| @@ -355,7 +359,9 @@ func (t *txnBufState) deleteMulti(keys []*datastore.Key, cb datastore.DeleteMult
|
| }
|
|
|
| for range keys {
|
| - cb(nil)
|
| + if err := cb(nil); err != nil {
|
| + return err
|
| + }
|
| }
|
|
|
| return nil
|
| @@ -392,7 +398,9 @@ func (t *txnBufState) putMulti(keys []*datastore.Key, vals []datastore.PropertyM
|
| keys, err := t.fixKeys(keys)
|
| if err != nil {
|
| for _, e := range err.(errors.MultiError) {
|
| - cb(nil, e)
|
| + if err := cb(nil, e); err != nil {
|
| + return err
|
| + }
|
| }
|
| return nil
|
| }
|
| @@ -424,7 +432,9 @@ func (t *txnBufState) putMulti(keys []*datastore.Key, vals []datastore.PropertyM
|
| }
|
|
|
| for _, k := range keys {
|
| - cb(k, nil)
|
| + if err := cb(k, nil); err != nil {
|
| + return err
|
| + }
|
| }
|
| return nil
|
| }
|
|
|