Uploaded image for project: 'JikesRVM'
  1. JikesRVM
  2. RVM-714

Massive increase in time to execute VM.boot

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Highest
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      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).

        Attachments

          Issue Links

            Activity

            Hide
            dgrove David Grove added a comment -

            Hi Ian,

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

            Show
            dgrove David Grove added a comment - Hi Ian, I haven't observed this on my system. Any more specifics on the problem?
            Hide
            ianrogers 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
            ianrogers 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
            dgrove 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
            dgrove 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
            ianrogers 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
            ianrogers 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
            dgrove 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
            dgrove 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
            ianrogers Ian Rogers added a comment -

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

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

            Timed output from a verbose boot

            Show
            ianrogers Ian Rogers added a comment - Timed output from a verbose boot
            Hide
            ianrogers 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
            ianrogers 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
            dgrove 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
            dgrove 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
            pizlo 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
            pizlo 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
            ianrogers 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
            ianrogers 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
            pizlo 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
            pizlo 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
            dgrove David Grove added a comment -

            I believe Daniel fixed this in r15699.

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

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: