[infinispan-issues] [JBoss JIRA] (ISPN-10130) Remote cache calls from client listener get stuck
Galder Zamarreño (Jira)
issues at jboss.org
Thu Apr 11 05:00:01 EDT 2019
[ https://issues.jboss.org/browse/ISPN-10130?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Galder Zamarreño updated ISPN-10130:
------------------------------------
Workaround Description:
If value information is needed, an existing converter can be used whereby the value created gets shipped back as part of the listener callback, e.g.
{code}
public class RemoteCacheGetFromListenerTest extends SingleHotRodServerTest {
public void test000() throws InterruptedException {
final RemoteCache<String, Object> remoteCache = remoteCacheManager.getCache();
remoteCache.addClientListener(new RemoteListener2(remoteCache));
final String key = UUID.randomUUID().toString();
remoteCache.put(key, 12345);
Thread.sleep(1000);
remoteCache.put(key, 23456);
}
@ClientListener(converterFactoryName = "key-value-with-previous-converter-factory")
private static class RemoteListener2 {
private final RemoteCache<String, Object> remoteCache;
public RemoteListener2(RemoteCache<String, Object> remoteCache) {
this.remoteCache = remoteCache;
}
@ClientCacheEntryCreated
public void handleCreatedEvent(ClientCacheEntryCustomEvent<KeyValueWithPrevious<String, Object>> event) {
System.out.println("RemoteListener.handleCreatedEvent: " + event);
System.out.println(event.getEventData().getValue());
}
}
}
{code}
Workaround: Workaround Exists
> Remote cache calls from client listener get stuck
> -------------------------------------------------
>
> Key: ISPN-10130
> URL: https://issues.jboss.org/browse/ISPN-10130
> Project: Infinispan
> Issue Type: Bug
> Components: Listeners, Remote Protocols
> Affects Versions: 9.4.12.Final, 10.0.0.Beta3
> Reporter: Galder Zamarreño
> Priority: Major
> Labels: rhdemo-2019
>
> Remote cache get() call from within a ClientListener callback gets stuck, e.g.
> {code}
> @Test(testName = "client.hotrod.MusaTest")
> public class RemoteCacheGetFromListenerTest extends SingleHotRodServerTest {
> public void test000() throws InterruptedException {
> final RemoteCache<String, Object> remoteCache = remoteCacheManager.getCache();
> remoteCache.addClientListener(new RemoteListener2(remoteCache));
> remoteCache.put(UUID.randomUUID().toString(), 12345);
> Thread.sleep(1000);
> }
> @ClientListener()
> private static class RemoteListener2 {
> private final RemoteCache<String, Object> remoteCache;
> public RemoteListener2(RemoteCache<String, Object> remoteCache) {
> this.remoteCache = remoteCache;
> }
> @ClientCacheEntryCreated
> public void handleCreatedEvent(ClientCacheEntryCreatedEvent<String> event) {
> System.out.println("RemoteListener.handleCreatedEvent: " + event);
> System.out.println(remoteCache.get(event.getKey()));
> }
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the infinispan-issues
mailing list