RVM
  1. RVM
  2. RVM-714

Massive increase in time to execute VM.boot

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      2

      Description

      r15151("Fix for RVM-700, failure for ServerSockets to work.") has caused a large amount of class loading to occur during VM.boot. This has increased the boot time by a factor of 10 on my system (0.5s to 5s).

      1. verbose.out
        47 kB
        Ian Rogers
      2. VM.java
        71 kB
        Ian Rogers

        Issue Links

          Activity

          Hide
          David Grove added a comment -

          Hi Ian,

          I haven't observed this on my system. Any more specifics on the problem?

          Show
          David Grove added a comment - Hi Ian, I haven't observed this on my system. Any more specifics on the problem?
          Hide
          Ian Rogers added a comment -

          Hi Dave, turn on verboseBoot and verbose class loading to see what's going on. Running the class initializer for java.net.InetAddress is forcing the loading of a lot java security classes. It'd be easy to add them to the primordials but most of these classes have their own static initializers.

          Show
          Ian Rogers added a comment - Hi Dave, turn on verboseBoot and verbose class loading to see what's going on. Running the class initializer for java.net.InetAddress is forcing the loading of a lot java security classes. It'd be easy to add them to the primordials but most of these classes have their own static initializers.
          Hide
          David Grove added a comment -

          Right. I guess my comment was that boot time for me is less than 100ms, so I was wondering why you were seeing such a large slowdown. I'm loading gazillions of javax.crypto classes, but it doesn't seem to be impacting performance that much.

          [dgrove@linchen rvm-trunk]$ time ~/rvm-trunk/dist/development_ia32-linux/rvm Hello
          Hello World

          real 0m0.158s
          user 0m0.100s
          sys 0m0.044s

          Show
          David Grove added a comment - Right. I guess my comment was that boot time for me is less than 100ms, so I was wondering why you were seeing such a large slowdown. I'm loading gazillions of javax.crypto classes, but it doesn't seem to be impacting performance that much. [dgrove@linchen rvm-trunk] $ time ~/rvm-trunk/dist/development_ia32-linux/rvm Hello Hello World real 0m0.158s user 0m0.100s sys 0m0.044s
          Hide
          Ian Rogers added a comment -

          For a prototype build on my 1.8GHz laptop it's taking me over 5s to get to the "please specify a class..." message, which is an increase of about 10 times. The problem is when running pre-commit or other test runs involving prototype builds, 5 seconds many times is a large increase in overall test run time.

          Show
          Ian Rogers added a comment - For a prototype build on my 1.8GHz laptop it's taking me over 5s to get to the "please specify a class..." message, which is an increase of about 10 times. The problem is when running pre-commit or other test runs involving prototype builds, 5 seconds many times is a large increase in overall test run time.
          Hide
          David Grove added a comment -

          Still not able to reproduce. Time on my laptop. Yes, it's not great, but it's nowhere near 5 seconds.

          [dgrove@linchen rvm-trunk]$ time ./dist/prototype_ia32-linux/rvm Hello
          Hello World

          real 0m0.769s
          user 0m0.534s
          sys 0m0.044s

          Show
          David Grove added a comment - Still not able to reproduce. Time on my laptop. Yes, it's not great, but it's nowhere near 5 seconds. [dgrove@linchen rvm-trunk] $ time ./dist/prototype_ia32-linux/rvm Hello Hello World real 0m0.769s user 0m0.534s sys 0m0.044s
          Hide
          Ian Rogers added a comment -

          org.jikesrvm.VM that dumps out time during a verboseBoot

          Show
          Ian Rogers added a comment - org.jikesrvm.VM that dumps out time during a verboseBoot
          Hide
          Ian Rogers added a comment -

          Timed output from a verbose boot

          Show
          Ian Rogers added a comment - Timed output from a verbose boot
          Hide
          Ian Rogers added a comment -

          It could be you've got much better kit than me Dave I'm seeing much different boot times. The pertinent bit from the timed verbose output is (unsnipped to emphasize the amount of work that's going on since running the InetAddress, time in milliseconds):

          running class intializer for java.net.InetAddress
          Time: 579 (0x0000000000000243)
          invoking method < BootstrapCL, Ljava/net/InetAddress; >.<clinit> ()V
          [Loaded java.net.VMInetAddress]
          [Preparing java.net.VMInetAddress]
          [Initializing java.net.VMInetAddress]
          [Running static initializer for java.net.VMInetAddress]
          [Initialized java.net.VMInetAddress]
          [Loaded java.net.Inet4Address]
          [Preparing java.net.Inet4Address]
          [Initializing java.net.Inet4Address]
          [Initialized java.net.Inet4Address]
          [Loaded java.net.ResolverCache]
          [Preparing java.net.ResolverCache]
          [Initializing java.net.ResolverCache]
          [Running static initializer for java.net.ResolverCache]
          [Loaded java.security.Security]
          [Preparing java.security.Security]
          [Initializing java.security.Security]
          [Running static initializer for java.security.Security]
          [Loaded org.jikesrvm.classloader.ReflectionBase$$Reflect1428]
          [Preparing org.jikesrvm.classloader.ReflectionBase$$Reflect1428]
          [Initializing org.jikesrvm.classloader.ReflectionBase$$Reflect1428]
          [Initialized org.jikesrvm.classloader.ReflectionBase$$Reflect1428]
          [Loaded gnu.javax.crypto.jce.GnuCrypto]
          [Preparing gnu.javax.crypto.jce.GnuCrypto]
          [Initializing gnu.javax.crypto.jce.GnuCrypto]
          [Initialized gnu.javax.crypto.jce.GnuCrypto]
          [Loaded gnu.javax.crypto.jce.GnuCrypto$1]
          [Preparing gnu.javax.crypto.jce.GnuCrypto$1]
          [Initializing gnu.javax.crypto.jce.GnuCrypto$1]
          [Initialized gnu.javax.crypto.jce.GnuCrypto$1]
          [Loaded javax.crypto.CipherSpi]
          [Loaded gnu.javax.crypto.jce.cipher.CipherAdapter]
          [Preparing gnu.javax.crypto.jce.cipher.CipherAdapter]
          [Loaded gnu.javax.crypto.jce.cipher.AnubisSpi]
          [Preparing gnu.javax.crypto.jce.cipher.AnubisSpi]
          [Loaded gnu.javax.crypto.jce.cipher.ARCFourSpi]
          [Preparing gnu.javax.crypto.jce.cipher.ARCFourSpi]
          [Loaded gnu.javax.crypto.jce.cipher.BlowfishSpi]
          [Preparing gnu.javax.crypto.jce.cipher.BlowfishSpi]
          [Loaded gnu.javax.crypto.jce.cipher.DESSpi]
          [Preparing gnu.javax.crypto.jce.cipher.DESSpi]
          [Loaded gnu.javax.crypto.jce.cipher.KhazadSpi]
          [Preparing gnu.javax.crypto.jce.cipher.KhazadSpi]
          [Loaded gnu.javax.crypto.jce.cipher.NullCipherSpi]
          [Preparing gnu.javax.crypto.jce.cipher.NullCipherSpi]
          [Loaded gnu.javax.crypto.jce.cipher.RijndaelSpi]
          [Preparing gnu.javax.crypto.jce.cipher.RijndaelSpi]
          [Loaded gnu.javax.crypto.jce.cipher.SerpentSpi]
          [Preparing gnu.javax.crypto.jce.cipher.SerpentSpi]
          [Loaded gnu.javax.crypto.jce.cipher.SquareSpi]
          [Preparing gnu.javax.crypto.jce.cipher.SquareSpi]
          [Loaded gnu.javax.crypto.jce.cipher.TripleDESSpi]
          [Preparing gnu.javax.crypto.jce.cipher.TripleDESSpi]
          [Loaded gnu.javax.crypto.jce.cipher.TwofishSpi]
          [Preparing gnu.javax.crypto.jce.cipher.TwofishSpi]
          [Loaded gnu.javax.crypto.jce.cipher.Cast5Spi]
          [Preparing gnu.javax.crypto.jce.cipher.Cast5Spi]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$AES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$AES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Anubis]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Anubis]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Blowfish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Blowfish]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Cast5]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Cast5]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$DES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$DES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Khazad]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Khazad]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Serpent]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Serpent]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Square]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Square]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$TripleDES]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$TripleDES]
          [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Twofish]
          [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Twofish]
          [Loaded gnu.javax.crypto.jce.cipher.KeyWrappingAlgorithmAdapter]
          [Preparing gnu.javax.crypto.jce.cipher.KeyWrappingAlgorithmAdapter]
          [Loaded gnu.javax.crypto.jce.cipher.AESKeyWrapSpi]
          [Preparing gnu.javax.crypto.jce.cipher.AESKeyWrapSpi]
          [Loaded gnu.javax.crypto.jce.cipher.AES128KeyWrapSpi]
          [Preparing gnu.javax.crypto.jce.cipher.AES128KeyWrapSpi]
          [Loaded gnu.javax.crypto.jce.cipher.AES192KeyWrapSpi]
          [Preparing gnu.javax.crypto.jce.cipher.AES192KeyWrapSpi]
          [Loaded gnu.javax.crypto.jce.cipher.AES256KeyWrapSpi]
          [Preparing gnu.javax.crypto.jce.cipher.AES256KeyWrapSpi]
          [Loaded gnu.javax.crypto.jce.cipher.TripleDESKeyWrapSpi]
          [Preparing gnu.javax.crypto.jce.cipher.TripleDESKeyWrapSpi]
          [Loaded javax.crypto.SecretKeyFactorySpi]
          [Preparing javax.crypto.SecretKeyFactorySpi]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacHaval]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacHaval]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD2]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD2]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD4]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD4]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD5]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD5]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA1]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA1]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA256]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA256]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA384]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA384]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA512]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA512]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacTiger]
          [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacWhirlpool]
          [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacWhirlpool]
          [Loaded gnu.javax.crypto.jce.key.SecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.SecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.AnubisSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.AnubisSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.BlowfishSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.BlowfishSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.Cast5SecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.Cast5SecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.DESSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.DESSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.KhazadSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.KhazadSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.RijndaelSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.RijndaelSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.SerpentSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.SerpentSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.SquareSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.SquareSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.key.DESedeSecretKeyFactoryImpl]
          [Preparing gnu.javax.crypto.jce.key.DESedeSecretKeyFactoryImpl]
          [Loaded gnu.javax.crypto.jce.params.BlockCipherParameters]
          [Preparing java.security.AlgorithmParametersSpi]
          [Preparing gnu.javax.crypto.jce.params.BlockCipherParameters]
          [Loaded javax.crypto.KeyGeneratorSpi]
          [Preparing javax.crypto.KeyGeneratorSpi]
          [Loaded gnu.javax.crypto.jce.key.SecretKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.SecretKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.AnubisKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.AnubisKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.BlowfishKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.BlowfishKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.Cast5KeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.Cast5KeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.DESKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.DESKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.KhazadKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.KhazadKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.RijndaelKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.RijndaelKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.SerpentKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.SerpentKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.SquareKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.SquareKeyGeneratorImpl]
          [Loaded gnu.javax.crypto.jce.key.TripleDESKeyGeneratorImpl]
          [Preparing gnu.javax.crypto.jce.key.TripleDESKeyGeneratorImpl]
          [Loaded javax.crypto.MacSpi]
          [Preparing javax.crypto.MacSpi]
          [Loaded gnu.javax.crypto.jce.mac.MacAdapter]
          [Preparing gnu.javax.crypto.jce.mac.MacAdapter]
          [Loaded gnu.javax.crypto.jce.mac.HMacMD2Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacMD2Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacMD4Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacMD4Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacMD5Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacMD5Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacRipeMD128Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacRipeMD128Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacRipeMD160Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacRipeMD160Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacSHA160Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacSHA160Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacSHA256Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacSHA256Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacSHA384Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacSHA384Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacSHA512Spi]
          [Preparing gnu.javax.crypto.jce.mac.HMacSHA512Spi]
          [Loaded gnu.javax.crypto.jce.mac.HMacTigerSpi]
          [Preparing gnu.javax.crypto.jce.mac.HMacTigerSpi]
          [Loaded gnu.javax.crypto.jce.mac.HMacHavalSpi]
          [Preparing gnu.javax.crypto.jce.mac.HMacHavalSpi]
          [Loaded gnu.javax.crypto.jce.mac.HMacWhirlpoolSpi]
          [Preparing gnu.javax.crypto.jce.mac.HMacWhirlpoolSpi]
          [Loaded gnu.javax.crypto.jce.mac.TMMH16Spi]
          [Preparing gnu.javax.crypto.jce.mac.TMMH16Spi]
          [Loaded gnu.javax.crypto.jce.mac.UHash32Spi]
          [Preparing gnu.javax.crypto.jce.mac.UHash32Spi]
          [Loaded gnu.javax.crypto.jce.mac.UMac32Spi]
          [Preparing gnu.javax.crypto.jce.mac.UMac32Spi]
          [Loaded gnu.javax.crypto.jce.mac.OMacAnubisImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacAnubisImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacBlowfishImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacBlowfishImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacCast5Impl]
          [Preparing gnu.javax.crypto.jce.mac.OMacCast5Impl]
          [Loaded gnu.javax.crypto.jce.mac.OMacDESImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacDESImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacKhazadImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacKhazadImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacRijndaelImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacRijndaelImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacSerpentImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacSerpentImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacSquareImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacSquareImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacTripleDESImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacTripleDESImpl]
          [Loaded gnu.javax.crypto.jce.mac.OMacTwofishImpl]
          [Preparing gnu.javax.crypto.jce.mac.OMacTwofishImpl]
          [Loaded javax.crypto.KeyAgreementSpi]
          [Preparing javax.crypto.KeyAgreementSpi]
          [Loaded gnu.javax.crypto.jce.DiffieHellmanImpl]
          [Preparing gnu.javax.crypto.jce.DiffieHellmanImpl]
          [Loaded gnu.javax.crypto.RSACipherImpl]
          [Preparing gnu.javax.crypto.RSACipherImpl]
          [Loaded gnu.javax.crypto.jce.prng.ARCFourRandomSpi]
          [Preparing java.security.SecureRandomSpi]
          [Preparing gnu.javax.crypto.jce.prng.ARCFourRandomSpi]
          [Loaded gnu.javax.crypto.jce.prng.CSPRNGSpi]
          [Preparing gnu.javax.crypto.jce.prng.CSPRNGSpi]
          [Loaded gnu.javax.crypto.jce.prng.ICMRandomSpi]
          [Preparing gnu.javax.crypto.jce.prng.ICMRandomSpi]
          [Loaded gnu.javax.crypto.jce.prng.UMacRandomSpi]
          [Preparing gnu.javax.crypto.jce.prng.UMacRandomSpi]
          [Loaded gnu.javax.crypto.jce.prng.FortunaImpl]
          [Preparing gnu.javax.crypto.jce.prng.FortunaImpl]
          [Loaded java.security.KeyStoreSpi]
          [Preparing java.security.KeyStoreSpi]
          [Loaded gnu.javax.crypto.jce.keyring.GnuKeyring]
          [Preparing gnu.javax.crypto.jce.keyring.GnuKeyring]
          [Loaded gnu.javax.crypto.jce.sig.DHKeyPairGeneratorSpi]
          [Preparing java.security.KeyPairGeneratorSpi]
          [Preparing java.security.KeyPairGenerator]
          [Preparing gnu.java.security.jce.sig.KeyPairGeneratorAdapter]
          [Preparing gnu.javax.crypto.jce.sig.DHKeyPairGeneratorSpi]
          [Loaded gnu.javax.crypto.jce.sig.DHKeyFactory]
          [Preparing java.security.KeyFactorySpi]
          [Preparing gnu.javax.crypto.jce.sig.DHKeyFactory]
          [Loaded gnu.javax.crypto.jce.sig.DHParameters]
          [Preparing gnu.javax.crypto.jce.sig.DHParameters]
          [Loaded gnu.javax.crypto.jce.sig.DHParametersGenerator]
          [Preparing java.security.AlgorithmParameterGeneratorSpi]
          [Preparing gnu.javax.crypto.jce.sig.DHParametersGenerator]
          [Loaded gnu.javax.crypto.jce.GnuSasl]
          [Preparing gnu.javax.crypto.jce.GnuSasl]
          [Initializing gnu.javax.crypto.jce.GnuSasl]
          [Initialized gnu.javax.crypto.jce.GnuSasl]
          [Loaded gnu.javax.crypto.jce.GnuSasl$1]
          [Initializing gnu.javax.crypto.jce.GnuSasl$1]
          [Initialized gnu.javax.crypto.jce.GnuSasl$1]
          [Loaded javax.security.sasl.SaslClientFactory]
          [Preparing javax.security.sasl.SaslClientFactory]
          [Loaded gnu.javax.crypto.sasl.ClientFactory]
          [Preparing gnu.javax.crypto.sasl.ClientFactory]
          [Loaded javax.security.sasl.SaslServerFactory]
          [Preparing javax.security.sasl.SaslServerFactory]
          [Loaded gnu.javax.crypto.sasl.ServerFactory]
          [Preparing gnu.javax.crypto.sasl.ServerFactory]
          [Loaded gnu.javax.net.ssl.provider.Jessie]
          [Preparing gnu.javax.net.ssl.provider.Jessie]
          [Initializing gnu.javax.net.ssl.provider.Jessie]
          [Initialized gnu.javax.net.ssl.provider.Jessie]
          [Loaded gnu.javax.net.ssl.provider.Jessie$1]
          [Preparing gnu.javax.net.ssl.provider.Jessie$1]
          [Initializing gnu.javax.net.ssl.provider.Jessie$1]
          [Initialized gnu.javax.net.ssl.provider.Jessie$1]
          [Loaded javax.net.ssl.SSLContextSpi]
          [Preparing javax.net.ssl.SSLContextSpi]
          [Loaded gnu.javax.net.ssl.provider.SSLContextImpl]
          [Preparing gnu.javax.net.ssl.provider.SSLContextImpl]
          [Loaded javax.net.ssl.KeyManagerFactorySpi]
          [Preparing javax.net.ssl.KeyManagerFactorySpi]
          [Loaded gnu.javax.net.ssl.provider.X509KeyManagerFactory]
          [Preparing gnu.javax.net.ssl.provider.X509KeyManagerFactory]
          [Loaded javax.net.ssl.TrustManagerFactorySpi]
          [Preparing javax.net.ssl.TrustManagerFactorySpi]
          [Loaded gnu.javax.net.ssl.provider.X509TrustManagerFactory]
          [Preparing gnu.javax.net.ssl.provider.X509TrustManagerFactory]
          [Loaded gnu.javax.net.ssl.provider.PreSharedKeyManagerFactoryImpl]
          [Preparing gnu.javax.net.ssl.provider.PreSharedKeyManagerFactoryImpl]
          [Loaded gnu.javax.net.ssl.provider.SSLv3HMacMD5Impl]
          [Preparing gnu.javax.net.ssl.provider.SSLv3HMacMD5Impl]
          [Loaded gnu.javax.net.ssl.provider.SSLv3HMacSHAImpl]
          [Preparing gnu.javax.net.ssl.provider.SSLv3HMacSHAImpl]
          [Loaded gnu.javax.net.ssl.provider.SSLRSASignatureImpl]
          [Preparing java.security.SignatureSpi]
          [Preparing gnu.javax.net.ssl.provider.SSLRSASignatureImpl]
          [Loaded gnu.javax.security.auth.callback.GnuCallbacks]
          [Preparing gnu.javax.security.auth.callback.GnuCallbacks]
          [Initializing gnu.javax.security.auth.callback.GnuCallbacks]
          [Initialized gnu.javax.security.auth.callback.GnuCallbacks]
          [Loaded gnu.javax.security.auth.callback.GnuCallbacks$1]
          [Preparing gnu.javax.security.auth.callback.GnuCallbacks$1]
          [Initializing gnu.javax.security.auth.callback.GnuCallbacks$1]
          [Initialized gnu.javax.security.auth.callback.GnuCallbacks$1]
          [Loaded javax.security.auth.callback.CallbackHandler]
          [Preparing javax.security.auth.callback.CallbackHandler]
          [Loaded gnu.javax.security.auth.callback.AbstractCallbackHandler]
          [Preparing gnu.javax.security.auth.callback.AbstractCallbackHandler]
          [Loaded gnu.javax.security.auth.callback.DefaultCallbackHandler]
          [Preparing gnu.javax.security.auth.callback.DefaultCallbackHandler]
          [Loaded gnu.javax.security.auth.callback.ConsoleCallbackHandler]
          [Preparing gnu.javax.security.auth.callback.ConsoleCallbackHandler]
          [Loaded java.util.EventListener]
          [Preparing java.util.EventListener]
          [Loaded java.awt.event.ActionListener]
          [Preparing java.awt.event.ActionListener]
          [Loaded java.awt.event.WindowListener]
          [Preparing java.awt.event.WindowListener]
          [Loaded gnu.javax.security.auth.callback.AWTCallbackHandler]
          [Preparing gnu.javax.security.auth.callback.AWTCallbackHandler]
          [Loaded gnu.javax.security.auth.callback.SwingCallbackHandler]
          [Preparing gnu.javax.security.auth.callback.SwingCallbackHandler]
          [Initialized java.security.Security]
          [Initialized java.net.ResolverCache]
          [Loaded org.jikesrvm.classloader.ReflectionBase$$Reflect4218]
          [Preparing org.jikesrvm.classloader.ReflectionBase$$Reflect4218]
          [Initializing org.jikesrvm.classloader.ReflectionBase$$Reflect4218]
          [Loaded java.net.ResolverCache$Entry]
          [Preparing java.net.ResolverCache$Entry]
          [Initializing java.net.ResolverCache$Entry]
          [Initialized java.net.ResolverCache$Entry]
          finished running class intializer for java.net.InetAddress
          Time: 5710 (0x000000000000164e)

          Show
          Ian Rogers added a comment - It could be you've got much better kit than me Dave I'm seeing much different boot times. The pertinent bit from the timed verbose output is (unsnipped to emphasize the amount of work that's going on since running the InetAddress, time in milliseconds): running class intializer for java.net.InetAddress Time: 579 (0x0000000000000243) invoking method < BootstrapCL, Ljava/net/InetAddress; >.<clinit> ()V [Loaded java.net.VMInetAddress] [Preparing java.net.VMInetAddress] [Initializing java.net.VMInetAddress] [Running static initializer for java.net.VMInetAddress] [Initialized java.net.VMInetAddress] [Loaded java.net.Inet4Address] [Preparing java.net.Inet4Address] [Initializing java.net.Inet4Address] [Initialized java.net.Inet4Address] [Loaded java.net.ResolverCache] [Preparing java.net.ResolverCache] [Initializing java.net.ResolverCache] [Running static initializer for java.net.ResolverCache] [Loaded java.security.Security] [Preparing java.security.Security] [Initializing java.security.Security] [Running static initializer for java.security.Security] [Loaded org.jikesrvm.classloader.ReflectionBase$$Reflect1428] [Preparing org.jikesrvm.classloader.ReflectionBase$$Reflect1428] [Initializing org.jikesrvm.classloader.ReflectionBase$$Reflect1428] [Initialized org.jikesrvm.classloader.ReflectionBase$$Reflect1428] [Loaded gnu.javax.crypto.jce.GnuCrypto] [Preparing gnu.javax.crypto.jce.GnuCrypto] [Initializing gnu.javax.crypto.jce.GnuCrypto] [Initialized gnu.javax.crypto.jce.GnuCrypto] [Loaded gnu.javax.crypto.jce.GnuCrypto$1] [Preparing gnu.javax.crypto.jce.GnuCrypto$1] [Initializing gnu.javax.crypto.jce.GnuCrypto$1] [Initialized gnu.javax.crypto.jce.GnuCrypto$1] [Loaded javax.crypto.CipherSpi] [Loaded gnu.javax.crypto.jce.cipher.CipherAdapter] [Preparing gnu.javax.crypto.jce.cipher.CipherAdapter] [Loaded gnu.javax.crypto.jce.cipher.AnubisSpi] [Preparing gnu.javax.crypto.jce.cipher.AnubisSpi] [Loaded gnu.javax.crypto.jce.cipher.ARCFourSpi] [Preparing gnu.javax.crypto.jce.cipher.ARCFourSpi] [Loaded gnu.javax.crypto.jce.cipher.BlowfishSpi] [Preparing gnu.javax.crypto.jce.cipher.BlowfishSpi] [Loaded gnu.javax.crypto.jce.cipher.DESSpi] [Preparing gnu.javax.crypto.jce.cipher.DESSpi] [Loaded gnu.javax.crypto.jce.cipher.KhazadSpi] [Preparing gnu.javax.crypto.jce.cipher.KhazadSpi] [Loaded gnu.javax.crypto.jce.cipher.NullCipherSpi] [Preparing gnu.javax.crypto.jce.cipher.NullCipherSpi] [Loaded gnu.javax.crypto.jce.cipher.RijndaelSpi] [Preparing gnu.javax.crypto.jce.cipher.RijndaelSpi] [Loaded gnu.javax.crypto.jce.cipher.SerpentSpi] [Preparing gnu.javax.crypto.jce.cipher.SerpentSpi] [Loaded gnu.javax.crypto.jce.cipher.SquareSpi] [Preparing gnu.javax.crypto.jce.cipher.SquareSpi] [Loaded gnu.javax.crypto.jce.cipher.TripleDESSpi] [Preparing gnu.javax.crypto.jce.cipher.TripleDESSpi] [Loaded gnu.javax.crypto.jce.cipher.TwofishSpi] [Preparing gnu.javax.crypto.jce.cipher.TwofishSpi] [Loaded gnu.javax.crypto.jce.cipher.Cast5Spi] [Preparing gnu.javax.crypto.jce.cipher.Cast5Spi] [Loaded gnu.javax.crypto.jce.cipher.PBES2] [Preparing gnu.javax.crypto.jce.cipher.PBES2] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacHaval$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD2$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD4$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacMD5$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA1$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA256$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA384$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacSHA512$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacTiger$Twofish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$AES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$AES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Anubis] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Anubis] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Blowfish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Blowfish] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Cast5] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Cast5] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$DES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$DES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Khazad] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Khazad] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Serpent] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Serpent] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Square] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Square] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$TripleDES] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$TripleDES] [Loaded gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Twofish] [Preparing gnu.javax.crypto.jce.cipher.PBES2$HMacWhirlpool$Twofish] [Loaded gnu.javax.crypto.jce.cipher.KeyWrappingAlgorithmAdapter] [Preparing gnu.javax.crypto.jce.cipher.KeyWrappingAlgorithmAdapter] [Loaded gnu.javax.crypto.jce.cipher.AESKeyWrapSpi] [Preparing gnu.javax.crypto.jce.cipher.AESKeyWrapSpi] [Loaded gnu.javax.crypto.jce.cipher.AES128KeyWrapSpi] [Preparing gnu.javax.crypto.jce.cipher.AES128KeyWrapSpi] [Loaded gnu.javax.crypto.jce.cipher.AES192KeyWrapSpi] [Preparing gnu.javax.crypto.jce.cipher.AES192KeyWrapSpi] [Loaded gnu.javax.crypto.jce.cipher.AES256KeyWrapSpi] [Preparing gnu.javax.crypto.jce.cipher.AES256KeyWrapSpi] [Loaded gnu.javax.crypto.jce.cipher.TripleDESKeyWrapSpi] [Preparing gnu.javax.crypto.jce.cipher.TripleDESKeyWrapSpi] [Loaded javax.crypto.SecretKeyFactorySpi] [Preparing javax.crypto.SecretKeyFactorySpi] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacHaval] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacHaval] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD2] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD2] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD4] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD4] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD5] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacMD5] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA1] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA1] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA256] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA256] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA384] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA384] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA512] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacSHA512] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacTiger] [Loaded gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacWhirlpool] [Preparing gnu.javax.crypto.jce.PBKDF2SecretKeyFactory$HMacWhirlpool] [Loaded gnu.javax.crypto.jce.key.SecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.SecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.AnubisSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.AnubisSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.BlowfishSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.BlowfishSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.Cast5SecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.Cast5SecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.DESSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.DESSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.KhazadSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.KhazadSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.RijndaelSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.RijndaelSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.SerpentSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.SerpentSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.SquareSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.SquareSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.key.DESedeSecretKeyFactoryImpl] [Preparing gnu.javax.crypto.jce.key.DESedeSecretKeyFactoryImpl] [Loaded gnu.javax.crypto.jce.params.BlockCipherParameters] [Preparing java.security.AlgorithmParametersSpi] [Preparing gnu.javax.crypto.jce.params.BlockCipherParameters] [Loaded javax.crypto.KeyGeneratorSpi] [Preparing javax.crypto.KeyGeneratorSpi] [Loaded gnu.javax.crypto.jce.key.SecretKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.SecretKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.AnubisKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.AnubisKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.BlowfishKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.BlowfishKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.Cast5KeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.Cast5KeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.DESKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.DESKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.KhazadKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.KhazadKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.RijndaelKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.RijndaelKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.SerpentKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.SerpentKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.SquareKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.SquareKeyGeneratorImpl] [Loaded gnu.javax.crypto.jce.key.TripleDESKeyGeneratorImpl] [Preparing gnu.javax.crypto.jce.key.TripleDESKeyGeneratorImpl] [Loaded javax.crypto.MacSpi] [Preparing javax.crypto.MacSpi] [Loaded gnu.javax.crypto.jce.mac.MacAdapter] [Preparing gnu.javax.crypto.jce.mac.MacAdapter] [Loaded gnu.javax.crypto.jce.mac.HMacMD2Spi] [Preparing gnu.javax.crypto.jce.mac.HMacMD2Spi] [Loaded gnu.javax.crypto.jce.mac.HMacMD4Spi] [Preparing gnu.javax.crypto.jce.mac.HMacMD4Spi] [Loaded gnu.javax.crypto.jce.mac.HMacMD5Spi] [Preparing gnu.javax.crypto.jce.mac.HMacMD5Spi] [Loaded gnu.javax.crypto.jce.mac.HMacRipeMD128Spi] [Preparing gnu.javax.crypto.jce.mac.HMacRipeMD128Spi] [Loaded gnu.javax.crypto.jce.mac.HMacRipeMD160Spi] [Preparing gnu.javax.crypto.jce.mac.HMacRipeMD160Spi] [Loaded gnu.javax.crypto.jce.mac.HMacSHA160Spi] [Preparing gnu.javax.crypto.jce.mac.HMacSHA160Spi] [Loaded gnu.javax.crypto.jce.mac.HMacSHA256Spi] [Preparing gnu.javax.crypto.jce.mac.HMacSHA256Spi] [Loaded gnu.javax.crypto.jce.mac.HMacSHA384Spi] [Preparing gnu.javax.crypto.jce.mac.HMacSHA384Spi] [Loaded gnu.javax.crypto.jce.mac.HMacSHA512Spi] [Preparing gnu.javax.crypto.jce.mac.HMacSHA512Spi] [Loaded gnu.javax.crypto.jce.mac.HMacTigerSpi] [Preparing gnu.javax.crypto.jce.mac.HMacTigerSpi] [Loaded gnu.javax.crypto.jce.mac.HMacHavalSpi] [Preparing gnu.javax.crypto.jce.mac.HMacHavalSpi] [Loaded gnu.javax.crypto.jce.mac.HMacWhirlpoolSpi] [Preparing gnu.javax.crypto.jce.mac.HMacWhirlpoolSpi] [Loaded gnu.javax.crypto.jce.mac.TMMH16Spi] [Preparing gnu.javax.crypto.jce.mac.TMMH16Spi] [Loaded gnu.javax.crypto.jce.mac.UHash32Spi] [Preparing gnu.javax.crypto.jce.mac.UHash32Spi] [Loaded gnu.javax.crypto.jce.mac.UMac32Spi] [Preparing gnu.javax.crypto.jce.mac.UMac32Spi] [Loaded gnu.javax.crypto.jce.mac.OMacAnubisImpl] [Preparing gnu.javax.crypto.jce.mac.OMacAnubisImpl] [Loaded gnu.javax.crypto.jce.mac.OMacBlowfishImpl] [Preparing gnu.javax.crypto.jce.mac.OMacBlowfishImpl] [Loaded gnu.javax.crypto.jce.mac.OMacCast5Impl] [Preparing gnu.javax.crypto.jce.mac.OMacCast5Impl] [Loaded gnu.javax.crypto.jce.mac.OMacDESImpl] [Preparing gnu.javax.crypto.jce.mac.OMacDESImpl] [Loaded gnu.javax.crypto.jce.mac.OMacKhazadImpl] [Preparing gnu.javax.crypto.jce.mac.OMacKhazadImpl] [Loaded gnu.javax.crypto.jce.mac.OMacRijndaelImpl] [Preparing gnu.javax.crypto.jce.mac.OMacRijndaelImpl] [Loaded gnu.javax.crypto.jce.mac.OMacSerpentImpl] [Preparing gnu.javax.crypto.jce.mac.OMacSerpentImpl] [Loaded gnu.javax.crypto.jce.mac.OMacSquareImpl] [Preparing gnu.javax.crypto.jce.mac.OMacSquareImpl] [Loaded gnu.javax.crypto.jce.mac.OMacTripleDESImpl] [Preparing gnu.javax.crypto.jce.mac.OMacTripleDESImpl] [Loaded gnu.javax.crypto.jce.mac.OMacTwofishImpl] [Preparing gnu.javax.crypto.jce.mac.OMacTwofishImpl] [Loaded javax.crypto.KeyAgreementSpi] [Preparing javax.crypto.KeyAgreementSpi] [Loaded gnu.javax.crypto.jce.DiffieHellmanImpl] [Preparing gnu.javax.crypto.jce.DiffieHellmanImpl] [Loaded gnu.javax.crypto.RSACipherImpl] [Preparing gnu.javax.crypto.RSACipherImpl] [Loaded gnu.javax.crypto.jce.prng.ARCFourRandomSpi] [Preparing java.security.SecureRandomSpi] [Preparing gnu.javax.crypto.jce.prng.ARCFourRandomSpi] [Loaded gnu.javax.crypto.jce.prng.CSPRNGSpi] [Preparing gnu.javax.crypto.jce.prng.CSPRNGSpi] [Loaded gnu.javax.crypto.jce.prng.ICMRandomSpi] [Preparing gnu.javax.crypto.jce.prng.ICMRandomSpi] [Loaded gnu.javax.crypto.jce.prng.UMacRandomSpi] [Preparing gnu.javax.crypto.jce.prng.UMacRandomSpi] [Loaded gnu.javax.crypto.jce.prng.FortunaImpl] [Preparing gnu.javax.crypto.jce.prng.FortunaImpl] [Loaded java.security.KeyStoreSpi] [Preparing java.security.KeyStoreSpi] [Loaded gnu.javax.crypto.jce.keyring.GnuKeyring] [Preparing gnu.javax.crypto.jce.keyring.GnuKeyring] [Loaded gnu.javax.crypto.jce.sig.DHKeyPairGeneratorSpi] [Preparing java.security.KeyPairGeneratorSpi] [Preparing java.security.KeyPairGenerator] [Preparing gnu.java.security.jce.sig.KeyPairGeneratorAdapter] [Preparing gnu.javax.crypto.jce.sig.DHKeyPairGeneratorSpi] [Loaded gnu.javax.crypto.jce.sig.DHKeyFactory] [Preparing java.security.KeyFactorySpi] [Preparing gnu.javax.crypto.jce.sig.DHKeyFactory] [Loaded gnu.javax.crypto.jce.sig.DHParameters] [Preparing gnu.javax.crypto.jce.sig.DHParameters] [Loaded gnu.javax.crypto.jce.sig.DHParametersGenerator] [Preparing java.security.AlgorithmParameterGeneratorSpi] [Preparing gnu.javax.crypto.jce.sig.DHParametersGenerator] [Loaded gnu.javax.crypto.jce.GnuSasl] [Preparing gnu.javax.crypto.jce.GnuSasl] [Initializing gnu.javax.crypto.jce.GnuSasl] [Initialized gnu.javax.crypto.jce.GnuSasl] [Loaded gnu.javax.crypto.jce.GnuSasl$1] [Initializing gnu.javax.crypto.jce.GnuSasl$1] [Initialized gnu.javax.crypto.jce.GnuSasl$1] [Loaded javax.security.sasl.SaslClientFactory] [Preparing javax.security.sasl.SaslClientFactory] [Loaded gnu.javax.crypto.sasl.ClientFactory] [Preparing gnu.javax.crypto.sasl.ClientFactory] [Loaded javax.security.sasl.SaslServerFactory] [Preparing javax.security.sasl.SaslServerFactory] [Loaded gnu.javax.crypto.sasl.ServerFactory] [Preparing gnu.javax.crypto.sasl.ServerFactory] [Loaded gnu.javax.net.ssl.provider.Jessie] [Preparing gnu.javax.net.ssl.provider.Jessie] [Initializing gnu.javax.net.ssl.provider.Jessie] [Initialized gnu.javax.net.ssl.provider.Jessie] [Loaded gnu.javax.net.ssl.provider.Jessie$1] [Preparing gnu.javax.net.ssl.provider.Jessie$1] [Initializing gnu.javax.net.ssl.provider.Jessie$1] [Initialized gnu.javax.net.ssl.provider.Jessie$1] [Loaded javax.net.ssl.SSLContextSpi] [Preparing javax.net.ssl.SSLContextSpi] [Loaded gnu.javax.net.ssl.provider.SSLContextImpl] [Preparing gnu.javax.net.ssl.provider.SSLContextImpl] [Loaded javax.net.ssl.KeyManagerFactorySpi] [Preparing javax.net.ssl.KeyManagerFactorySpi] [Loaded gnu.javax.net.ssl.provider.X509KeyManagerFactory] [Preparing gnu.javax.net.ssl.provider.X509KeyManagerFactory] [Loaded javax.net.ssl.TrustManagerFactorySpi] [Preparing javax.net.ssl.TrustManagerFactorySpi] [Loaded gnu.javax.net.ssl.provider.X509TrustManagerFactory] [Preparing gnu.javax.net.ssl.provider.X509TrustManagerFactory] [Loaded gnu.javax.net.ssl.provider.PreSharedKeyManagerFactoryImpl] [Preparing gnu.javax.net.ssl.provider.PreSharedKeyManagerFactoryImpl] [Loaded gnu.javax.net.ssl.provider.SSLv3HMacMD5Impl] [Preparing gnu.javax.net.ssl.provider.SSLv3HMacMD5Impl] [Loaded gnu.javax.net.ssl.provider.SSLv3HMacSHAImpl] [Preparing gnu.javax.net.ssl.provider.SSLv3HMacSHAImpl] [Loaded gnu.javax.net.ssl.provider.SSLRSASignatureImpl] [Preparing java.security.SignatureSpi] [Preparing gnu.javax.net.ssl.provider.SSLRSASignatureImpl] [Loaded gnu.javax.security.auth.callback.GnuCallbacks] [Preparing gnu.javax.security.auth.callback.GnuCallbacks] [Initializing gnu.javax.security.auth.callback.GnuCallbacks] [Initialized gnu.javax.security.auth.callback.GnuCallbacks] [Loaded gnu.javax.security.auth.callback.GnuCallbacks$1] [Preparing gnu.javax.security.auth.callback.GnuCallbacks$1] [Initializing gnu.javax.security.auth.callback.GnuCallbacks$1] [Initialized gnu.javax.security.auth.callback.GnuCallbacks$1] [Loaded javax.security.auth.callback.CallbackHandler] [Preparing javax.security.auth.callback.CallbackHandler] [Loaded gnu.javax.security.auth.callback.AbstractCallbackHandler] [Preparing gnu.javax.security.auth.callback.AbstractCallbackHandler] [Loaded gnu.javax.security.auth.callback.DefaultCallbackHandler] [Preparing gnu.javax.security.auth.callback.DefaultCallbackHandler] [Loaded gnu.javax.security.auth.callback.ConsoleCallbackHandler] [Preparing gnu.javax.security.auth.callback.ConsoleCallbackHandler] [Loaded java.util.EventListener] [Preparing java.util.EventListener] [Loaded java.awt.event.ActionListener] [Preparing java.awt.event.ActionListener] [Loaded java.awt.event.WindowListener] [Preparing java.awt.event.WindowListener] [Loaded gnu.javax.security.auth.callback.AWTCallbackHandler] [Preparing gnu.javax.security.auth.callback.AWTCallbackHandler] [Loaded gnu.javax.security.auth.callback.SwingCallbackHandler] [Preparing gnu.javax.security.auth.callback.SwingCallbackHandler] [Initialized java.security.Security] [Initialized java.net.ResolverCache] [Loaded org.jikesrvm.classloader.ReflectionBase$$Reflect4218] [Preparing org.jikesrvm.classloader.ReflectionBase$$Reflect4218] [Initializing org.jikesrvm.classloader.ReflectionBase$$Reflect4218] [Loaded java.net.ResolverCache$Entry] [Preparing java.net.ResolverCache$Entry] [Initializing java.net.ResolverCache$Entry] [Initialized java.net.ResolverCache$Entry] finished running class intializer for java.net.InetAddress Time: 5710 (0x000000000000164e)
          Hide
          David Grove added a comment -

          The classloading seems to be triggered by the appearance of Foo.class.getName() for most of the crypto classes.

          Interestingly, all we have to do to allow class.getName to complete is to load & resolve the class (we aren't instantiating it). A sleazy trick would be to add another list of classes to the primordials which would be loaded and resolved, but not instantiated/initialized. This would reduce the work done during booting without having to handle re-running static initializers.

          Show
          David Grove added a comment - The classloading seems to be triggered by the appearance of Foo.class.getName() for most of the crypto classes. Interestingly, all we have to do to allow class.getName to complete is to load & resolve the class (we aren't instantiating it). A sleazy trick would be to add another list of classes to the primordials which would be loaded and resolved, but not instantiated/initialized. This would reduce the work done during booting without having to handle re-running static initializers.
          Hide
          Filip Pizlo added a comment -

          We (Daniel and I) found the reason. It's InetAddress's static initializer. That was the fix for RVM-700 - running it eagerly. It turns out this static initializer takes a few seconds, because it tries to resolve 0.0.0.0 to a name (getHostByAddr), which on all of our machines at least, takes a long time.

          This is a classpath bug. InetAddress should be initialized at some point no matter how you look at it. And it shouldn't take that long.

          The fix I would propose is to put an entry of 0.0.0.0 into java.net.ResolverCache, at least, provided that we know, for all reasonable platforms, what 0.0.0.0's name is "supposed" to be according to Java.

          -F

          Show
          Filip Pizlo added a comment - We (Daniel and I) found the reason. It's InetAddress's static initializer. That was the fix for RVM-700 - running it eagerly. It turns out this static initializer takes a few seconds, because it tries to resolve 0.0.0.0 to a name (getHostByAddr), which on all of our machines at least, takes a long time. This is a classpath bug. InetAddress should be initialized at some point no matter how you look at it. And it shouldn't take that long. The fix I would propose is to put an entry of 0.0.0.0 into java.net.ResolverCache, at least, provided that we know, for all reasonable platforms, what 0.0.0.0's name is "supposed" to be according to Java. -F
          Hide
          Ian Rogers added a comment -

          Makes sense. I'm also not sure we should be doing so much static initialization as this implies loading, linking and compilation. The trace above gives more details.

          Show
          Ian Rogers added a comment - Makes sense. I'm also not sure we should be doing so much static initialization as this implies loading, linking and compilation. The trace above gives more details.
          Hide
          Filip Pizlo added a comment -

          FYI. This happens on Ubuntu but not on Fedora.

          On my Ubuntu box:

          [pizlo@dethklok test] time ~/Programs/RVM-trunk/dist/BaseBaseMarkSweep_x86_64-linux/rvm hello
          hello!

          real 0m5.682s
          user 0m0.604s
          sys 0m0.060s

          Over 5 seconds to print hello. On the Fedora box, it's half a second for the same configuration.

          I'm poking around with this to see if I can come up with an elegant solution on our end...

          Show
          Filip Pizlo added a comment - FYI. This happens on Ubuntu but not on Fedora. On my Ubuntu box: [pizlo@dethklok test] time ~/Programs/RVM-trunk/dist/BaseBaseMarkSweep_x86_64-linux/rvm hello hello! real 0m5.682s user 0m0.604s sys 0m0.060s Over 5 seconds to print hello. On the Fedora box, it's half a second for the same configuration. I'm poking around with this to see if I can come up with an elegant solution on our end...
          Hide
          David Grove added a comment -

          I believe Daniel fixed this in r15699.

          Show
          David Grove added a comment - I believe Daniel fixed this in r15699.

            People

            • Assignee:
              Daniel Frampton
              Reporter:
              Ian Rogers
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: