commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From t.@apache.org
Subject svn commit: r1408036 - in /commons/proper/jcs/trunk/src: changes/ java/org/apache/jcs/auxiliary/lateral/ java/org/apache/jcs/auxiliary/lateral/behavior/ java/org/apache/jcs/auxiliary/lateral/socket/tcp/ test/org/apache/jcs/auxiliary/disk/hsql/ test/org...
Date Sun, 11 Nov 2012 16:00:45 GMT
Author: tv
Date: Sun Nov 11 16:00:43 2012
New Revision: 1408036

URL: http://svn.apache.org/viewvc?rev=1408036&view=rev
Log:
Fix JCS-94: JCS fails to properly dispose of the lateral TCP listener thread. If a webapp
that uses JCS lateral TCP cache is undeployed, the listener is left hanging with no hope for
exit.

Removed:
    commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/disk/hsql/
    commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/socket/tcp/discovery/
Modified:
    commons/proper/jcs/trunk/src/changes/changes.xml
    commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheAbstractFactory.java
    commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacade.java
    commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java
    commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java
    commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java
    commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacadeUnitTest.java
    commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPDiscoveryListenerUnitTest.java

Modified: commons/proper/jcs/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/changes/changes.xml?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/changes/changes.xml (original)
+++ commons/proper/jcs/trunk/src/changes/changes.xml Sun Nov 11 16:00:43 2012
@@ -20,6 +20,11 @@
 	</properties>
 	<body>
 		<release version="2.0" date="unreleased" description="JDK 1.5 based major release">
+            <action dev="tv" type="fix" issue="JCS-94" due-to="Diego Rivera">
+                JCS fails to properly dispose of the lateral TCP listener thread. 
+                If a webapp that uses JCS lateral TCP cache is undeployed, the listener is
left 
+                hanging with no hope for exit.
+            </action>
             <action dev="tv" type="fix" issue="JCS-49" due-to="David Easley">
                 Contradictory documentation on RemoveUponRemotePut default value.
             </action>

Modified: commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheAbstractFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheAbstractFactory.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheAbstractFactory.java
(original)
+++ commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheAbstractFactory.java
Sun Nov 11 16:00:43 2012
@@ -25,6 +25,7 @@ import org.apache.jcs.auxiliary.Auxiliar
 import org.apache.jcs.auxiliary.AuxiliaryCacheAttributes;
 import org.apache.jcs.auxiliary.AuxiliaryCacheFactory;
 import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheListener;
 import org.apache.jcs.engine.behavior.ICompositeCacheManager;
 import org.apache.jcs.engine.behavior.IElementSerializer;
 import org.apache.jcs.engine.logging.behavior.ICacheEventLogger;
@@ -70,8 +71,11 @@ public abstract class LateralCacheAbstra
      * <p>
      * @param lac  ILateralCacheAttributes
      * @param cacheMgr
+     *
+     * @return the listener if created, else null
      */
-    public abstract void createListener( ILateralCacheAttributes lac, ICompositeCacheManager
cacheMgr );
+    public abstract <K extends Serializable, V extends Serializable>
+        ILateralCacheListener<K, V> createListener( ILateralCacheAttributes lac, ICompositeCacheManager
cacheMgr );
 
     /**
      * Gets the name attribute of the LateralCacheFactory object

Modified: commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacade.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacade.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacade.java
(original)
+++ commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacade.java
Sun Nov 11 16:00:43 2012
@@ -35,6 +35,7 @@ import org.apache.jcs.auxiliary.Abstract
 import org.apache.jcs.auxiliary.AuxiliaryCache;
 import org.apache.jcs.auxiliary.AuxiliaryCacheAttributes;
 import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheListener;
 import org.apache.jcs.engine.CacheStatus;
 import org.apache.jcs.engine.behavior.ICacheElement;
 import org.apache.jcs.engine.stats.StatElement;
@@ -63,21 +64,28 @@ public class LateralCacheNoWaitFacade<K 
     /** The region name */
     private final String cacheName;
 
+    /** A cache listener */
+    private ILateralCacheListener<K, V> listener;
+
     /** User configurable attributes. */
     private final ILateralCacheAttributes lateralCacheAttributes;
 
+    /** Disposed state of this facade */
+    private boolean disposed = false;
+
     /**
      * Constructs with the given lateral cache, and fires events to any listeners.
      * <p>
      * @param noWaits
      * @param cattr
      */
