Author Michael Kay's words awoken: I do not think that reusing the QueryProcessor should be a problem, but you possibly need to make sure that each query has its own StaticContext The change you've made to the code seems. Way Out, I Think You've Misdiagnosed The Problem. So, StaticQueryContext and DynamicQueryContext must be newly generated each time you execute queries.