Skip to content

Commit

Permalink
fix #217
Browse files Browse the repository at this point in the history
  • Loading branch information
骏烈 committed Dec 27, 2017
1 parent 57888c9 commit 0d2dc57
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.annotation.Generated;

import com.alibaba.p3c.pmd.lang.java.util.NumberConstants;
import com.alibaba.p3c.pmd.lang.java.util.StringAndCharConstants;

Expand Down Expand Up @@ -77,6 +79,7 @@
* @author unknown
* @date 2016/11/21
*/
@Generated("from pmd")
public class FixClassTypeResolver extends ClassTypeResolver {

private static final Logger LOG = Logger.getLogger(FixClassTypeResolver.class.getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ public class TransactionMustHaveRollbackRule extends AbstractAliRule {
+ TRANSACTIONAL_ANNOTATION_NAME;
private static final String ROLLBACK_PREFIX = "rollback";

private static final String PROPAGATION_NOT_SUPPORTED = "Propagation.NOT_SUPPORTED";

private static final String XPATH_FOR_ROLLBACK = "//StatementExpression/PrimaryExpression"
+ "/PrimaryPrefix/Name[ends-with(@Image,'rollback')]";

Expand All @@ -53,7 +55,7 @@ public Object visit(ASTAnnotation node, Object data) {
return super.visit(node, data);
}
List<ASTMemberValuePair> memberValuePairList = node.findDescendantsOfType(ASTMemberValuePair.class);
if (rollbackAttrSet(memberValuePairList)) {
if (shouldSkip(memberValuePairList)) {
return super.visit(node, data);
}

Expand All @@ -80,9 +82,16 @@ public Object visit(ASTAnnotation node, Object data) {
return super.visit(node, data);
}

private boolean rollbackAttrSet(List<ASTMemberValuePair> memberValuePairList) {
private boolean shouldSkip(List<ASTMemberValuePair> memberValuePairList) {
for (ASTMemberValuePair pair : memberValuePairList) {
if (pair.getImage() != null && pair.getImage().startsWith(ROLLBACK_PREFIX)) {
if (pair.getImage() == null) {
continue;
}
if (pair.getImage().startsWith(ROLLBACK_PREFIX)) {
return true;
}
ASTName name = pair.getFirstDescendantOfType(ASTName.class);
if (name != null && PROPAGATION_NOT_SUPPORTED.equals(name.getImage())) {
return true;
}
}
Expand Down

0 comments on commit 0d2dc57

Please sign in to comment.