空指针异常风险
sjsdfg opened this issue · 6 comments
sjsdfg commented
crossoverJie commented
gorm-optimistic/optimistic_lock_test.go
Line 33 in 6b42471
当不需要回调时, callback
允许为空。
sjsdfg commented
gorm-optimistic/optimistic_lock_test.go
Line 33 in 6b42471
当不需要回调时,
callback
允许为空。
你这个测试用例根本不能测到那个点。你这个就是跑一次的单侧。在本地环境下,你这个第一次执行就肯定成功了。根本不会进入到重试逻辑。
一旦进入到重试逻辑,你这里就的必须调用 callback。 你这里再传入一个nil。不就直接 panic 了。
sjsdfg commented
要么就下面的逻辑改了
if callback != nil {
model = callback(model)
}
sjsdfg commented
sjsdfg commented
如果 callback 允许为空和要 retryCount = 0 必须成对存在的话,前面的 readme 是没有体现的。而且这样也很容易引起误用。非常不可靠。
我这边是直接不连接到 mysql 来模拟更新失败的情况,只要 RetryCount 变大,就是必定 panic 的
sjsdfg commented