https://issues.jboss.org/browse/ISPN-2232

Tnx.

That's a bug. We have tests that check stop/start/stop procedure:
https://github.com/infinispan/infinispan/blob/master/core/src/test/java/org/infinispan/jmx/CacheMBeanTest.java#L55

But not tests that check that procedure with the query module in.

Fill it in http://issues.jboss.org/browse/ISPN and we'll sort it out.

Cheers,

On Aug 27, 2012, at 11:15 PM, Ales Justin wrote:

Uh, the workaround results in NPE:

23:10:27,160 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host]] (http-/192.168.1.101:8080-2) Exception sending request initialized lifecycle event to listener instance of class org.jboss.capedwarf.appidentity.GAEListener: java.lang.NullPointerException
at org.infinispan.query.impl.LifecycleManager.cacheStarted(LifecycleManager.java:125)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:178) [infinispan-core-5.2.0.ALPHA2.jar:5.2.0.ALPHA2]
at org.infinispan.CacheImpl.start(CacheImpl.java:523) [infinispan-core-5.2.0.ALPHA2.jar:5.2.0.ALPHA2]
at org.infinispan.AbstractDelegatingCache.start(AbstractDelegatingCache.java:343) [infinispan-core-5.2.0.ALPHA2.jar:5.2.0.ALPHA2]
at org.jboss.capedwarf.common.infinispan.InfinispanUtils.checkCache(InfinispanUtils.java:72) [capedwarf-common-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
at org.jboss.capedwarf.common.infinispan.InfinispanUtils.getCache(InfinispanUtils.java:82) [capedwarf-common-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]

This is the code I added:

  private static <K, V> Cache<K, V> checkCache(String cacheName) {
      final Cache<K, V> cache = cacheManager.getCache(cacheName, false);
      if (cache != null) {
          final ComponentStatus status = cache.getStatus();
          if (status != ComponentStatus.INITIALIZING && status != ComponentStatus.RUNNING) {
              cache.start();
          }
      }
      return cache;
  }

Any other idea?

-Ales

On Aug 27, 2012, at 10:51 PM, Ales Justin <ales.justin@gmail.com> wrote:

OK, let me try this workaround.

But should Cache::stop also remove it or not?

If yes, I might dig deeper into finding the culprit,
if not, then the workaround should do, I guess.

-Ales

As a workaround, couldn't you check what the status of the cache is before using it? If it's stopped, you could call cache.start() again.

On Aug 25, 2012, at 3:44 PM, Ales Justin wrote:

When running CapeDwarf tests these days I get this broken behavior:
(using: Ispan 5.2.0.Alpha2)

On 1st test all works OK:
* getting the X cache
* passing it to SearchManager (from Ispan Query)
* doing queries, etc
* stopping the X cache on app (aka Arquillian test) undeploy

But when running 2nd app (more Arquillian tests) it breaks.

I'm again using X cache, via this lookup:
(where toCacheName == X)

       final Cache<K, V> cache = cacheManager.getCache(toCacheName(config, appId), false);
       if (cache != null)
           return cache;

And I actually get some cache, where I would expect none.

Since this cache is not new, it's never run against Ispan Query's LifecycleManager,
hence there is no QueryInterceptor in its component registry.

Which is where the app breaks: SearchManager requires QueryInterceptor in cache' component registry.

Shouldn't Cache::stop also remove the cache from EmbeddedCacheManager?
btw: this used to work, dunno when it broke ...

Anyone else seeing something similar?

-Ales

----------

15:32:06,810 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host]] (http-/192.168.1.101:8080-3) Exception sending request initialized lifecycle event to listener instance of class org.jboss.capedwarf.appidentity.GAEListener: java.lang.IllegalArgumentException: Indexing was not enabled on this cache. class org.infinispan.query.backend.QueryInterceptor not found in registry
at org.infinispan.query.impl.ComponentRegistryUtils.getComponent(ComponentRegistryUtils.java:40)
at org.infinispan.query.SearchManagerImpl.<init>(SearchManagerImpl.java:57)
at org.infinispan.query.Search.getSearchManager(Search.java:39)
at org.jboss.capedwarf.datastore.AbstractDatastoreService.<init>(AbstractDatastoreService.java:61) [capedwarf-datastore-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
at org.jboss.capedwarf.datastore.JBossDatastoreService.<init>(JBossDatastoreService.java:56) [capedwarf-datastore-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]
at com.google.appengine.api.datastore.DatastoreServiceFactory.getDatastoreService(DatastoreServiceFactory.java) [appengine-api-1.0-sdk-1.7.0.jar:]
at org.jboss.capedwarf.log.JBossLogService.requestStarted(JBossLogService.java:215) [capedwarf-log-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]



_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Galder Zamarreņo
Sr. Software Engineer
Infinispan, JBoss Cache


_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev