|
|||||||||||
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.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 class net.sourceforge.pmd.AbstractRule |
description, example, include, message, name, priority, properties, ruleSetName, usesDFA, usesSymbolTable |
Fields inherited from interface net.sourceforge.pmd.Rule |
LOWEST_PRIORITY, PRIORITIES |
Constructor Summary | |
DoubleCheckedLocking()
|
Method Summary | |
java.lang.String |
getNameFromPrimaryPrefix(ASTPrimaryPrefix pp)
|
boolean |
matchName(ASTPrimaryExpression ape,
java.lang.String name)
|
java.lang.Object |
visit(ASTClassOrInterfaceDeclaration node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTMethodDeclaration node,
java.lang.Object data)
|
Methods inherited from class net.sourceforge.pmd.AbstractRule |
addProperties, addProperty, addViolation, addViolation, apply, createRuleViolation, createRuleViolation, createRuleViolation, createRuleViolation, createRuleViolation, equals, getBooleanProperty, getDeclaringType, getDescription, getDoubleProperty, getExample, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getRuleSetName, getStringProperty, hashCode, hasProperty, include, setDescription, setExample, setInclude, setMessage, setName, setPackageName, setPriority, setRuleSetName, setUsesDFA, setUsesSymbolTable, usesDFA, usesSymbolTable, visit, visit, 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, 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 DoubleCheckedLocking()
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(ASTClassOrInterfaceDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractRule
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 |