Author: rmannibucau
Date: Mon Jan  7 01:34:23 2013
New Revision: 1429639

URL: http://svn.apache.org/viewvc?rev=1429639&view=rev
Log:
OPENEJB-1984 // mode for session

Modified:
    
openejb/trunk/openejb/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java

Modified: 
openejb/trunk/openejb/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java?rev=1429639&r1=1429638&r2=1429639&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
 Mon Jan  7 01:34:23 2013
@@ -53,6 +53,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
 /**
  * A class to take care of HTTP Requests.  It parses headers, content, form 
and url
@@ -64,7 +65,7 @@ public class HttpRequestImpl implements 
     private static final String CHUNKED = "chunked";
     protected static final String EJBSESSIONID = "EJBSESSIONID";
 
-    private static final Map<String, HttpSession> SESSIONS = new 
ConcurrentHashMap<String, HttpSession>();
+    private static final ConcurrentMap<String, HttpSession> SESSIONS = new 
ConcurrentHashMap<String, HttpSession>();
 
     /**
      * 5.1.1    Method
@@ -777,7 +778,10 @@ public class HttpRequestImpl implements 
     public HttpSession getSession(boolean create) {
         if (session == null) {
             session = new HttpSessionImpl();
-            SESSIONS.put(session.getId(), session);
+            final HttpSession previous = SESSIONS.putIfAbsent(session.getId(), 
session);
+            if (previous != null) {
+                session = previous;
+            }
         }
         return session;
     }


Reply via email to