I looked at the pipeline PrecedenceQueryNodeProcessorPipeline, it contains some complex logic off removing a processor from the StandardQueryNodeProcessorPipeline.
I think it would be better to have a common ancestor, CommonQueryNodeProcessorPipeline, that both StandardQueryNodeProcessorPipeline and PrecedenceQueryNodeProcessorPipeline can extend.
I don't think it's so complex, it just removes GroupQueryNodeProcessor and adds ModifierQueryNodeProcessor (I think this is the class name). I also added this description to the javadocs.
Anyway, I would prefer to leave it like that, extending StandardQPP, instead of creating a common pipeline. The common pipeline would not make much sense right now, there is not QueryBuilder impl that would produce a correct Query instance from a query tree processed by it, so no one could just use it.
In future, we could have a third QP implementation, that instead of replacing GroupQueryNodeProcessor by ModifierQueryNodeProcessor, it would replace another processor, or switch the processors position, etc... the CommonQueryNodeProcessorPipeline would not make sense anymore, it only make sense right now for PrecedenceQP and StandardQP, because we know what both have in common, but doesn't mean a third QP would have the same in common.
So, +1 to leave it the way it's.