|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
org.acm.seguin.pmd.AbstractRule
org.acm.seguin.pmd.rules.DoubleCheckedLockingRule
public class 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 org.acm.seguin.pmd.Rule |
|---|
LOWEST_PRIORITY, PRIORITIES |
| Constructor Summary | |
|---|---|
DoubleCheckedLockingRule()
|
|
| Method Summary | |
|---|---|
java.lang.String |
getNameFromPrimaryPrefix(net.sourceforge.jrefactory.ast.ASTPrimaryPrefix pp)
|
boolean |
matchName(net.sourceforge.jrefactory.ast.ASTPrimaryExpression ape,
java.lang.String name)
|
java.lang.Object |
visit(net.sourceforge.jrefactory.ast.ASTClassDeclaration node,
java.lang.Object data)
To visit a node |
java.lang.Object |
visit(net.sourceforge.jrefactory.ast.ASTInterfaceDeclaration node,
java.lang.Object data)
To visit a node |
java.lang.Object |
visit(net.sourceforge.jrefactory.ast.ASTMethodDeclaration node,
java.lang.Object data)
To visit a node |
java.lang.Object |
visit(net.sourceforge.jrefactory.ast.ASTNestedClassDeclaration node,
java.lang.Object data)
To visit a node |
java.lang.Object |
visit(net.sourceforge.jrefactory.ast.ASTNestedInterfaceDeclaration node,
java.lang.Object data)
To visit a node |
| Methods inherited from class org.acm.seguin.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, visit, visitAll |
| Methods inherited from class net.sourceforge.jrefactory.parser.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 |
| 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(net.sourceforge.jrefactory.ast.ASTMethodDeclaration node,
java.lang.Object data)
net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitorvisit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapternode - The node we are visitingdata - The rename type data
public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTClassDeclaration node,
java.lang.Object data)
net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitorvisit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapternode - The node we are visitingdata - The rename type data
public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTNestedClassDeclaration node,
java.lang.Object data)
net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitorvisit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapternode - The node we are visitingdata - The rename type data
public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTInterfaceDeclaration node,
java.lang.Object data)
net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitorvisit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapternode - The node we are visitingdata - The rename type data
public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTNestedInterfaceDeclaration node,
java.lang.Object data)
net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitorvisit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapternode - The node we are visitingdata - The rename type data
public boolean matchName(net.sourceforge.jrefactory.ast.ASTPrimaryExpression ape,
java.lang.String name)
public java.lang.String getNameFromPrimaryPrefix(net.sourceforge.jrefactory.ast.ASTPrimaryPrefix pp)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||