You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Kevin Osborn <os...@yahoo.com> on 2010/12/02 07:22:43 UTC
problems with custom SolrCache.init() - fails on startup
My project has a couple custom caches that descend from FastLRUCache. These
worked fine in Solr 1.3. Then I started migrating my project to Solr 1.4.1 and
had problems during startup.
I believe the problem is that I attempt to access the core in the init process.
I currently use the deprecated SolrCore.getSolrCore(), but had the same problem
when attempting to use CoreContainer. During some initialization process, I need
access to the IndexSchema object. I assume the problem is because startup must
create objects in a different order now.
Does anyone have any suggestions on how to get access to the core infrastructure
at the startup of the caches?
Re: problems with custom SolrCache.init() - fails on startup
Posted by Chris Hostetter <ho...@fucit.org>.
: I believe the problem is that I attempt to access the core in the init process.
: I currently use the deprecated SolrCore.getSolrCore(), but had the same problem
: when attempting to use CoreContainer. During some initialization process, I need
: access to the IndexSchema object. I assume the problem is because startup must
: create objects in a different order now.
:
: Does anyone have any suggestions on how to get access to the core infrastructure
: at the startup of the caches?
Hmmm... i don't think there was ever any expectation that SolrCache's
would have access to the SolrCore durring init -- but obviously with the
abomination thtawas SolrCore.getSolrCore() anything was possible. In
general the number of things that have access to the SolrCore during
"init" is extremely low because the SOlrCore itself is what's initializing
everything else -- even in 1.3 calling SolrCore.getSolrCore() during
SolrCache's init() method was likely to give you a SolrCore object that
wasn't fully formed.
If what really matters to you is getting the IndexSchema, my suggestion
would be to take whatever custom code you have in your init method and
move it into a SolrEventListener that you then wire up to the
firstSearcher/newSearcher events - it can ask the searcher for both the
IndexSchema and the cache object (by name) and then populate it as needed.
(then you might not even need a custom subclass - you can probably use
FastLRUCache as is)
-Hoss