问题描述
我在尝试理解和修复 Fortify 扫描报告的错误时遇到了一些问题。我有这门课:
public class DaoImpl extends BaseDaoImpl {
private static volatile String sNric;
synchronized private void setInfo(InfoTO pers) {
sNric = pers.getNRIC();
}
synchronized public InfoTO getInfo() {
InfoTO pers = new InfoTO();
sNric = retrieveDetail();
pers.setNRIC(sNric);
}
synchronized private String retrieveDetail() {
// some logic to get info from database
}
}
我的代码最初没有 static volatile
和 synchronized
关键字。 Fortify 在 Race Condition: Singleton Member Field
和 sNric
sNric = retrieveDetail();
警告
我进行了研究,发现了 this solution。但是,我对 volatile 和 synchronized 的概念不是很确定。上述建议的解决方案是否会导致一些死锁问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)