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 );