Skip to content

Plugin not load ruleset and verify all rules at eclipse startup #180

@Tenebrosful

Description

@Tenebrosful

Hi,

I don't know why but sometimes the PMD don't want to read the ruleset file and try to verify all rules.

The only way that i found to fix that is switching git branch to a branch with different .pmd and .ruleset.xml then come back to branch and it correcly read it again.

My ruleset.xml

<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	name="pmd-eclipse"
	xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
	
	<description>PMD Plugin preferences rule set</description>
	
	<!-- Included files -->
	<include-pattern>./WEB-INF/src/*</include-pattern>
	<include-pattern>./WebContent/*</include-pattern>
	
	<exclude-pattern>*.min.js</exclude-pattern>
	<exclude-pattern>./node_modules/*</exclude-pattern>
	<exclude-pattern>./WebContent/Plugin/*</exclude-pattern>
	
	<!--  HTML rules  -->
	<rule ref="category/html/bestpractices.xml/AvoidInlineStyles"/>
	<rule ref="category/html/bestpractices.xml/UnnecessaryTypeAttribute"/>
	<rule ref="category/html/bestpractices.xml/UseAltAttributeForImages"/>
	<!--  Java Best Practices rules  -->
	<rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod"/>
	<rule ref="category/java/bestpractices.xml/ArrayIsStoredDirectly"/>
	<rule ref="category/java/bestpractices.xml/AvoidMessageDigestField"/>
	<rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace"/>
	<rule ref="category/java/bestpractices.xml/AvoidReassigningCatchVariables"/>
	<rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables"/>
	<rule ref="category/java/bestpractices.xml/AvoidReassigningParameters"/>
	<rule ref="category/java/bestpractices.xml/AvoidStringBufferField"/>
	<rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP"/>
	<rule ref="category/java/bestpractices.xml/CheckResultSet"/>
	<rule ref="category/java/bestpractices.xml/ConstantsInInterface"/>
	<rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitchStmt"/>
	<rule ref="category/java/bestpractices.xml/DoubleBraceInitialization"/>
	<rule ref="category/java/bestpractices.xml/ForLoopCanBeForeach"/>
	<rule ref="category/java/bestpractices.xml/JUnit4SuitesShouldUseSuiteAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseAfterAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseBeforeAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseTestAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit5TestShouldBePackagePrivate"/>
	<rule ref="category/java/bestpractices.xml/JUnitAssertionsShouldIncludeMessage"/>
	<rule ref="category/java/bestpractices.xml/JUnitTestsShouldIncludeAssert"/>
	<rule ref="category/java/bestpractices.xml/JUnitUseExpected"/>
	<rule ref="category/java/bestpractices.xml/LiteralsFirstInComparisons"/>
	<rule ref="category/java/bestpractices.xml/MethodReturnsInternalArray"/>
	<rule ref="category/java/bestpractices.xml/MissingOverride"/>
	<rule ref="category/java/bestpractices.xml/OneDeclarationPerLine">
		<properties>
			<property name="strictMode" value="true"/>
		</properties>
	</rule>
	<rule ref="category/java/bestpractices.xml/PreserveStackTrace"/>
	<rule ref="category/java/bestpractices.xml/PrimitiveWrapperInstantiation"/>
	<rule ref="category/java/bestpractices.xml/ReplaceEnumerationWithIterator"/>
	<rule ref="category/java/bestpractices.xml/ReplaceHashtableWithMap"/>
	<rule ref="category/java/bestpractices.xml/ReplaceVectorWithList" />
	<rule ref="category/java/bestpractices.xml/SimplifiableTestAssertion"/>
	<rule ref="category/java/bestpractices.xml/SwitchStmtsShouldHaveDefault"/>
	<!-- <rule ref="category/java/bestpractices.xml/SystemPrintln"/> -->
	<rule ref="category/java/bestpractices.xml/UnusedAssignment"/>
	<rule ref="category/java/bestpractices.xml/UnusedFormalParameter"/>
	<rule ref="category/java/bestpractices.xml/UnusedLocalVariable"/>
	<rule ref="category/java/bestpractices.xml/UnusedPrivateField"/>
	<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod"/>
	<rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty"/>
	<rule ref="category/java/bestpractices.xml/UseStandardCharsets"/>
	<rule ref="category/java/bestpractices.xml/UseTryWithResources"/>
	<rule ref="category/java/bestpractices.xml/UseVarargs"/>
	<rule ref="category/java/bestpractices.xml/WhileLoopWithLiteralBoolean"/>
	<!--  Java Code Style  -->
	<rule ref="category/java/codestyle.xml/AvoidDollarSigns"/>
	<rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass"/>
	<rule ref="category/java/codestyle.xml/AvoidProtectedMethodInFinalClassNotExtending"/>
	<rule ref="category/java/codestyle.xml/BooleanGetMethodName"/>
	<rule ref="category/java/codestyle.xml/CallSuperInConstructor"/>
	<rule ref="category/java/codestyle.xml/ClassNamingConventions"/>
	<rule ref="category/java/codestyle.xml/ConfusingTernary"/>
	<rule ref="category/java/codestyle.xml/ControlStatementBraces"/>
	<rule ref="category/java/codestyle.xml/EmptyControlStatement"/>
	<rule ref="category/java/codestyle.xml/EmptyMethodInAbstractClassShouldBeAbstract"/>
	<rule ref="category/java/codestyle.xml/ExtendsObject"/>
	<rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass"/>
	<rule ref="category/java/codestyle.xml/FieldNamingConventions">
		<properties>
			<property name="finalPattern" value="[A-Z][A-Z0-9_]*" />
		</properties>
	</rule>
	<rule ref="category/java/codestyle.xml/FinalParameterInAbstractMethod"/>
	<rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop"/>
	<rule ref="category/java/codestyle.xml/FormalParameterNamingConventions"/>
	<rule ref="category/java/codestyle.xml/GenericsNaming"/>
	<rule ref="category/java/codestyle.xml/IdenticalCatchBranches"/>
	<rule ref="category/java/codestyle.xml/LinguisticNaming"/>
	<rule ref="category/java/codestyle.xml/LocalVariableNamingConventions"/>
	<rule ref="category/java/codestyle.xml/MethodNamingConventions"/>
	<rule ref="category/java/codestyle.xml/NoPackage"/>
	<rule ref="category/java/codestyle.xml/PackageCase"/>
	<rule ref="category/java/codestyle.xml/PrematureDeclaration"/>
	<rule ref="category/java/codestyle.xml/ShortClassName">
		<properties>
			<property name="minimum" value="3"/>
		</properties>
	</rule>
	<rule ref="category/java/codestyle.xml/ShortMethodName"/>
	<rule ref="category/java/codestyle.xml/ShortVariable"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryAnnotationValueElement"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryBoxing"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryCast"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryConstructor"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryFullyQualifiedName"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryImport"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryLocalBeforeReturn"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryModifier"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
	<rule ref="category/java/codestyle.xml/UnnecessarySemicolon"/>
	<rule ref="category/java/codestyle.xml/UseDiamondOperator"/>
	<rule ref="category/java/codestyle.xml/UselessParentheses"/>
	<rule ref="category/java/codestyle.xml/UselessQualifiedThis"/>
	<rule ref="category/java/codestyle.xml/UseShortArrayInitializer"/>
	<!--  Java Design  -->
	<rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod" />
	<rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts"/>
	<rule ref="category/java/design.xml/AvoidRethrowingException"/>
	<rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException"/>
	<rule ref="category/java/design.xml/AvoidThrowingNullPointerException"/>
	<rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes"/>
	<rule ref="category/java/design.xml/AvoidUncheckedExceptionsInSignatures"/>
	<!-- <rule ref="category/java/design.xml/CognitiveComplexity"/> -->
	<rule ref="category/java/design.xml/CollapsibleIfStatements"/>
	<!-- <rule ref="category/java/design.xml/CyclomaticComplexity"/> -->
	<rule ref="category/java/design.xml/DoNotExtendJavaLangError"/>
	<rule ref="category/java/design.xml/ExceptionAsFlowControl"/>
	<rule ref="category/java/design.xml/ExcessiveParameterList"/>
	<rule ref="category/java/design.xml/FinalFieldCouldBeStatic"/>
	<rule ref="category/java/design.xml/ImmutableField"/>
	<rule ref="category/java/design.xml/LogicInversion"/>
	<rule ref="category/java/design.xml/MutableStaticState"/>
	<rule ref="category/java/design.xml/SignatureDeclareThrowsException"/>
	<rule ref="category/java/design.xml/SimplifiedTernary"/>
	<rule ref="category/java/design.xml/SimplifyBooleanExpressions"/>
	<rule ref="category/java/design.xml/SimplifyBooleanReturns"/>
	<rule ref="category/java/design.xml/SimplifyConditional"/>
	<rule ref="category/java/design.xml/SingularField"/>
	<rule ref="category/java/design.xml/SwitchDensity"/>
	<rule ref="category/java/design.xml/UselessOverridingMethod"/>
	<rule ref="category/java/design.xml/UseUtilityClass"/>
	<!--  Java Documentation  -->
	<rule ref="category/java/documentation.xml/CommentRequired"/>
	<rule ref="category/java/documentation.xml/UncommentedEmptyConstructor"/>
	<rule ref="category/java/documentation.xml/UncommentedEmptyMethodBody"/>
	<!--  Java Error Prone  -->
	<rule ref="category/java/errorprone.xml/AssignmentInOperand"/>
	<rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic"/>
	<rule ref="category/java/errorprone.xml/AvoidAssertAsIdentifier"/>
	<rule ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop"/>
	<rule ref="category/java/errorprone.xml/AvoidCatchingNPE"/>
	<rule ref="category/java/errorprone.xml/AvoidCatchingThrowable"/>
	<rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor"/>
	<!-- <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
		<properties>
			<property name="exceptionList" value="&lt;div&gt;,&lt;/div&gt;"/>
		</properties>
	</rule> -->
	<rule ref="category/java/errorprone.xml/AvoidEnumAsIdentifier"/>
	<rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingMethodName"/>
	<rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause"/>
	<rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition">
		<properties>
			<property name="ignoreMagicNumbers" value="-1,0,1"/>
		</properties>
	</rule>
	<rule ref="category/java/errorprone.xml/AvoidLosingExceptionInformation"/>
	<rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators"/>
	<rule ref="category/java/errorprone.xml/AvoidUsingOctalValues"/>
	<rule ref="category/java/errorprone.xml/BrokenNullCheck"/>
	<rule ref="category/java/errorprone.xml/CheckSkipResult"/>
	<rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
	<rule ref="category/java/errorprone.xml/CloneMethodMustBePublic"/>
	<rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable"/>
	<rule ref="category/java/errorprone.xml/CloneMethodReturnTypeMustMatchClassName"/>
	<rule ref="category/java/errorprone.xml/CloseResource"/>
	<rule ref="category/java/errorprone.xml/CompareObjectsWithEquals"/>
	<rule ref="category/java/errorprone.xml/ComparisonWithNaN"/>
	<rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod"/>
	<rule ref="category/java/errorprone.xml/DetachedTestCase"/>
	<rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly"/>
	<rule ref="category/java/errorprone.xml/DoNotExtendJavaLangThrowable"/>
	<rule ref="category/java/errorprone.xml/DoNotHardCodeSDCard"/>
	<rule ref="category/java/errorprone.xml/DoNotTerminateVM"/>
	<rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally"/>
	<rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices"/>
	<rule ref="category/java/errorprone.xml/EmptyCatchBlock"/>
	<rule ref="category/java/errorprone.xml/EqualsNull"/>
	<rule ref="category/java/errorprone.xml/IdempotentOperations"/>
	<rule ref="category/java/errorprone.xml/ImplicitSwitchFallThrough"/>
	<rule ref="category/java/errorprone.xml/InstantiationToGetClass"/>
	<rule ref="category/java/errorprone.xml/InvalidLogMessageFormat"/>
	<rule ref="category/java/errorprone.xml/JumbledIncrementer"/>
	<rule ref="category/java/errorprone.xml/JUnitSpelling"/>
	<rule ref="category/java/errorprone.xml/JUnitStaticSuite"/>
	<rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass"/>
	<rule ref="category/java/errorprone.xml/MisplacedNullCheck"/>
	<rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass"/>
	<rule ref="category/java/errorprone.xml/MoreThanOneLogger"/>
	<rule ref="category/java/errorprone.xml/NonCaseLabelInSwitchStatement"/>
	<rule ref="category/java/errorprone.xml/NonSerializableClass"/>
	<rule ref="category/java/errorprone.xml/NonStaticInitializer"/>
	<rule ref="category/java/errorprone.xml/NullAssignment"/>
	<rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode"/>
	<rule ref="category/java/errorprone.xml/ProperCloneImplementation"/>
	<rule ref="category/java/errorprone.xml/ProperLogger"/>
	<rule ref="category/java/errorprone.xml/ReturnEmptyCollectionRatherThanNull"/>
	<rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock"/>
	<rule ref="category/java/errorprone.xml/SimpleDateFormatNeedsLocale"/>
	<rule ref="category/java/errorprone.xml/SingleMethodSingleton"/>
	<rule ref="category/java/errorprone.xml/SingletonClassReturningNewInstance"/>
	<rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar"/>
	<rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName"/>
	<rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName"/>
	<rule ref="category/java/errorprone.xml/SuspiciousOctalEscape"/>
	<rule ref="category/java/errorprone.xml/TestClassWithoutTestCases"/>
	<rule ref="category/java/errorprone.xml/UnconditionalIfStatement"/>
	<rule ref="category/java/errorprone.xml/UnnecessaryBooleanAssertion"/>
	<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange"/>
	<rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary"/>
	<rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals"/>
	<rule ref="category/java/errorprone.xml/UseCorrectExceptionLogging"/>
	<rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings"/>
	<rule ref="category/java/errorprone.xml/UselessOperationOnImmutable"/>
	<rule ref="category/java/errorprone.xml/UseLocaleWithCaseConversions"/>
	<rule ref="category/java/errorprone.xml/UseProperClassLoader"/>
	<!--  Java Multithreading  -->
	<rule ref="category/java/multithreading.xml/AvoidSynchronizedAtMethodLevel"/>
	<rule ref="category/java/multithreading.xml/AvoidThreadGroup"/>
	<rule ref="category/java/multithreading.xml/AvoidUsingVolatile"/>
	<rule ref="category/java/multithreading.xml/DoNotUseThreads"/>
	<rule ref="category/java/multithreading.xml/DontCallThreadRun"/>
	<rule ref="category/java/multithreading.xml/DoubleCheckedLocking"/>
	<rule ref="category/java/multithreading.xml/NonThreadSafeSingleton"/>
	<rule ref="category/java/multithreading.xml/UnsynchronizedStaticFormatter"/>
	<rule ref="category/java/multithreading.xml/UseConcurrentHashMap"/>
	<rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify"/>
	<!--  Java Performance  -->
	<rule ref="category/java/performance.xml/AddEmptyString"/>
	<rule ref="category/java/performance.xml/AppendCharacterWithChar"/>
	<rule ref="category/java/performance.xml/AvoidArrayLoops"/>
	<rule ref="category/java/performance.xml/AvoidCalendarDateCreation"/>
	<rule ref="category/java/performance.xml/AvoidFileStream"/>
	<rule ref="category/java/performance.xml/AvoidInstantiatingObjectsInLoops"/>
	<rule ref="category/java/performance.xml/BigIntegerInstantiation"/>
	<rule ref="category/java/performance.xml/ConsecutiveAppendsShouldReuse"/>
	<rule ref="category/java/performance.xml/ConsecutiveLiteralAppends"/>
	<rule ref="category/java/performance.xml/InefficientEmptyStringCheck"/>
	<rule ref="category/java/performance.xml/InefficientStringBuffering"/>
	<rule ref="category/java/performance.xml/InsufficientStringBufferDeclaration"/>
	<rule ref="category/java/performance.xml/OptimizableToArrayCall"/>
	<rule ref="category/java/performance.xml/RedundantFieldInitializer"/>
	<rule ref="category/java/performance.xml/StringInstantiation"/>
	<rule ref="category/java/performance.xml/StringToString"/>
	<rule ref="category/java/performance.xml/TooFewBranchesForASwitchStatement"/>
	<rule ref="category/java/performance.xml/UseArrayListInsteadOfVector"/>
	<rule ref="category/java/performance.xml/UseArraysAsList"/>
	<rule ref="category/java/performance.xml/UseIndexOfChar"/>
	<rule ref="category/java/performance.xml/UseIOStreamsWithApacheCommonsFileItem"/>
	<rule ref="category/java/performance.xml/UselessStringValueOf"/>
	<rule ref="category/java/performance.xml/UseStringBufferForStringAppends"/>
	<rule ref="category/java/performance.xml/UseStringBufferLength"/>
	<!--  Java Security  -->
	<rule ref="category/java/security.xml/HardCodedCryptoKey"/>
	<rule ref="category/java/security.xml/InsecureCryptoIv"/>
	<!-- JavaScript Best Practice -->
	<rule ref="category/ecmascript/bestpractices.xml/AvoidWithStatement" />
	<rule ref="category/ecmascript/bestpractices.xml/ConsistentReturn" />
	<rule ref="category/ecmascript/bestpractices.xml/GlobalVariable" />
	<rule ref="category/ecmascript/bestpractices.xml/ScopeForInVariable" />
	<rule ref="category/ecmascript/bestpractices.xml/UseBaseWithParseInt" />
	<!-- JavaScript Style -->
	<rule ref="category/ecmascript/codestyle.xml/AssignmentInOperand" />
	<rule ref="category/ecmascript/codestyle.xml/ForLoopsMustUseBraces" />
	<rule ref="category/ecmascript/codestyle.xml/IfElseStmtsMustUseBraces" />
	<rule ref="category/ecmascript/codestyle.xml/IfStmtsMustUseBraces" />
	<rule ref="category/ecmascript/codestyle.xml/NoElseReturn" />
	<rule ref="category/ecmascript/codestyle.xml/UnnecessaryBlock" />
	<rule ref="category/ecmascript/codestyle.xml/UnnecessaryParentheses" />
	<rule ref="category/ecmascript/codestyle.xml/UnreachableCode" />
	<rule ref="category/ecmascript/codestyle.xml/WhileLoopsMustUseBraces" />
	<!--  JavaScript Error Prone -->
	<rule ref="category/ecmascript/errorprone.xml/AvoidTrailingComma" />
</ruleset>

My .pmd

<?xml version="1.0" encoding="UTF-8"?>
<pmd>
    <workingSet>Aggregate:Java Main Sources:Java Test</workingSet>
    <useProjectRuleSet>true</useProjectRuleSet>
    <ruleSetFile>.ruleset.xml</ruleSetFile>
    <includeDerivedFiles>false</includeDerivedFiles>
    <violationsAsErrors>false</violationsAsErrors>
    <fullBuildEnabled>true</fullBuildEnabled>
</pmd>

Eclipse version: Eclipse IDE for Enterprise Java and Web Developers (includes Incubating components) 4.27.0
PMD Version: 7.0.0.v20230502-1028-rc2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions