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(a)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(a)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(a)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(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev