- TokenData tokenData = tokenToData.get(token);
- if (tokenData == null) {
- tokenData = new TokenData(token);
- tokenToData.put(token, tokenData);
+ TokenData tokenData = fastTokenToData.get(token);
+ if (tokenData != null) return tokenData;
+ tokenData = new TokenData(token);
+ final FastCompareString c = new FastCompareString(token);
+ if (tokenToData.put(c, tokenData) != null) {
+ // The parallel HashMap assumes that the TreeMap Comparator
+ // is compatible with the equals it uses to compare.
+ throw new RuntimeException("TokenData TreeMap and HashMap out of sync, Comparator may be broken?");