23
I will make it simple:
If you extend the ThreadLocal for any reason use remove(). On vanilla ThreadLocal use set(null).
Basically not using ThreadLocal.remove() on an extended ThreadLocal can lead to memory leaks (ClassLoader ones most likely)
If you need more details why, post a comment.