-    public LateralCacheNoWaitFacade( LateralCacheNoWait<K, V>[] noWaits, ILateralCacheAttributes
cattr )
+    public LateralCacheNoWaitFacade(ILateralCacheListener<K, V> listener, LateralCacheNoWait<K,
V>[] noWaits, ILateralCacheAttributes cattr )
     {
         if ( log.isDebugEnabled() )
         {
             log.debug( "CONSTRUCTING NO WAIT FACADE" );
         }
+        this.listener = listener;
         this.noWaits = noWaits;
         this.cacheName = cattr.getCacheName();
         this.lateralCacheAttributes = cattr;
@@ -390,6 +398,12 @@ public class LateralCacheNoWaitFacade<K 
     {
         try
         {
+            if ( listener != null )
+            {
+                listener.dispose();
+                listener = null;
+            }
+
             for ( int i = 0; i < noWaits.length; i++ )
             {
                 noWaits[i].dispose();
@@ -399,6 +413,10 @@ public class LateralCacheNoWaitFacade<K 
         {
             log.error( ex );
         }
+        finally
+        {
+            disposed = true;
+        }
     }
 
     /**
@@ -432,15 +450,47 @@ public class LateralCacheNoWaitFacade<K 
         //cache.getCacheName();
     }
 
-    // need to do something with this
     /**
      * Gets the status attribute of the LateralCacheNoWaitFacade object
      * @return The status value
      */
     public CacheStatus getStatus()
     {
-        return CacheStatus.ALIVE;
-        //q.isAlive() ? cache.getStatus() : cache.STATUS_ERROR;
+        if (disposed)
+        {
+            return CacheStatus.DISPOSED;
+        }
+
+        if ((noWaits.length == 0) || (listener != null))
+        {
+            return CacheStatus.ALIVE;
+        }
+
+        CacheStatus[] statii = new CacheStatus[noWaits.length];
+        for (int i = 0; i < noWaits.length; i++)
+        {
+            statii[i] = noWaits[i].getStatus();
+        }
+        // It's alive if ANY of its nowaits is alive
+        for (int i = 0; i < noWaits.length; i++)
+        {
+            if (statii[i] == CacheStatus.ALIVE)
+            {
+                return CacheStatus.ALIVE;
+            }
+        }
+        // It's alive if ANY of its nowaits is in error, but
+        // none are alive, then it's in error
+        for (int i = 0; i < noWaits.length; i++)
+        {
+            if (statii[i] == CacheStatus.ERROR)
+            {
+                return CacheStatus.ERROR;
+            }
+        }
+
+        // Otherwise, it's been disposed, since it's the only status left
+        return CacheStatus.DISPOSED;
     }
 
     /**

Modified: commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java
(original)
+++ commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java
Sun Nov 11 16:00:43 2012
@@ -30,18 +30,24 @@ import org.apache.jcs.engine.behavior.IC
 public interface ILateralCacheListener<K extends Serializable, V extends Serializable>
     extends ICacheListener<K, V>
 {
-    /** Description of the Method */
-    public void init();
+    /**
+     * Initialize this listener
+     */
+    void init();
 
     /**
      * @param cacheMgr
      *            The cacheMgr to set.
      */
-    public void setCacheManager( ICompositeCacheManager cacheMgr );
+    void setCacheManager( ICompositeCacheManager cacheMgr );
 
     /**
      * @return Returns the cacheMgr.
      */
-    public ICompositeCacheManager getCacheManager();
+    ICompositeCacheManager getCacheManager();
 
+    /**
+     * Dispose this listener
+     */
+    void dispose();
 }

Modified: commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java
(original)
+++ commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java
Sun Nov 11 16:00:43 2012
@@ -31,9 +31,9 @@ import org.apache.jcs.auxiliary.lateral.
 import org.apache.jcs.auxiliary.lateral.LateralCacheNoWait;
 import org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade;
 import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheListener;
 import org.apache.jcs.auxiliary.lateral.socket.tcp.behavior.ITCPLateralCacheAttributes;
 import org.apache.jcs.engine.behavior.ICache;
-import org.apache.jcs.engine.behavior.ICacheListener;
 import org.apache.jcs.engine.behavior.ICompositeCacheManager;
 import org.apache.jcs.engine.behavior.IElementSerializer;
 import org.apache.jcs.engine.behavior.IShutdownObservable;
@@ -118,12 +118,13 @@ public class LateralTCPCacheFactory
             }
         }
 
-        createListener( (ILateralCacheAttributes) iaca, cacheMgr );
+        ILateralCacheListener<K, V> listener = createListener( (ILateralCacheAttributes)
iaca, cacheMgr );
 
         // create the no wait facade.
         @SuppressWarnings("unchecked") // No generic arrays in java
         LateralCacheNoWait<K, V>[] lcnwArray = noWaits.toArray( new LateralCacheNoWait[0]
);
-        LateralCacheNoWaitFacade<K, V> lcnwf = new LateralCacheNoWaitFacade<K, V>(lcnwArray,
(ILateralCacheAttributes) iaca );
+        LateralCacheNoWaitFacade<K, V> lcnwf =
+            new LateralCacheNoWaitFacade<K, V>(listener, lcnwArray, (ILateralCacheAttributes)
iaca );
 
         // create udp discovery if available.
         createDiscoveryService( lac, lcnwf, cacheMgr, cacheEventLogger, elementSerializer
);
@@ -132,13 +133,23 @@ public class LateralTCPCacheFactory
     }
 
     /**
-     * @param lac
+     * Makes sure a listener gets created. It will get monitored as soon as it
+     * is used.
+     * <p>
+     * This should be called by create cache.
+     * <p>
+     * @param lac  ILateralCacheAttributes
      * @param cacheMgr
+     *
+     * @return the listener if created, else null
      */
     @Override
-    public void createListener( ILateralCacheAttributes lac, ICompositeCacheManager cacheMgr
)
+    public <K extends Serializable, V extends Serializable>
+        ILateralCacheListener<K, V> createListener( ILateralCacheAttributes lac, ICompositeCacheManager
cacheMgr )
     {
         ITCPLateralCacheAttributes attr = (ITCPLateralCacheAttributes) lac;
+        ILateralCacheListener<K, V> listener = null;
+
         // don't create a listener if we are not receiving.
         if ( attr.isReceive() )
         {
@@ -150,7 +161,7 @@ public class LateralTCPCacheFactory
             try
             {
                 // make a listener. if one doesn't exist
-                ICacheListener<?, ?> listener = LateralTCPListener.getInstance( attr,
cacheMgr );
+                listener = LateralTCPListener.getInstance( attr, cacheMgr );
 
                 // register for shutdown notification
                 if ( listener instanceof IShutdownObserver && cacheMgr instanceof
IShutdownObservable )
@@ -170,6 +181,8 @@ public class LateralTCPCacheFactory
                 log.debug( "Not creating a listener since we are not receiving." );
             }
         }
+
+        return listener;
     }
 
     /**

Modified: commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java
(original)
+++ commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java
Sun Nov 11 16:00:43 2012
@@ -26,6 +26,7 @@ import java.io.Serializable;
 import java.net.InetAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.net.SocketTimeoutException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
@@ -61,7 +62,7 @@ public class LateralTCPListener<K extend
     protected final static Log log = LogFactory.getLog( LateralTCPListener.class );
 
     /** How long the server will block on an accept(). 0 is infinite. */
-    private final static int acceptTimeOut = 0;
+    private final static int acceptTimeOut = 1000;
 
     /** The CacheHub this listener is associated with */
     private transient ICompositeCacheManager cacheManager;
@@ -100,6 +101,9 @@ public class LateralTCPListener<K extend
     /** is this shut down? */
     protected boolean shutdown = false;
 
+    /** is this terminated? */
+    protected boolean terminated = false;
+
     /**
      * Gets the instance attribute of the LateralCacheTCPListener class.
      * <p>
@@ -156,17 +160,18 @@ public class LateralTCPListener<K extend
             receiver.start();
 
             pooledExecutor = Executors.newCachedThreadPool(new MyThreadFactory());
+            terminated = false;
+            shutdown = false;
         }
         catch ( Exception ex )
         {
             log.error( ex );
-
             throw new IllegalStateException( ex.getMessage() );
         }
     }
 
     /**
-     * Let the lateral cache set a listener_id. Since there is only one listerenr for all
the
+     * Let the lateral cache set a listener_id. Since there is only one listener for all
the
      * regions and every region gets registered? the id shouldn't be set if it isn't zero.
If it is
      * we assume that it is a reconnect.
      * <p>
@@ -277,10 +282,10 @@ public class LateralTCPListener<K extend
      * <p>
      * @param cacheName
      * @param key
-     * @return Serializable
+     * @return a ICacheElement
      * @throws IOException
      */
