A DESCRIPTION OF THE FIX :
javac uses a poor hashing algorithm for names.
The current hash algorithm is based on first, middle and last character, length and three constants. In some cases, notably synthetic names, the code behaves like a linear search, giving O(n^2) performance.
The patch replaces the sampling algorithm with one based on that of String (since 1.1). Diff is against mustang b73.