[
https://issues.apache.org/jira/browse/JENA-5?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Seaborne closed JENA-5.
----------------------------
> IndexLARQ is not thread safe
> ----------------------------
>
> Key: JENA-5
> URL: https://issues.apache.org/jira/browse/JENA-5
> Project: Jena
> Issue Type: Bug
> Components: ARQ
> Reporter: Brian McBride
> Assignee: Andy Seaborne
> Attachments: IndexLARQ.java, larqConcurrentPatch,
> TestLARQConcurrent.java
>
>
> Copying a previously sent email:
> I ran into a concurrency problem in LARQ. When I try to run concurrent
> queries the Lucene query parser barfs.
> After a bit of digging, I think I understand what is going on. I was
> creating an IndexLARQ and setting that as the global index, then running my
> queries. The IndexLARQ constructor constructs a Lucene QueryParser object
> which it uses for all queries. Lucene QueryParser objects are not thread
> safe, so multiple concurrent queries cause the parser the barf.
> I have had a go at patching the HEAD from SVN. Basically I make the
> QueryParser object in IndexLARQ ThreadLocal.
> The problem with this is that there is a constructor to IndexLARQ which takes
> an externally provided QueryParser object and QueryParser is not clonable. I
> could replicate the query parser for each thread provided I know its a
> QueryParser and not a subclass of QueryParser. If someone passed in a
> subclass of QueryParser I'd go creating the wrong class of objects as a
> replica.
> Whilst this scenario is not very likely, since I think the constructor should
> be deprecated anyway, what I've done is esentially left that constructor
> alone. Creating an IndexLARQ with that contructor will continue to construct
> one that is not thread safe. The other constructors will construct
> threadsafe instances.
> Attached are:
> a modified IndexLARQ.java that fixes the problem as I've described.
> TestLARQConcurrent.java - a test case
> larqConcurrentPatch - a patch file that applies the changes
> Oops - Just noticed the license notice on the test case file - you will want
> to change that if you use this.
> hmmm - there doesn't seem to be a button here for attaching files.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.