Eclipse crashes : "An error has occurred. See the log file"
When I start eclipse it crashes with the following message.

    An error has occurred.  See the log file
    /home/binoy/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1339005865980.log

Here's `1339005865980.log` :


    $ cat /home/binoy/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1339005865980.log
    !SESSION Wed Jun 06 23:34:25 IST 2012 ------------------------------------------
    !ENTRY org.eclipse.equinox.launcher 4 0 2012-06-06 23:34:25.991
    !MESSAGE Exception launching the Eclipse Platform:
    !STACK
    java.lang.InternalError: internal error: SHA-1 not available.
    	at sun.security.provider.SecureRandom.init(SecureRandom.java:105)
    	at sun.security.provider.SecureRandom.<init>(SecureRandom.java:84)
    	at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:186)
    	at java.security.SecureRandom.<init>(SecureRandom.java:150)
    	at java.io.File$LazyInitialization.<clinit>(File.java:1681)
    	at java.io.File.generateFile(File.java:1694)
    	at java.io.File.createTempFile(File.java:1803)
    	at org.eclipse.equinox.launcher.Main.canWrite(Main.java:1290)
    	at org.eclipse.equinox.launcher.Main.checkConfigurationLocation(Main.java:691)
    	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:568)
    	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

here's `/etc/java-6-openjdk/security/java.security`:

    $ cat /etc/java-6-openjdk/security/java.security
    #
    # This is the "master security properties file".
    #
    # In this file, various security properties are set for use by
    # java.security classes. This is where users can statically register
    # Cryptography Package Providers ("providers" for short). The term
    # "provider" refers to a package or set of packages that supply a
    # concrete implementation of a subset of the cryptography aspects of
    # the Java Security API. A provider may, for example, implement one or
    # more digital signature algorithms or message digest algorithms.
    #
    # Each provider must implement a subclass of the Provider class.
    # To register a provider in this master security properties file,
    # specify the Provider subclass name and priority in the format
    #
    #    security.provider.<n>=<className>
    #
    # This declares a provider, and specifies its preference
    # order n. The preference order is the order in which providers are
    # searched for requested algorithms (when no specific provider is
    # requested). The order is 1-based; 1 is the most preferred, followed
    # by 2, and so on.
    #
    # <className> must specify the subclass of the Provider class whose
    # constructor sets the values of various properties that are required
    # for the Java Security API to look up the algorithms or other
    # facilities implemented by the provider.
    #
    # There must be at least one provider specification in java.security.
    # There is a default provider that comes standard with the JDK. It
    # is called the "SUN" provider, and its Provider subclass
    # named Sun appears in the sun.security.provider package. Thus, the
    # "SUN" provider is registered via the following:
    #
    #    security.provider.1=sun.security.provider.Sun
    #
    # (The number 1 is used for the default provider.)
    #
    # Note: Providers can be dynamically registered instead by calls to
    # either the addProvider or insertProviderAt method in the Security
    # class.
    
    #
    # List of providers and their preference orders (see above):
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.crypto.provider.SunJCE
    security.provider.5=sun.security.jgss.SunProvider
    security.provider.6=com.sun.security.sasl.Provider
    security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.8=sun.security.smartcardio.SunPCSC
    security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
    
    #
    # Select the source of seed data for SecureRandom. By default an
    # attempt is made to use the entropy gathering device specified by 
    # the securerandom.source property. If an exception occurs when
    # accessing the URL then the traditional system/thread activity 
    # algorithm is used. 
    #
    # On Solaris and Linux systems, if file:/dev/urandom is specified and it
    # exists, a special SecureRandom implementation is activated by default.
    # This "NativePRNG" reads random bytes directly from /dev/urandom.
    #
    # On Windows systems, the URLs file:/dev/random and file:/dev/urandom
    # enables use of the Microsoft CryptoAPI seed functionality.
    #
    securerandom.source=file:/dev/urandom
    #
    # The entropy gathering device is described as a URL and can also
    # be specified with the system property "java.security.egd". For example,
    #   -Djava.security.egd=file:/dev/urandom
    # Specifying this system property will override the securerandom.source 
    # setting.
    
    #
    # Class to instantiate as the javax.security.auth.login.Configuration
    # provider.
    #
    login.configuration.provider=com.sun.security.auth.login.ConfigFile
    
    #
    # Default login configuration file
    #
    #login.config.url.1=file:${user.home}/.java.login.config
    
    #
    # Class to instantiate as the system Policy. This is the name of the class
    # that will be used as the Policy object.
    #
    policy.provider=sun.security.provider.PolicyFile
    
    # The default is to have a single system-wide policy file,
    # and a policy file in the user's home directory.
    policy.url.1=file:${java.home}/lib/security/java.policy
    policy.url.2=file:${user.home}/.java.policy
    
    # whether or not we expand properties in the policy file
    # if this is set to false, properties (${...}) will not be expanded in policy
    # files.
    policy.expandProperties=true
    
    # whether or not we allow an extra policy to be passed on the command line
    # with -Djava.security.policy=somefile. Comment out this line to disable
    # this feature.
    policy.allowSystemProperty=true
    
    # whether or not we look into the IdentityScope for trusted Identities
    # when encountering a 1.1 signed JAR file. If the identity is found
    # and is trusted, we grant it AllPermission.
    policy.ignoreIdentityScope=false
    
    #
    # Default keystore type.
    #
    keystore.type=jks
    
    #
    # Class to instantiate as the system scope:
    #
    system.scope=sun.security.provider.IdentityDatabase
    
    #
    # List of comma-separated packages that start with or equal this string
    # will cause a security exception to be thrown when
    # passed to checkPackageAccess unless the
    # corresponding RuntimePermission ("accessClassInPackage."+package) has
    # been granted.
    package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,org.GNOME.Accessibility.
    
    #
    # List of comma-separated packages that start with or equal this string
    # will cause a security exception to be thrown when
    # passed to checkPackageDefinition unless the
    # corresponding RuntimePermission ("defineClassInPackage."+package) has
    # been granted.
    #
    # by default, no packages are restricted for definition, and none of
    # the class loaders supplied with the JDK call checkPackageDefinition.
    #
    #package.definition=
    
    #
    # Determines whether this properties file can be appended to
    # or overridden on the command line via -Djava.security.properties
    #
    security.overridePropertiesFile=true
    
    #
    # Determines the default key and trust manager factory algorithms for 
    # the javax.net.ssl package.
    #
    ssl.KeyManagerFactory.algorithm=SunX509
    ssl.TrustManagerFactory.algorithm=PKIX
    
    #
    # The Java-level namelookup cache policy for successful lookups:
    #
    # any negative value: caching forever
    # any positive value: the number of seconds to cache an address for
    # zero: do not cache
    #
    # default value is forever (FOREVER). For security reasons, this
    # caching is made forever when a security manager is set. When a security
    # manager is not set, the default behavior in this implementation
    # is to cache for 30 seconds.
    #
    # NOTE: setting this to anything other than the default value can have
    #       serious security implications. Do not set it unless 
    #       you are sure you are not exposed to DNS spoofing attack.
    #
    #networkaddress.cache.ttl=-1 
    
    # The Java-level namelookup cache policy for failed lookups:
    #
    # any negative value: cache forever
    # any positive value: the number of seconds to cache negative lookup results
    # zero: do not cache
    #
    # In some Microsoft Windows networking environments that employ
    # the WINS name service in addition to DNS, name service lookups
    # that fail may take a noticeably long time to return (approx. 5 seconds).
    # For this reason the default caching policy is to maintain these
    # results for 10 seconds. 
    #
    #
    networkaddress.cache.negative.ttl=10
    
    #
    # Properties to configure OCSP for certificate revocation checking
    #
    
    # Enable OCSP 
    #
    # By default, OCSP is not used for certificate revocation checking.
    # This property enables the use of OCSP when set to the value "true".
    #
    # NOTE: SocketPermission is required to connect to an OCSP responder.
    #
    # Example,
    #   ocsp.enable=true
     
    #
    # Location of the OCSP responder
    #
    # By default, the location of the OCSP responder is determined implicitly
    # from the certificate being validated. This property explicitly specifies
    # the location of the OCSP responder. The property is used when the
    # Authority Information Access extension (defined in RFC 3280) is absent
    # from the certificate or when it requires overriding.
    #
    # Example,
    #   ocsp.responderURL=http://ocsp.example.net:80
     
    #
    # Subject name of the OCSP responder's certificate
    #
    # By default, the certificate of the OCSP responder is that of the issuer
    # of the certificate being validated. This property identifies the certificate
    # of the OCSP responder when the default does not apply. Its value is a string 
    # distinguished name (defined in RFC 2253) which identifies a certificate in 
    # the set of certificates supplied during cert path validation. In cases where 
    # the subject name alone is not sufficient to uniquely identify the certificate
    # then both the "ocsp.responderCertIssuerName" and
    # "ocsp.responderCertSerialNumber" properties must be used instead. When this
    # property is set then those two properties are ignored.
    #
    # Example,
    #   ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp"
    
    #
    # Issuer name of the OCSP responder's certificate
    #
    # By default, the certificate of the OCSP responder is that of the issuer
    # of the certificate being validated. This property identifies the certificate
    # of the OCSP responder when the default does not apply. Its value is a string
    # distinguished name (defined in RFC 2253) which identifies a certificate in
    # the set of certificates supplied during cert path validation. When this 
    # property is set then the "ocsp.responderCertSerialNumber" property must also 
    # be set. When the "ocsp.responderCertSubjectName" property is set then this 
    # property is ignored.
    #
    # Example,
    #   ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp"
     
    #
    # Serial number of the OCSP responder's certificate
    #
    # By default, the certificate of the OCSP responder is that of the issuer
    # of the certificate being validated. This property identifies the certificate
    # of the OCSP responder when the default does not apply. Its value is a string
    # of hexadecimal digits (colon or space separators may be present) which
    # identifies a certificate in the set of certificates supplied during cert path
    # validation. When this property is set then the "ocsp.responderCertIssuerName"
    # property must also be set. When the "ocsp.responderCertSubjectName" property
    # is set then this property is ignored.
    #
    # Example,
    #   ocsp.responderCertSerialNumber=2A:FF:00

What is the problem here? Any idea? i'M USING Ubuntu 12.04, and OpenJDK 1.7.0.
Eclipse crashes : "An error has occurred. See the log file"
===

When I start eclipse it crashes with the following message.

    An error has occurred.  See the log file
    /home/binoy/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1339005865980.log

Here's `1339005865980.log` :


    $ cat /home/binoy/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1339005865980.log
    !SESSION Wed Jun 06 23:34:25 IST 2012 ------------------------------------------
    !ENTRY org.eclipse.equinox.launcher 4 0 2012-06-06 23:34:25.991
    !MESSAGE Exception launching the Eclipse Platform:
    !STACK
    java.lang.InternalError: internal error: SHA-1 not available.
    	at sun.security.provider.SecureRandom.init(SecureRandom.java:105)
    	at sun.security.provider.SecureRandom.<init>(SecureRandom.java:84)
    	at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:186)
    	at java.security.SecureRandom.<init>(SecureRandom.java:150)
    	at java.io.File$LazyInitialization.<clinit>(File.java:1681)
    	at java.io.File.generateFile(File.java:1694)
    	at java.io.File.createTempFile(File.java:1803)
    	at org.eclipse.equinox.launcher.Main.canWrite(Main.java:1290)
    	at org.eclipse.equinox.launcher.Main.checkConfigurationLocation(Main.java:691)
    	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:568)
    	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

here's `/etc/java-6-openjdk/security/java.security`:

    $ cat /etc/java-6-openjdk/security/java.security
    #
    # This is the "master security properties file".
    #
    # In this file, various security properties are set for use by
    # java.security classes. This is where users can statically register
    # Cryptography Package Providers ("providers" for short). The term
    # "provider" refers to a package or set of packages that supply a
    # concrete implementation of a subset of the cryptography aspects of
    # the Java Security API. A provider may, for example, implement one or
    # more digital signature algorithms or message digest algorithms.
    #
    # Each provider must implement a subclass of the Provider class.
    # To register a provider in this master security properties file,
    # specify the Provider subclass name and priority in the format
    #
    #    security.provider.<n>=<className>
    #
    # This declares a provider, and specifies its preference
    # order n. The preference order is the order in which providers are
    # searched for requested algorithms (when no specific provider is
    # requested). The order is 1-based; 1 is the most preferred, followed
    # by 2, and so on.
    #
    # <className> must specify the subclass of the Provider class whose
    # constructor sets the values of various properties that are required
    # for the Java Security API to look up the algorithms or other
    # facilities implemented by the provider.
    #
    # There must be at least one provider specification in java.security.
    # There is a default provider that comes standard with the JDK. It
    # is called the "SUN" provider, and its Provider subclass
    # named Sun appears in the sun.security.provider package. Thus, the
    # "SUN" provider is registered via the following:
    #
    #    security.provider.1=sun.security.provider.Sun
    #
    # (The number 1 is used for the default provider.)
    #
    # Note: Providers can be dynamically registered instead by calls to
    # either the addProvider or insertProviderAt method in the Security
    # class.
    
    #
    # List of providers and their preference orders (see above):
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.crypto.provider.SunJCE
    security.provider.5=sun.security.jgss.SunProvider
    security.provider.6=com.sun.security.sasl.Provider
    security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.8=sun.security.smartcardio.SunPCSC
    security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
    
    #
    # Select the source of seed data for SecureRandom. By default an
    # attempt is made to use the entropy gathering device specified by 
    # the securerandom.source property. If an exception occurs when
    # accessing the URL then the traditional system/thread activity 
    # algorithm is used. 
    #
    # On Solaris and Linux systems, if file:/dev/urandom is specified and it
    # exists, a special SecureRandom implementation is activated by default.
    # This "NativePRNG" reads random bytes directly from /dev/urandom.
    #
    # On Windows systems, the URLs file:/dev/random and file:/dev/urandom
    # enables use of the Microsoft CryptoAPI seed functionality.
    #
    securerandom.source=file:/dev/urandom
    #
    # The entropy gathering device is described as a URL and can also
    # be specified with the system property "java.security.egd". For example,
    #   -Djava.security.egd=file:/dev/urandom
    # Specifying this system property will override the securerandom.source 
    # setting.
    
    #
    # Class to instantiate as the javax.security.auth.login.Configuration
    # provider.
    #
    login.configuration.provider=com.sun.security.auth.login.ConfigFile
    
    #
    # Default login configuration file
    #
    #login.config.url.1=file:${user.home}/.java.login.config
    
    #
    # Class to instantiate as the system Policy. This is the name of the class
    # that will be used as the Policy object.
    #
    policy.provider=sun.security.provider.PolicyFile
    
    # The default is to have a single system-wide policy file,
    # and a policy file in the user's home directory.
    policy.url.1=file:${java.home}/lib/security/java.policy
    policy.url.2=file:${user.home}/.java.policy
    
    # whether or not we expand properties in the policy file
    # if this is set to false, properties (${...}) will not be expanded in policy
    # files.
    policy.expandProperties=true
    
    # whether or not we allow an extra policy to be passed on the command line
    # with -Djava.security.policy=somefile. Comment out this line to disable
    # this feature.
    policy.allowSystemProperty=true
    
    # whether or not we look into the IdentityScope for trusted Identities
    # when encountering a 1.1 signed JAR file. If the identity is found
    # and is trusted, we grant it AllPermission.
    policy.ignoreIdentityScope=false
    
    #
    # Default keystore type.
    #
    keystore.type=jks
    
    #
    # Class to instantiate as the system scope:
    #
    system.scope=sun.security.provider.IdentityDatabase
    
    #
    # List of comma-separated packages that start with or equal this string
    # will cause a security exception to be thrown when
    # passed to checkPackageAccess unless the
    # corresponding RuntimePermission ("accessClassInPackage."+package) has
    # been granted.
    package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,org.GNOME.Accessibility.
    
    #
    # List of comma-separated packages that start with or equal this string
    # will cause a security exception to be thrown when
    # passed to checkPackageDefinition unless the
    # corresponding RuntimePermission ("defineClassInPackage."+package) has
    # been granted.
    #
    # by default, no packages are restricted for definition, and none of
    # the class loaders supplied with the JDK call checkPackageDefinition.
    #
    #package.definition=
    
    #
    # Determines whether this properties file can be appended to
    # or overridden on the command line via -Djava.security.properties
    #
    security.overridePropertiesFile=true
    
    #
    # Determines the default key and trust manager factory algorithms for 
    # the javax.net.ssl package.
    #
    ssl.KeyManagerFactory.algorithm=SunX509
    ssl.TrustManagerFactory.algorithm=PKIX
    
    #
    # The Java-level namelookup cache policy for successful lookups:
    #
    # any negative value: caching forever
    # any positive value: the number of seconds to cache an address for
    # zero: do not cache
    #
    # default value is forever (FOREVER). For security reasons, this
    # caching is made forever when a security manager is set. When a security
    # manager is not set, the default behavior in this implementation
    # is to cache for 30 seconds.
    #
    # NOTE: setting this to anything other than the default value can have
    #       serious security implications. Do not set it unless 
    #       you are sure you are not exposed to DNS spoofing attack.
    #
    #networkaddress.cache.ttl=-1 
    
    # The Java-level namelookup cache policy for failed lookups:
    #
    # any negative value: cache forever
    # any positive value: the number of seconds to cache negative lookup results
    # zero: do not cache
    #
    # In some Microsoft Windows networking environments that employ
    # the WINS name service in addition to DNS, name service lookups
    # that fail may take a noticeably long time to return (approx. 5 seconds).
    # For this reason the default caching policy is to maintain these
    # results for 10 seconds. 
    #
    #
    networkaddress.cache.negative.ttl=10
    
    #
    # Properties to configure OCSP for certificate revocation checking
    #
    
    # Enable OCSP 
    #
    # By default, OCSP is not used for certificate revocation checking.
    # This property enables the use of OCSP when set to the value "true".
    #
    # NOTE: SocketPermission is required to connect to an OCSP responder.
    #
    # Example,
    #   ocsp.enable=true
     
    #
    # Location of the OCSP responder
    #
    # By default, the location of the OCSP responder is determined implicitly
    # from the certificate being validated. This property explicitly specifies
    # the location of the OCSP responder. The property is used when the
    # Authority Information Access extension (defined in RFC 3280) is absent
    # from the certificate or when it requires overriding.
    #
    # Example,
    #   ocsp.responderURL=http://ocsp.example.net:80
     
    #
    # Subject name of the OCSP responder's certificate
    #
    # By default, the certificate of the OCSP responder is that of the issuer
    # of the certificate being validated. This property identifies the certificate
    # of the OCSP responder when the default does not apply. Its value is a string 
    # distinguished name (defined in RFC 2253) which identifies a certificate in 
    # the set of certificates supplied during cert path validation. In cases where 
    # the subject name alone is not sufficient to uniquely identify the certificate
    # then both the "ocsp.responderCertIssuerName" and
    # "ocsp.responderCertSerialNumber" properties must be used instead. When this
    # property is set then those two properties are ignored.
    #
    # Example,
    #   ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp"
    
    #
    # Issuer name of the OCSP responder's certificate
    #
    # By default, the certificate of the OCSP responder is that of the issuer
    # of the certificate being validated. This property identifies the certificate
    # of the OCSP responder when the default does not apply. Its value is a string
    # distinguished name (defined in RFC 2253) which identifies a certificate in
    # the set of certificates supplied during cert path validation. When this 
    # property is set then the "ocsp.responderCertSerialNumber" property must also 
    # be set. When the "ocsp.responderCertSubjectName" property is set then this 
    # property is ignored.
    #
    # Example,
    #   ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp"
     
    #
    # Serial number of the OCSP responder's certificate
    #
    # By default, the certificate of the OCSP responder is that of the issuer
    # of the certificate being validated. This property identifies the certificate
    # of the OCSP responder when the default does not apply. Its value is a string
    # of hexadecimal digits (colon or space separators may be present) which
    # identifies a certificate in the set of certificates supplied during cert path
    # validation. When this property is set then the "ocsp.responderCertIssuerName"
    # property must also be set. When the "ocsp.responderCertSubjectName" property
    # is set then this property is ignored.
    #
    # Example,
    #   ocsp.responderCertSerialNumber=2A:FF:00

What is the problem here? Any idea? i'M USING Ubuntu 12.04, and OpenJDK 1.7.0.