All Downloads are FREE. Search and download functionalities are using the official Maven repository.

resources.report.rules.pmd.DontCallThreadRun.html Maven / Gradle / Ivy



DontCallThreadRun

DontCallThreadRun

Explicitly calling Thread.run() method will execute in the caller’s thread of control. Instead, call Thread.start() for the intended behavior.


//StatementExpression/PrimaryExpression
[
    PrimaryPrefix
    [
        ./Name[ends-with(@Image, '.run') or @Image = 'run']
        and substring-before(Name/@Image, '.') =//VariableDeclarator/VariableDeclaratorId/@Image
        [../../../Type/ReferenceType[ClassOrInterfaceType/@Image = 'Thread']]
        or (
        ./AllocationExpression/ClassOrInterfaceType[@Image = 'Thread']
        and ../PrimarySuffix[@Image = 'run'])
    ]
]

Example(s):


Thread t = new Thread();
t.run();            // use t.start() instead
new Thread().run(); // same violation





© 2015 - 2024 Weber Informatics LLC | Privacy Policy