Tomcat also complains if the VALUE of a ThreadLocal is an instance of a class that is defined in the Webapp. So even though the key type was HttpServleetRequest, some of the values were VitroRequest objects. Refactor so the value is the hash code of the request.