Server threads were shown to be blocked and timeout during PAE testing. This showed up more in smaller heap sizes. Pulling many bytes and buffering would help this.
java.lang.Thread.State: BLOCKED (on object monitor)
at java.security.SecureRandom.nextBytes(SecureRandom.java:457)
- waiting to lock <0x00000007a256cc20> (a java.security.SecureRandom)
at sun.security.util.KeyUtil.checkTlsPreMasterSecretKey(KeyUtil.java:205)
at com.sun.crypto.provider.RSACipher.engineUnwrap(RSACipher.java:459)
at javax.crypto.Cipher.unwrap(Cipher.java:2506)
at sun.security.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:120)
at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:238)
java.lang.Thread.State: RUNNABLE
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:255)
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:410)
at sun.security.provider.NativePRNG$RandomIO.ensureBufferValid(NativePRNG.java:473)
at sun.security.provider.NativePRNG$RandomIO.implNextBytes(NativePRNG.java:487)
- locked <0x00000007a08a8ec0> (a java.lang.Object)
at sun.security.provider.NativePRNG$RandomIO.access$400(NativePRNG.java:329)
at sun.security.provider.NativePRNG.engineNextBytes(NativePRNG.java:218)
at java.security.SecureRandom.nextBytes(SecureRandom.java:457)
- locked <0x00000007a256cc20> (a java.security.SecureRandom)
at sun.security.ssl.CipherBox.createExplicitNonce(CipherBox.java:1015)