|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object extended by net.sourceforge.pmd.CommonAbstractRule extended by net.sourceforge.pmd.AbstractJavaRule extended by net.sourceforge.pmd.rules.DoubleCheckedLocking
public class DoubleCheckedLocking
void method() { if(x == null) { synchronized(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 | |
---|---|
DoubleCheckedLocking()
|
Method Summary | |
---|---|
java.lang.Object |
visit(ASTClassOrInterfaceDeclaration node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTCompilationUnit compilationUnit,
java.lang.Object data)
|
java.lang.Object |
visit(ASTFieldDeclaration fieldDeclaration,
java.lang.Object data)
|
java.lang.Object |
visit(ASTMethodDeclaration node,
java.lang.Object data)
|
Methods inherited from class net.sourceforge.pmd.AbstractJavaRule |
---|
addViolation, addViolation, addViolation, addViolationWithMessage, apply, getDeclaringType, importsPackage, isQualifiedName, 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, 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, visitAll |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DoubleCheckedLocking()
Method Detail |
---|
public java.lang.Object visit(ASTCompilationUnit compilationUnit, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public java.lang.Object visit(ASTClassOrInterfaceDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public java.lang.Object visit(ASTFieldDeclaration fieldDeclaration, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public java.lang.Object visit(ASTMethodDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |