用户登录后,修改状态,结果频繁死锁,刚开始由于不太在意,同时也因为服务器打印的异常包含了太多其它功能造成的错误信息,导致了真正错误的隐藏,后来终于发现问题,原来一切都是偷工减料惹的祸。
原来在作修改用户时,由于考虑到角色权限的改变,我就直接把所有用户角色相关的组角色清掉重建,然而在修改状态时,又重复调用了这个方法,死锁在所难免了。
考虑到这个错误引发的问题,我有两点感触,一是功能最好不要叠加,否则造成的连锁反应很难调试;二是不应该偷工减料,应该针对不同的需求实现不同的功能,忌讳复制粘贴,很容易引发许多莫名其妙的问题。在出现大量复制粘贴的功能时,尽可能的重构自己的代码,这一点也许有些困难,但要尽可能的去做,目的是减轻后续工程的维护量!