http://cr.openjdk.java.net/~jlaskey/8013208/webrev.01/index.html convertKey was called every time an indexed getter was invoked, instead of conditionally. Reworked the code to be conditionally calledl, also optimizing for Integer (boxed) values (very frequent) and cases when key is not an index.