NDC.pop() can return empty string, this causes a loop spinning in CallContext.UnregisterAll().

This commit is contained in:
Kelven Yang 2014-02-25 11:47:51 -08:00
parent b21662f890
commit cdf605b2cd

View File

@ -239,7 +239,7 @@ public class CallContext {
String sessionIdOnStack = null; String sessionIdOnStack = null;
String sessionIdPushedToNDC = "ctx-" + UuidUtils.first(contextId); String sessionIdPushedToNDC = "ctx-" + UuidUtils.first(contextId);
while ((sessionIdOnStack = NDC.pop()) != null) { while ((sessionIdOnStack = NDC.pop()) != null) {
if (sessionIdPushedToNDC.equals(sessionIdOnStack)) { if (sessionIdOnStack.isEmpty() || sessionIdPushedToNDC.equals(sessionIdOnStack)) {
break; break;
} }
if (s_logger.isTraceEnabled()) { if (s_logger.isTraceEnabled()) {