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;
}
}