pmd-eclipse-plugin icon indicating copy to clipboard operation
pmd-eclipse-plugin copied to clipboard

Gracefully handle missing rules due to wrong PMD version

Open adangel opened this issue 6 years ago • 1 comments

When using m2e + m2e-code-quality + pmd-eclipse-plugin, configuration of the project might fail, if the PMD versions don't match. E.g. the PMD version in the project might be newer than the one used by eclipse.

Example stack trace:

Sep. 27, 2018 2:01:59 NACHM. net.sourceforge.pmd.rules.RuleFactory buildRule
SCHWERWIEGEND: Error instantiating a rule
java.lang.ClassNotFoundException: net.sourceforge.pmd.lang.java.rule.basic.OverrideBothEqualsAndHashcodeRule cannot be found by net.sourceforge.pmd.eclipse.plugin_4.0.17.v20180801-1551
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
	at net.sourceforge.pmd.rules.RuleBuilder.build(RuleBuilder.java:179)
	at net.sourceforge.pmd.rules.RuleFactory.buildRule(RuleFactory.java:189)
	at net.sourceforge.pmd.RuleSetFactory.parseSingleRuleNode(RuleSetFactory.java:562)
	at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:461)
	at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:367)
	at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:214)
	at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:209)
	at net.sourceforge.pmd.RuleSetFactory.createRuleSets(RuleSetFactory.java:170)
	at net.sourceforge.pmd.RuleSetFactory.createRuleSets(RuleSetFactory.java:154)
	at net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesManagerImpl.loadRuleSetFromProject(ProjectPropertiesManagerImpl.java:175)
	at net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesManagerImpl.fillProjectProperties(ProjectPropertiesManagerImpl.java:246)
	at net.sourceforge.pmd.eclipse.runtime.properties.impl.ProjectPropertiesManagerImpl.loadProjectProperties(ProjectPropertiesManagerImpl.java:116)
	at net.sourceforge.pmd.eclipse.plugin.PMDPlugin.loadProjectProperties(PMDPlugin.java:510)
	at net.sourceforge.pmd.eclipse.runtime.cmd.ReviewCodeCmd.getProjectProperties(ReviewCodeCmd.java:442)
	at net.sourceforge.pmd.eclipse.runtime.cmd.ReviewCodeCmd.processResourceDelta(ReviewCodeCmd.java:616)
	at net.sourceforge.pmd.eclipse.runtime.cmd.ReviewCodeCmd.execute(ReviewCodeCmd.java:219)
	at net.sourceforge.pmd.eclipse.runtime.cmd.JobCommandProcessor$1.run(JobCommandProcessor.java:93)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

Other example: grafik

An internal error occurred during: "Updating Maven Project".
Unable to find referenced rule IdenticalCatchBranches; perhaps the rule name is mispelled?

adangel avatar Sep 27 '18 12:09 adangel

Similar case: https://github.com/m2e-code-quality/m2e-code-quality/issues/213

adangel avatar Apr 24 '19 18:04 adangel