You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Andreas Sewe (JIRA)" <ji...@codehaus.org> on 2012/02/08 16:20:02 UTC

[jira] (SUREFIRE-830) Provide sensible default if threadCount undefined (for example Runtime.getRuntime().availableProcessors())

Andreas Sewe created SUREFIRE-830:
-------------------------------------

             Summary: Provide sensible default if threadCount undefined (for example Runtime.getRuntime().availableProcessors())
                 Key: SUREFIRE-830
                 URL: https://jira.codehaus.org/browse/SUREFIRE-830
             Project: Maven Surefire
          Issue Type: Improvement
          Components: process forking
    Affects Versions: 2.12
         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)

            Reporter: Andreas Sewe


Currently, when using {{forkMode=perthread}} with an undefined {{threadCount}} one gets an {{IllegalArgumentException}}:

{quote}
Caused by: java.lang.IllegalArgumentException
        at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1275)
        at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1163)
        at org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkPerTestSet(ForkStarter.java:142)
        at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:122)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:199)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAllProviders(AbstractSurefireMojo.java:176)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:135)
        at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:98)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        ... 20 more
{quote}

Not only is this not an easy-to-read error message, but this also is somewhat unnecessary as, in the absence of an explicit value for {{threadCount}}, there is still a very sensible default: {{Runtime.getRuntime().availableProcessors()}}.

Having such a default would avoid hard-coding the number of threads to use in the POM (where it doesn't really belong, as a good value changes from machine to machine) or setting it explicitly using {{-DthreadCount}} on the command line (where it's just inconvenient).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira