SimpleTokenizer has a static DEFAULT_TOKENIZER used by many methods in their constructors. However, SimpleTokenizer has a Map which is not thread safe. We have had infinite loops in the core java treemap get when used in a multi-threaded web environment. It would also seem incorrect to share a tokenizer between all methods.
One solution is to change the matching methods constructors to use a new SimpleTokenizer each.