Class UnlockMethodChecker
- java.lang.Object
-
- com.google.errorprone.bugpatterns.BugChecker
-
- com.google.errorprone.bugpatterns.threadsafety.AbstractLockMethodChecker
-
- com.google.errorprone.bugpatterns.threadsafety.UnlockMethodChecker
-
- All Implemented Interfaces:
BugChecker.MethodTreeMatcher
,Suppressible
,Serializable
public class UnlockMethodChecker extends AbstractLockMethodChecker
- Author:
- [email protected] (Liam Miller-Cushon)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.errorprone.bugpatterns.BugChecker
BugChecker.AnnotatedTypeTreeMatcher, BugChecker.AnnotationTreeMatcher, BugChecker.ArrayAccessTreeMatcher, BugChecker.ArrayTypeTreeMatcher, BugChecker.AssertTreeMatcher, BugChecker.AssignmentTreeMatcher, BugChecker.BinaryTreeMatcher, BugChecker.BlockTreeMatcher, BugChecker.BreakTreeMatcher, BugChecker.CaseTreeMatcher, BugChecker.CatchTreeMatcher, BugChecker.ClassTreeMatcher, BugChecker.CompilationUnitTreeMatcher, BugChecker.CompoundAssignmentTreeMatcher, BugChecker.ConditionalExpressionTreeMatcher, BugChecker.ContinueTreeMatcher, BugChecker.DoWhileLoopTreeMatcher, BugChecker.EmptyStatementTreeMatcher, BugChecker.EnhancedForLoopTreeMatcher, BugChecker.ExpressionStatementTreeMatcher, BugChecker.ForLoopTreeMatcher, BugChecker.IdentifierTreeMatcher, BugChecker.IfTreeMatcher, BugChecker.ImportTreeMatcher, BugChecker.InstanceOfTreeMatcher, BugChecker.IntersectionTypeTreeMatcher, BugChecker.LabeledStatementTreeMatcher, BugChecker.LambdaExpressionTreeMatcher, BugChecker.LiteralTreeMatcher, BugChecker.MemberReferenceTreeMatcher, BugChecker.MemberSelectTreeMatcher, BugChecker.MethodInvocationTreeMatcher, BugChecker.MethodTreeMatcher, BugChecker.ModifiersTreeMatcher, BugChecker.NewArrayTreeMatcher, BugChecker.NewClassTreeMatcher, BugChecker.ParameterizedTypeTreeMatcher, BugChecker.ParenthesizedTreeMatcher, BugChecker.PrimitiveTypeTreeMatcher, BugChecker.ReturnTreeMatcher, BugChecker.SuppressibleTreePathScanner<A extends Object,B extends Object>, BugChecker.SwitchTreeMatcher, BugChecker.SynchronizedTreeMatcher, BugChecker.ThrowTreeMatcher, BugChecker.TryTreeMatcher, BugChecker.TypeCastTreeMatcher, BugChecker.TypeParameterTreeMatcher, BugChecker.UnaryTreeMatcher, BugChecker.UnionTypeTreeMatcher, BugChecker.VariableTreeMatcher, BugChecker.WhileLoopTreeMatcher, BugChecker.WildcardTreeMatcher
-
-
Constructor Summary
Constructors Constructor Description UnlockMethodChecker()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
buildMessage(String unhandled)
Builds the error message, given the list of locks that were not handled.protected Set<GuardedByExpression>
getActual(com.sun.source.tree.MethodTree tree, VisitorState state)
Searches the method body for locks that are acquired/released.protected com.google.common.collect.ImmutableList<String>
getLockExpressions(com.sun.source.tree.MethodTree tree)
Returns the lock expressions in the@LockMethod
/@UnlockMethod
annotation, if any.protected Set<GuardedByExpression>
getUnwanted(com.sun.source.tree.MethodTree tree, VisitorState state)
Searches the method body for the incorrect lock operation (e.g.-
Methods inherited from class com.google.errorprone.bugpatterns.threadsafety.AbstractLockMethodChecker
matchMethod
-
Methods inherited from class com.google.errorprone.bugpatterns.BugChecker
allNames, buildDescription, buildDescription, buildDescription, canonicalName, customSuppressionAnnotations, defaultSeverity, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, disableable, equals, hashCode, isSuppressed, isSuppressed, isSuppressed, isSuppressed, linkUrl, message, supportsSuppressWarnings, suppressedByAnyOf, suppressedRegions
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.google.errorprone.matchers.Suppressible
allNames, canonicalName, customSuppressionAnnotations, supportsSuppressWarnings, suppressedByAnyOf
-
-
-
-
Method Detail
-
getLockExpressions
protected com.google.common.collect.ImmutableList<String> getLockExpressions(com.sun.source.tree.MethodTree tree)
Description copied from class:AbstractLockMethodChecker
Returns the lock expressions in the@LockMethod
/@UnlockMethod
annotation, if any.- Specified by:
getLockExpressions
in classAbstractLockMethodChecker
-
getActual
protected Set<GuardedByExpression> getActual(com.sun.source.tree.MethodTree tree, VisitorState state)
Description copied from class:AbstractLockMethodChecker
Searches the method body for locks that are acquired/released.- Specified by:
getActual
in classAbstractLockMethodChecker
-
getUnwanted
protected Set<GuardedByExpression> getUnwanted(com.sun.source.tree.MethodTree tree, VisitorState state)
Description copied from class:AbstractLockMethodChecker
Searches the method body for the incorrect lock operation (e.g. releasing a lock in@LockMethod
, or acquiring a lock in@UnlockMethod
).- Specified by:
getUnwanted
in classAbstractLockMethodChecker
-
buildMessage
protected String buildMessage(String unhandled)
Description copied from class:AbstractLockMethodChecker
Builds the error message, given the list of locks that were not handled.- Specified by:
buildMessage
in classAbstractLockMethodChecker
-
-