Java 静态地图问题

Java 静态地图问题,java,internet-explorer,map,Java,Internet Explorer,Map,我有一个静态映射声明为 public class SessionMonitor { public static Map activeSessions = Collections.synchronizedMap(new LinkedHashMap()); } 在其他类中,当我访问地图时 if (SessionMonitor.activeSessions.containsKey(userDTO.getUserName()) && !userDTO.getRoleMaster

我有一个静态映射声明为

public class SessionMonitor {
    public static Map activeSessions = Collections.synchronizedMap(new LinkedHashMap());
}
在其他类中,当我访问地图时

if (SessionMonitor.activeSessions.containsKey(userDTO.getUserName()) && !userDTO.getRoleMaster().getId().equals(100L)) {
    setMessage("Active session exists for this user");
    return ERROR;
}
SessionMonitor.activeSessions.put(userDTO.getUserName(), userDTO.getId());
当“IF”条件不满足时,它会将元素放入映射中,如图所示。
但在那之后,控件奇怪地返回到“IF”状态。只有当请求来自IE时才会发生这种情况。可能有什么问题?

我强烈怀疑您的诊断是错误的,但您实际上没有解释一开始是如何诊断的,这使得很难帮助您。很可能您的代码中有一个未显示的错误。重复操作的唯一方法是使用recurion或循环。对不起。这是我第一次遇到竞争条件,因为可能有两个以上的线程看不到getUserName(),然后多个线程添加相同的用户名。这还远远不够信息-您是如何调试的,您到底观察到了什么,等等?我怀疑IE基本上提出了第二个请求,但如果没有更多的信息,我们无法确定。