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


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cdf605b2
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cdf605b2
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cdf605b2

Branch: refs/heads/master
Commit: cdf605b2cd7ccbe40b42810f8aaacb90535496db
Parents: b21662f
Author: Kelven Yang <kelv...@gmail.com>
Authored: Tue Feb 25 11:47:51 2014 -0800
Committer: Kelven Yang <kelv...@gmail.com>
Committed: Fri Feb 28 15:35:59 2014 -0800

----------------------------------------------------------------------
 api/src/org/apache/cloudstack/context/CallContext.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cdf605b2/api/src/org/apache/cloudstack/context/CallContext.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/context/CallContext.java 
b/api/src/org/apache/cloudstack/context/CallContext.java
index f80b921..22ea55f 100644
--- a/api/src/org/apache/cloudstack/context/CallContext.java
+++ b/api/src/org/apache/cloudstack/context/CallContext.java
@@ -239,7 +239,7 @@ public class CallContext {
         String sessionIdOnStack = null;
         String sessionIdPushedToNDC = "ctx-" + UuidUtils.first(contextId);
         while ((sessionIdOnStack = NDC.pop()) != null) {
-            if (sessionIdPushedToNDC.equals(sessionIdOnStack)) {
+            if (sessionIdOnStack.isEmpty() || 
sessionIdPushedToNDC.equals(sessionIdOnStack)) {
                 break;
             }
             if (s_logger.isTraceEnabled()) {

Reply via email to