2012/8/13 Christopher Schultz > > Can I ask why the use of HashSet<String> rather than Set<String> is a > problem? I intentionally used the implementation class instead of an > interface for a (small) performance improvement. I'm happy to patch > trunk/7.0.x/6.0.x to fix this if you feel that it is important. >
Only because it is a 'protected' field and thus is a part of API. If it were a private field I wouldn't care. I mean we are limiting ourselves from replacing it by TreeMap, or Flat3Map, or whetever other implementation in the future. I think it is too small concern to make us change released code (I mean, leave 7.0 as is because we have a released version containing this code), but it is a valid concern to fix 8 and avoid it in 6. There are cases when concrete implementation class has additional methods that are useful, e.g. ArrayList has trimToSize() method. If you intend to use those, then it is OK to leave concrete implementation class in the declaration. Just my preference. Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org