"SolrCoreAware" and "CloseHook" are related in that you need a SolrCore object
in order to call SolrCore.addCloseHook(). Indeed, the javadoc for the
CloseHook interface states that the expected way you are supposed to use this
in a plugin is via something like this:
public void inform(SolrCore core)
{
core.addCloseHook(new MyCloseHookInstance());
}
If you have another way I can get hold of the right SolrCore object from within
a QParserPlugin, please let me know. I've opened SOLR-3015 to track this issue.
Karl
________________________________________
From: ext Chris Hostetter [[email protected]]
Sent: Tuesday, January 03, 2012 12:55 PM
To: [email protected]
Subject: RE: Solr plugin component resource cleanup?
: This works fine for a SearchComponent, but if I try this for a QParserPlugin
I get the following:
:
: [junit] org.apache.solr.common.SolrException: Invalid 'Aware'
: object: org.apache.solr.mcf.ManifoldCFQParserPlugin@18941f7 --
: org.apache.solr.util.plugin.SolrCoreAware must be an instance of:
...that seems like an orthoginal problem to what i suggested...
: take a look at the "CloseHook" API and SolrCore.addCloseHook(...)
:
: : Is there a preferred time/manner for a Solr component (e.g. a
: : SearchComponent) to clean up resources that have been allocated during
: : the time of its existence, other than via a finalizer? There seems to
...any object can call SolrCore.addCloseHook, regardless of wether or not
that class implements SolrCoreAware (two ideas are unrelated). The list
of classes that implement SolrCoreAware has always been limited
to prevent circular lifecycle problems.
what type of resouces are you trying to clean up? are they really
specific to the initialization of the QParserPlugin (which shoulds *VERY*
unusual), or to the QParsers that it creates? because you can always call
addCloseHook in the createParser method.
-Hoss
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]