When working on the following issue, I realized the QueryMethod is using the non-final (!) createParameters on this in the constructor. Because of this, we have a leaky constructor. The method createParameters is actually meant for implementations to be extended, it cannot be called in constructor of QueryMethod, since the child of QueryMethod is not yet fully constructed at the time createParameters is called.
What needs to be done: we need to call createParameters outside the constructor. Maybe we can consider calling it lazily.