diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/AliLocalInspectionToolProvider.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/AliLocalInspectionToolProvider.kt index 51549ec50..77642fabf 100644 --- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/AliLocalInspectionToolProvider.kt +++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/AliLocalInspectionToolProvider.kt @@ -74,7 +74,6 @@ class AliLocalInspectionToolProvider : InspectionToolProvider { AliAccessStaticViaInstanceInspection::class.java, AliDeprecationInspection::class.java, MapOrSetKeyShouldOverrideHashCodeEqualsInspection::class.java, - AliAccessToNonThreadSafeStaticFieldFromInstanceInspection::class.java, AliArrayNamingShouldHaveBracketInspection::class.java, AliControlFlowStatementWithoutBracesInspection::class.java, AliEqualsAvoidNullInspection::class.java, diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/standalone/AliDeprecationInspection.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/standalone/AliDeprecationInspection.kt index 3016ab0fe..1f19647ef 100644 --- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/standalone/AliDeprecationInspection.kt +++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/standalone/AliDeprecationInspection.kt @@ -37,7 +37,7 @@ import javax.swing.JComponent * @date 2016/12/08 */ class AliDeprecationInspection : DeprecationInspection, AliBaseInspection { - val messageKey = "com.alibaba.p3c.idea.inspection.standalone.AliDeprecationInspection" + private val messageKey = "com.alibaba.p3c.idea.inspection.standalone.AliDeprecationInspection" constructor() /** @@ -46,7 +46,7 @@ class AliDeprecationInspection : DeprecationInspection, AliBaseInspection { constructor(any: Any?) : this() init { - IGNORE_INSIDE_DEPRECATED = false + IGNORE_INSIDE_DEPRECATED = true IGNORE_ABSTRACT_DEPRECATED_OVERRIDES = false IGNORE_IMPORT_STATEMENTS = false IGNORE_METHODS_OF_DEPRECATED = false diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/pmd/SourceCodeProcessor.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/pmd/SourceCodeProcessor.kt index fb8a8ccfb..260be9f1c 100644 --- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/pmd/SourceCodeProcessor.kt +++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/pmd/SourceCodeProcessor.kt @@ -80,13 +80,11 @@ class SourceCodeProcessor(private val configuration: PMDConfiguration) { } private fun usesDFA(languageVersion: LanguageVersion, rootNode: Node, ruleSets: RuleSets) { - if (ruleSets.usesDFA(languageVersion.language)) { - val start = System.nanoTime() - val dataFlowFacade = languageVersion.languageVersionHandler.dataFlowFacade - dataFlowFacade.start(rootNode) - val end = System.nanoTime() - Benchmarker.mark(Benchmark.DFA, end - start, 0) - } + val start = System.nanoTime() + val dataFlowFacade = languageVersion.languageVersionHandler.dataFlowFacade + dataFlowFacade.start(rootNode) + val end = System.nanoTime() + Benchmarker.mark(Benchmark.DFA, end - start, 0) } private fun usesTypeResolution(languageVersion: LanguageVersion, rootNode: Node, ruleSets: RuleSets) { diff --git a/idea-plugin/p3c-common/src/main/resources/icons/alibaba.png b/idea-plugin/p3c-common/src/main/resources/icons/alibaba.png index 546845c50..947038fc0 100644 Binary files a/idea-plugin/p3c-common/src/main/resources/icons/alibaba.png and b/idea-plugin/p3c-common/src/main/resources/icons/alibaba.png differ diff --git a/idea-plugin/p3c-common/src/main/resources/rulesets/java/ali-pmd.xml b/idea-plugin/p3c-common/src/main/resources/rulesets/java/ali-pmd.xml index 23f86dbba..43b31b070 100644 --- a/idea-plugin/p3c-common/src/main/resources/rulesets/java/ali-pmd.xml +++ b/idea-plugin/p3c-common/src/main/resources/rulesets/java/ali-pmd.xml @@ -4,9 +4,7 @@ xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"> - - - + diff --git a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/fix/FixClassTypeResolver.java b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/fix/FixClassTypeResolver.java index d7692e27a..0a58fe699 100644 --- a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/fix/FixClassTypeResolver.java +++ b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/fix/FixClassTypeResolver.java @@ -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; @@ -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()); diff --git a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/exception/TransactionMustHaveRollbackRule.java b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/exception/TransactionMustHaveRollbackRule.java index 089778a64..1de7c61e9 100644 --- a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/exception/TransactionMustHaveRollbackRule.java +++ b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/exception/TransactionMustHaveRollbackRule.java @@ -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')]"; @@ -53,7 +55,7 @@ public Object visit(ASTAnnotation node, Object data) { return super.visit(node, data); } List memberValuePairList = node.findDescendantsOfType(ASTMemberValuePair.class); - if (rollbackAttrSet(memberValuePairList)) { + if (shouldSkip(memberValuePairList)) { return super.visit(node, data); } @@ -80,9 +82,16 @@ public Object visit(ASTAnnotation node, Object data) { return super.visit(node, data); } - private boolean rollbackAttrSet(List memberValuePairList) { + private boolean shouldSkip(List 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; } }