For more info on /dev/random vs. /dev/urandom:
See workaround in 6202721 ("file:/dev/./urandom"). Be sure to note that /dev/urandom isn't as random as /dev/random.
Mostly likely the problem is that there is not enough entropy in the linux /dev/random device. Even though it says "file:/dev/urandom" in the java.security file, this string is actually an alias for "file:/dev/random" in the Unix/Linux native SeedGeneration code. Unfortunate, we probably can't change for compatibility reasons. /dev/random will stall until there is random noise (keyboard input, mouse movement, etc.) /dev/urandom won't stall, and will make a best guess at some randomness.