-    public Serializable handleGet( String cacheName, K key )
+    public ICacheElement<K, V> handleGet( String cacheName, K key )
         throws IOException
     {
         getCnt++;
@@ -356,7 +361,7 @@ public class LateralTCPListener<K extend
     }
 
     /**
-     * Right now this does nothing.
+     * This marks this instance as terminated.
      * <p>
      * @see org.apache.jcs.engine.behavior.ICacheListener#handleDispose(java.lang.String)
      */
@@ -369,6 +374,16 @@ public class LateralTCPListener<K extend
         }
 
         // TODO handle active deregistration, rather than passive detection
+        synchronized (this)
+        {
+            terminated = true;
+        }
+    }
+
+    public synchronized void dispose()
+    {
+        terminated = true;
+        notify();
     }
 
     /**
@@ -481,24 +496,47 @@ public class LateralTCPListener<K extend
 
                 ConnectionHandler handler;
 
-                while ( !shutdown )
+                outer: while ( true )
                 {
                     if ( log.isDebugEnabled() )
                     {
                         log.debug( "Waiting for clients to connect " );
                     }
 
-                    Socket socket = serverSocket.accept();
+                    Socket socket = null;
+                    inner: while (true)
+                    {
+                        // Check to see if we've been asked to exit, and exit
+                        synchronized (this)
+                        {
+                            if (terminated)
+                            {
+                                if (log.isDebugEnabled())
+                                {
+                                    log.debug("Thread terminated, exiting gracefully");
+                                }
+                                break outer;
+                            }
+                        }
+                        try
+                        {
+                            socket = serverSocket.accept();
+                            break inner;
+                        }
+                        catch (SocketTimeoutException e)
+                        {
+                            // No problem! We loop back up!
+                            continue inner;
+                        }
+                    }
 
-                    if ( log.isDebugEnabled() )
+                    if ( socket != null && log.isDebugEnabled() )
                     {
                         InetAddress inetAddress = socket.getInetAddress();
-
                         log.debug( "Connected to client at " + inetAddress );
                     }
 
                     handler = new ConnectionHandler( socket );
-
                     pooledExecutor.execute( handler );
                 }
             }

Modified: commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacadeUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacadeUnitTest.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacadeUnitTest.java
(original)
+++ commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/LateralCacheNoWaitFacadeUnitTest.java
Sun Nov 11 16:00:43 2012
@@ -21,7 +21,7 @@ public class LateralCacheNoWaitFacadeUni
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( "testCache1" );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
         LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String,
String>( cache );
@@ -51,7 +51,7 @@ public class LateralCacheNoWaitFacadeUni
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( "testCache1" );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
         LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String,
String>( cache );
@@ -86,7 +86,7 @@ public class LateralCacheNoWaitFacadeUni
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( "testCache1" );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
         LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String,
String>( cache );
@@ -111,7 +111,7 @@ public class LateralCacheNoWaitFacadeUni
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( "testCache1" );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
         LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String,
String>( cache );

Modified: commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPDiscoveryListenerUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPDiscoveryListenerUnitTest.java?rev=1408036&r1=1408035&r2=1408036&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPDiscoveryListenerUnitTest.java
(original)
+++ commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPDiscoveryListenerUnitTest.java
Sun Nov 11 16:00:43 2012
@@ -57,7 +57,7 @@ public class LateralTCPDiscoveryListener
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( cacheName );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
 
         // DO WORK
         listener.addNoWaitFacade( cacheName, facade );
@@ -79,7 +79,7 @@ public class LateralTCPDiscoveryListener
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( cacheName );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
         listener.addNoWaitFacade( cacheName, facade );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
@@ -145,7 +145,7 @@ public class LateralTCPDiscoveryListener
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( cacheName );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
         listener.addNoWaitFacade( cacheName, facade );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
@@ -171,7 +171,7 @@ public class LateralTCPDiscoveryListener
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( cacheName );
 
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
         listener.addNoWaitFacade( cacheName, facade );
 
         LateralCache<String, String> cache = new LateralCache<String, String>(
cattr );
@@ -214,7 +214,7 @@ public class LateralTCPDiscoveryListener
         LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( cacheName );
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
         listener.addNoWaitFacade( cacheName, facade );
 
         // DO WORK
@@ -253,7 +253,7 @@ public class LateralTCPDiscoveryListener
         LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
         ILateralCacheAttributes cattr = new LateralCacheAttributes();
         cattr.setCacheName( cacheName );
-        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( noWaits, cattr );
+        LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String,
String>( null, noWaits, cattr );
         listener.addNoWaitFacade( cacheName, facade );
         listener.addDiscoveredService( service );
 



Mime
View raw message