
Bug fix log
莫迟疑
程序员
展开
-
同一个事务内不能在删除一个instance之后再更新它
a short description of the bug方法加了Spring的@Transactional注解,于是方法内数据库操作被加在了一个事务里。报错信息“deleted instance passed to update()。这里先根据一个条件A查出了一些数据,然后delete。再根据另一个条件B查出一些数据,这些数据中包含之前那些数据的一部分,对这些数据进行某一个字段的更新操...原创 2019-08-21 15:21:52 · 1481 阅读 · 0 评论 -
if的坑
在java中,如果我们想通过点儿来调用方法,那么首先一定要保证这个对象不是null,否则就会报空指针异常。类似的,如果我们使用了if,那么一定要考虑,如果不满足if的条件,if条件内的逻辑不执行,会有什么问题。通常情况,我们最开始写这个if的时候,逻辑一般都是清晰的,会意识到如果不满足if的条件要怎么处理。但是,如果我们是在原来的代码基础上进行修改,可能就会意识不到,如果if条件不满足,如果...原创 2019-08-20 18:41:58 · 226 阅读 · 0 评论 -
Hibernate saveOrUpdate方法的坑
a short description of the bug方法初始,从DB中查出一个Model。然后中间有一段其他的代码,需要一定时间执行完,这期间改变了Model的某些值。最后想更新这个Model到数据库,于是使用了saveOrUpdate方法。这引发的bug是,在另外一个地方,执行了删除这个Model的操作,这个删除操作在上面查出Model之后,调用saveOrUpdate方法之前。于是...原创 2019-08-12 22:24:40 · 1532 阅读 · 0 评论 -
Hibernate我没有手动更新的某条记录被莫名其妙的更新了
a short description of the bug项目使用的Hibernate操作数据库。现在有一个方法,第一行将数据库中记录A的字段status置为BUSY,最后一行删除这条记录。现在的bug是,在执行这个方法的过程中,这条记录的status莫名其妙的被置为ACTIVE了,跟踪了很多遍代码,每一行代码都看了,包括这个方法调用的其他方法,根本没发现哪里update的。the fix...原创 2019-08-12 16:15:31 · 398 阅读 · 0 评论 -
java代码bug调试方法论
如果代码报错,第一步一定要仔细的阅读报错日志。bug调试就像是破获案件,而报错日志通常能提供最大最有用的线索。而且先深入日志,而不是直接深入代码,会提交找到bug原因的效率。...原创 2019-08-09 14:06:42 · 506 阅读 · 0 评论 -
怎么从bug中学习
看了一篇文章 Learning From Your Bugs文中提到一个方法我准备试试,在修复一个bug之后,做一个简短的总结写下来:a shot description of the butthe fixthe lessions i learned...原创 2019-08-09 08:36:50 · 167 阅读 · 0 评论