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());
+ }
}
/**