|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.sourceforge.pmd.ast.JavaParserVisitorAdapter | +--net.sourceforge.pmd.AbstractRule | +--net.sourceforge.pmd.rules.DoubleCheckedLockingRule
void method() { if(x == null) { synchronize(this){ if(x == null) { x = new | method(); } } } 1. The error is when one uses the value assigned within a synchronized section, outside of a synchronized section. if(x == null) is outside of synchronized section x = new | method(); Very very specific check for double checked locking.
Field Summary |
Fields inherited from interface net.sourceforge.pmd.Rule |
LOWEST_PRIORITY, PRIORITIES |
Constructor Summary | |
DoubleCheckedLockingRule()
|
Method Summary | |
java.lang.String |
getNameFromPrimaryPrefix(ASTPrimaryPrefix pp)
|
boolean |
matchName(ASTPrimaryExpression ape,
java.lang.String name)
|
java.lang.Object |
visit(ASTClassDeclaration node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTInterfaceDeclaration node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTMethodDeclaration node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTNestedClassDeclaration node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTNestedInterfaceDeclaration node,
java.lang.Object data)
|
Methods inherited from class net.sourceforge.pmd.AbstractRule |
addProperty, apply, createRuleViolation, createRuleViolation, equals, getBooleanProperty, getDescription, getDoubleProperty, getExample, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getStringProperty, hashCode, hasProperty, include, setDescription, setExample, setInclude, setMessage, setName, setPriority, visitAll |
Methods inherited from class net.sourceforge.pmd.ast.JavaParserVisitorAdapter |
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public DoubleCheckedLockingRule()
Method Detail |
public java.lang.Object visit(ASTMethodDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
public java.lang.Object visit(ASTClassDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
public java.lang.Object visit(ASTNestedClassDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
public java.lang.Object visit(ASTInterfaceDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
public java.lang.Object visit(ASTNestedInterfaceDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
public boolean matchName(ASTPrimaryExpression ape, java.lang.String name)
public java.lang.String getNameFromPrimaryPrefix(ASTPrimaryPrefix pp)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |