Author: struberg
Date: Mon Mar 21 09:44:17 2011
New Revision: 1083717

URL: http://svn.apache.org/viewvc?rev=1083717&view=rev
Log:
OWB-547 avoid NPE in WebContextsService

Modified:
    
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java

Modified: 
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java?rev=1083717&r1=1083716&r2=1083717&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
 (original)
+++ 
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/context/WebContextsService.java
 Mon Mar 21 09:44:17 2011
@@ -103,7 +103,6 @@ public class WebContextsService extends 
         //Dependent context is always active
         dependentContext = new DependentContext();
         dependentContext.setActive(true);
-
     }
 
     /**
@@ -379,20 +378,25 @@ public class WebContextsService extends 
      */
     private void initSessionContext(HttpSession session)
     {
+        if (session == null)
+        {
+            // no session -> no SessionContext
+            return;
+        }
+
         String sessionId = session.getId();
         //Current context
         SessionContext currentSessionContext = 
sessionCtxManager.getSessionContextWithSessionId(sessionId);
-        
+
         //No current context
         if (currentSessionContext == null)
         {
             currentSessionContext = new SessionContext();
             sessionCtxManager.addNewSessionContext(sessionId, 
currentSessionContext);
         }
-
         //Activate
         currentSessionContext.setActive(true);
-        
+
         //Set thread local
         sessionContext.set(currentSessionContext);
     }
@@ -404,22 +408,24 @@ public class WebContextsService extends 
      */
     private void destroySessionContext(HttpSession session)
     {
-        //Get current session context
-        SessionContext context = sessionContext.get();
-
-        //Destroy context
-        if (context != null)
+        if (session != null)
         {
-            context.destroy();
-        }
+            //Get current session context
+            SessionContext context = sessionContext.get();
 
-        //Clear thread locals
-        sessionContext.set(null);
-        sessionContext.remove();
-        
-        //Remove session from manager
-        sessionCtxManager.destroySessionContextWithSessionId(session.getId());
+            //Destroy context
+            if (context != null)
+            {
+                context.destroy();
+            }
 
+            //Clear thread locals
+            sessionContext.set(null);
+            sessionContext.remove();
+
+            //Remove session from manager
+            
sessionCtxManager.destroySessionContextWithSessionId(session.getId());
+        }
     }
 
     /**


Reply via email to