You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-dev@jakarta.apache.org by as...@apache.org on 2009/07/09 15:38:56 UTC

svn commit: r792552 - in /jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp: LateralTCPCacheManager.java discovery/UDPDiscoveryReceiver.java

Author: asmuts
Date: Thu Jul  9 13:38:56 2009
New Revision: 792552

URL: http://svn.apache.org/viewvc?rev=792552&view=rev
Log:
Fixing potential thread safety issue on the getInstance method in the lateral tcp cache.

Modified:
    jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java
    jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/discovery/UDPDiscoveryReceiver.java

Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java?rev=792552&r1=792551&r2=792552&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java Thu Jul  9 13:38:56 2009
@@ -20,6 +20,7 @@
  */
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -66,7 +67,7 @@
     private static LateralCacheMonitor monitor;
 
     /** Address to instance map. */
-    protected static Map instances = new HashMap();
+    protected static Map instances = Collections.synchronizedMap( new HashMap() );
 
     /** ITCPLateralCacheAttributes */
     protected ITCPLateralCacheAttributes lca;
@@ -101,9 +102,9 @@
                                                       ICacheEventLogger cacheEventLogger,
                                                       IElementSerializer elementSerializer )
     {
-        LateralTCPCacheManager ins = (LateralTCPCacheManager) instances.get( lca.toString() );
         synchronized ( instances )
         {
+            LateralTCPCacheManager ins = (LateralTCPCacheManager) instances.get( lca.toString() );
             if ( ins == null )
             {
                 log.info( "Instance for [" + lca.toString() + "] is null, creating" );
@@ -114,12 +115,13 @@
                     ins = new LateralTCPCacheManager( lca, cacheMgr, cacheEventLogger, elementSerializer );
                     instances.put( lca.toString(), ins );
                 }
+                
+                createMonitor( ins );
             }
-            createMonitor( ins );
-        }
-        ins.clients++;
+            ins.clients++;
 
-        return ins;
+            return ins;
+        }
     }
 
     /**

Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/discovery/UDPDiscoveryReceiver.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/discovery/UDPDiscoveryReceiver.java?rev=792552&r1=792551&r2=792552&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/discovery/UDPDiscoveryReceiver.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/discovery/UDPDiscoveryReceiver.java Thu Jul  9 13:38:56 2009
@@ -71,7 +71,7 @@
     /** number of messages received. For debugging and testing. */
     private int cnt = 0;
 
-    /** Service to get cache names and hande request broadcasts */
+    /** Service to get cache names and handle request broadcasts */
     protected UDPDiscoveryService service = null;
 
     /** Address */



---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jcs-dev-help@jakarta.apache.org