[infinispan-dev] getting stopped cache

Dan Berindei dan.berindei at gmail.com
Tue Aug 28 04:57:11 EDT 2012


That's the NPE I was talking about, the CommandInitializer *should* be
registered again by the ComponentRegistry constructor so the initializer
variable shouldn't be null...

I can't say why that doesn't happen, though. Could you try with an
Infinispan-only test?


On Tue, Aug 28, 2012 at 11:10 AM, Ales Justin <ales.justin at gmail.com> wrote:

> NPE is thrown at diff place; see #125 line in LM class.
> No initializer is found, hence NPE on initializer::initialize(Cache).
>
> Sent from my iPad
>
> On Aug 28, 2012, at 9:25, Dan Berindei <dan.berindei at gmail.com> wrote:
>
> Cache.stop() should not remove the cache from the cache manager.
>
> But AFAIK the ComponentRegistry that holds all the cache-scoped components
> is destroyed, and recreated by Cache.start(). In the constructor it should
> register Query's CommandInitializer again, so LifecycleManager should find
> it and you shouldn't get the NPE...
>
> Dan
>
>
> On Tue, Aug 28, 2012 at 12:15 AM, Ales Justin <ales.justin at gmail.com>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 at 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 at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20120828/d9242cbb/attachment.html 


More information about the infinispan-dev mailing list