public class SipResponseCollection {
private final static Logger LOGGER=Logger.getLogger(SipResponseCollection.class);
private volatile Map<String, List<SipResponse>> map = new HashMap<String, List<SipResponse>>();
public SipResponseCollection() {
}
public boolean contain(String callId, int statusCode) {
List<SipResponse> list = map.get(callId); //pop null exception in linux amd64 machine but right for windows machine. callId is not null.
if(list==null)
return false;
for (SipResponse sipResponse : list) {
if (sipResponse.getStatusCode() == statusCode)
return true;
}
return false;
}
}
新しい SipResponseCollection() の後、揮発性マップが null になる可能性がある場合は? 別のマシンで実行すると、1 つのマシン ヒントの null 例外が発生します。しかし、キーワードを削除した後: volatile 、すべて問題ありません。なぜ?
ps: マップを null に設定できるパブリック メソッドはありません。