I knew it would have been too obvious if caches with batching enabled never removed the thread-local, but I didn't look close enough because I thought `appendInterceptor()` would throw an exception if it found a duplicate...
I removed the other InvocationContextInterceptor and I added the duplicate check to `appendInterceptor()`.