An embarrassing bug in the equal(String,String) private implementation method. The Strings compare equal when there is a % in one string, a different char in the same place in the other string, but the two chars following are the same.
http://cr.openjdk.java.net/~chegar/7041800/webrev.00/webrev/ -Chris.