Skip to content

Commit e0d1061

Browse files
author
Vincent Potucek
committed
[POC-FIX-PMD] maven-pmd-plugin: reactivate PMD - Error Prone
1 parent 96efade commit e0d1061

File tree

13 files changed

+185
-69
lines changed

13 files changed

+185
-69
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@
1616
.factorypath
1717
.vscode/
1818
repo/
19-
/*.svg
19+
/*.svg
20+
.pmd/.cache

.pmd/exclude.properties

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
org.apache.maven.ReactorReader=UselessParentheses
2+
org.apache.maven.api.DependencyScope=UnnecessaryFullyQualifiedName
3+
org.apache.maven.api.JavaPathType=UnnecessaryFullyQualifiedName,UnnecessaryModifier
4+
org.apache.maven.api.MonotonicClock=UnnecessaryFullyQualifiedName
5+
org.apache.maven.api.plugin.testing.Foo=UnnecessaryFullyQualifiedName
6+
org.apache.maven.api.plugin.testing.MojoExtension=CollapsibleIfStatements
7+
org.apache.maven.api.plugin.testing.stubs.SessionMock=TooManyStaticImports
8+
org.apache.maven.api.services.ArtifactCoordinatesFactoryRequest=UnnecessaryFullyQualifiedName
9+
org.apache.maven.api.services.ArtifactFactoryRequest=UnnecessaryFullyQualifiedName
10+
org.apache.maven.api.services.DependencyCoordinatesFactoryRequest=UnnecessaryFullyQualifiedName
11+
org.apache.maven.artifact.ArtifactUtils=UnnecessaryFullyQualifiedName
12+
org.apache.maven.artifact.DefaultArtifact=UselessParentheses
13+
org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager=CollapsibleIfStatements
14+
org.apache.maven.artifact.handler.manager.LegacyArtifactHandlerManager=CollapsibleIfStatements
15+
org.apache.maven.artifact.metadata.AbstractArtifactMetadata=UnnecessaryFullyQualifiedName
16+
org.apache.maven.artifact.repository.ArtifactRepositoryPolicy=UnnecessaryFullyQualifiedName
17+
org.apache.maven.artifact.repository.DefaultArtifactRepository=UnusedFormalParameter
18+
org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata=UnnecessaryFullyQualifiedName
19+
org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager=CollapsibleIfStatements
20+
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer=UnnecessaryFullyQualifiedName
21+
org.apache.maven.artifact.resolver.DaemonThreadCreator=AvoidThreadGroup
22+
org.apache.maven.artifact.resolver.filter.ExclusionArtifactFilter=UnusedPrivateField
23+
org.apache.maven.artifact.versioning.ComparableVersion=UselessParentheses
24+
org.apache.maven.artifact.versioning.ListItem=UselessParentheses
25+
org.apache.maven.artifact.versioning.VersionRange=CollapsibleIfStatements
26+
org.apache.maven.bridge.MavenRepositorySystem=AvoidUsingHardCodedIP,UnnecessaryFullyQualifiedName,UselessParentheses
27+
org.apache.maven.cli.CLIReportingUtils=UselessParentheses
28+
org.apache.maven.cli.MavenCli=UnnecessaryFullyQualifiedName,UselessParentheses
29+
org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor=UnusedFormalParameter
30+
org.apache.maven.cli.props.MavenProperties=CollapsibleIfStatements
31+
org.apache.maven.cli.props.MavenPropertiesLoader=UselessParentheses
32+
org.apache.maven.cli.transfer.AbstractMavenTransferListener=UselessParentheses
33+
org.apache.maven.cli.transfer.ConsoleMavenTransferListener=UnusedFormalParameter
34+
org.apache.maven.cli.transfer.Slf4jMavenTransferListener=UselessParentheses
35+
org.apache.maven.cling.executor.embedded.Context=UnusedPrivateField
36+
org.apache.maven.cling.invoker.BaseParser=TooManyStaticImports
37+
org.apache.maven.cling.invoker.LookupInvoker=SimplifiedTernary
38+
org.apache.maven.cling.invoker.mvnenc.CommonsCliEncryptOptions=UnnecessaryFullyQualifiedName
39+
org.apache.maven.cling.invoker.mvnsh.CommonsCliShellOptions=UnnecessaryFullyQualifiedName
40+
org.apache.maven.cling.invoker.mvnsh.builtin.BuiltinShellCommandRegistry=UnusedFormalParameter
41+
org.apache.maven.cling.logging.Slf4jLoggerManager=UselessParentheses
42+
org.apache.maven.cling.logging.impl.UnsupportedSlf4jBindingConfiguration=UnusedFormalParameter
43+
org.apache.maven.cling.props.MavenProperties=CollapsibleIfStatements
44+
org.apache.maven.cling.props.MavenPropertiesLoader=UselessParentheses
45+
org.apache.maven.cling.transfer.AbstractMavenTransferListener=UselessParentheses
46+
org.apache.maven.cling.transfer.ConsoleMavenTransferListener=UnusedFormalParameter
47+
org.apache.maven.cling.transfer.Slf4jMavenTransferListener=UselessParentheses
48+
org.apache.maven.cling.utils.CLIReportingUtils=UnusedPrivateField,UselessParentheses
49+
org.apache.maven.configuration.BasedirBeanConfigurationPathTranslator=EmptyControlStatement
50+
org.apache.maven.di.impl.Binding=UnnecessaryFullyQualifiedName
51+
org.apache.maven.di.impl.ReflectionUtils=UnnecessaryFullyQualifiedName
52+
org.apache.maven.di.impl.SingletonScope=UnnecessaryFullyQualifiedName
53+
org.apache.maven.di.impl.Types=JumbledIncrementer,UnnecessaryFullyQualifiedName
54+
org.apache.maven.exception.DefaultExceptionHandler=UselessParentheses
55+
org.apache.maven.execution.MavenSession=UnusedFormalParameter
56+
org.apache.maven.graph.DefaultGraphBuilder=UselessParentheses
57+
org.apache.maven.impl.DefaultNode=UnnecessaryFullyQualifiedName,UselessParentheses
58+
org.apache.maven.impl.DefaultRepositoryFactory=UnnecessaryFullyQualifiedName
59+
org.apache.maven.impl.DefaultSettingsBuilder=UnusedFormalParameter
60+
org.apache.maven.impl.DefaultToolchainsBuilder=UnusedFormalParameter
61+
org.apache.maven.impl.DefaultTransportProvider=UnnecessaryFullyQualifiedName
62+
org.apache.maven.impl.InternalSession=UnnecessaryFullyQualifiedName
63+
org.apache.maven.impl.PathSelector=CollapsibleIfStatements
64+
org.apache.maven.impl.PropertiesAsMap=UnnecessaryFullyQualifiedName
65+
org.apache.maven.impl.SettingsUtilsV4=UnnecessaryFullyQualifiedName
66+
org.apache.maven.impl.model.DefaultInheritanceAssembler=UselessParentheses
67+
org.apache.maven.impl.model.DefaultModelBuilder=UnnecessaryFullyQualifiedName
68+
org.apache.maven.impl.model.DefaultModelInterpolator=EmptyControlStatement
69+
org.apache.maven.impl.model.DefaultModelValidator=UnnecessaryFullyQualifiedName
70+
org.apache.maven.impl.model.MavenModelMerger=CollapsibleIfStatements,UselessOverridingMethod
71+
org.apache.maven.impl.model.ModelBuilderSessionState=CollapsibleIfStatements
72+
org.apache.maven.impl.resolver.LocalSnapshotMetadataGenerator=UnusedFormalParameter
73+
org.apache.maven.impl.resolver.scopes.Maven3ScopeManagerConfiguration=TooManyStaticImports,UnnecessaryFullyQualifiedName
74+
org.apache.maven.impl.resolver.scopes.Maven4ScopeManagerConfiguration=TooManyStaticImports,UnnecessaryFullyQualifiedName
75+
org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory=EmptyControlStatement
76+
org.apache.maven.internal.impl.CleanLifecycle=UnnecessaryFullyQualifiedName
77+
org.apache.maven.internal.impl.DefaultLifecycle=UnnecessaryFullyQualifiedName
78+
org.apache.maven.internal.impl.DefaultLifecycleRegistry=TooManyStaticImports,UnnecessaryFullyQualifiedName
79+
org.apache.maven.internal.impl.DefaultTypeRegistry=CollapsibleIfStatements
80+
org.apache.maven.internal.impl.SiteLifecycle=UnnecessaryFullyQualifiedName
81+
org.apache.maven.internal.transformation.impl.DefaultConsumerPomArtifactTransformer=UnusedPrivateMethod
82+
org.apache.maven.internal.transformation.impl.DefaultConsumerPomBuilder=UnusedFormalParameter
83+
org.apache.maven.jline.DefaultPrompter=UselessParentheses
84+
org.apache.maven.jline.MessageUtils=UnnecessaryFullyQualifiedName
85+
org.apache.maven.lifecycle.DefaultLifecycles=UnusedFormalParameter
86+
org.apache.maven.lifecycle.LifecycleExecutionException=UnusedFormalParameter
87+
org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator=UselessParentheses
88+
org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator=UselessParentheses
89+
org.apache.maven.lifecycle.internal.builder.BuilderCommon=EmptyControlStatement
90+
org.apache.maven.lifecycle.internal.concurrent.BuildContext=CollapsibleIfStatements,EmptyControlStatement,UnusedLocalVariable
91+
org.apache.maven.lifecycle.internal.concurrent.BuildPlanExecutor=TooManyStaticImports,UselessParentheses
92+
org.apache.maven.lifecycle.internal.concurrent.ConcurrentLifecycleStarter=UselessParentheses
93+
org.apache.maven.logging.LoggingExecutionListener=UselessParentheses
94+
org.apache.maven.model.building.DefaultModelBuilder.java=UnnecessaryFullyQualifiedName
95+
org.apache.maven.model.building.DefaultModelBuilder=UnnecessaryFullyQualifiedName
96+
org.apache.maven.model.inheritance.DefaultInheritanceAssembler=UselessParentheses
97+
org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx=UselessOverridingMethod
98+
org.apache.maven.model.io.xpp3.MavenXpp3WriterEx=UselessOverridingMethod
99+
org.apache.maven.model.merge.MavenModelMerger=CollapsibleIfStatements
100+
org.apache.maven.model.merge.ModelMerger=CollapsibleIfStatements
101+
org.apache.maven.model.validation.DefaultModelValidator=UnusedFormalParameter
102+
org.apache.maven.plugin.CycleDetectedInPluginGraphException=UnusedFormalParameter
103+
org.apache.maven.plugin.PluginConfigurationException=UnusedPrivateField
104+
org.apache.maven.plugin.PluginParameterException=UselessParentheses
105+
org.apache.maven.plugin.PluginParameterExpressionEvaluator=UselessParentheses
106+
org.apache.maven.plugin.PluginParameterExpressionEvaluatorV4=CollapsibleIfStatements,UselessParentheses
107+
org.apache.maven.plugin.internal.DefaultLegacySupport=UnnecessaryFullyQualifiedName
108+
org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver=UselessParentheses
109+
org.apache.maven.project.BuildSession=UselessParentheses
110+
org.apache.maven.project.DefaultProjectBuilder=UnusedFormalParameter
111+
org.apache.maven.project.MavenProject=CollapsibleIfStatements,UnusedFormalParameter,UselessParentheses
112+
org.apache.maven.project.ProjectSorter=UselessParentheses
113+
org.apache.maven.project.collector.DefaultProjectsSelector=UselessParentheses
114+
org.apache.maven.project.interpolation.RegexBasedModelInterpolator=UnusedFormalParameter
115+
org.apache.maven.project.path.DefaultPathTranslator=CollapsibleIfStatements
116+
org.apache.maven.repository.DefaultMirrorSelector=AvoidUsingHardCodedIP,UselessParentheses
117+
org.apache.maven.repository.internal.DefaultModelResolver=UnnecessaryFullyQualifiedName
118+
org.apache.maven.repository.internal.LocalSnapshotMetadataGenerator=UnusedFormalParameter
119+
org.apache.maven.repository.internal.scopes.Maven3ScopeManagerConfiguration=TooManyStaticImports,UnnecessaryFullyQualifiedName
120+
org.apache.maven.repository.internal.scopes.Maven4ScopeManagerConfiguration=TooManyStaticImports,UnnecessaryFullyQualifiedName
121+
org.apache.maven.repository.legacy.DefaultWagonManager=UnusedFormalParameter
122+
org.apache.maven.repository.legacy.LegacyRepositorySystem=UnnecessaryFullyQualifiedName
123+
org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector=CollapsibleIfStatements
124+
org.apache.maven.repository.legacy.resolver.transform.SnapshotTransformation=UselessParentheses
125+
org.apache.maven.repository.metadata.ArtifactMetadata=UnusedFormalParameter
126+
org.apache.maven.repository.metadata.DefaultGraphConflictResolver=UnusedFormalParameter
127+
org.apache.maven.repository.metadata.MetadataGraph=UnusedFormalParameter
128+
org.apache.maven.repository.metadata.MetadataGraphEdge=OverrideBothEqualsAndHashcode,UselessParentheses
129+
org.apache.maven.settings.DefaultMavenSettingsBuilder=UnnecessaryFullyQualifiedName
130+
org.apache.maven.settings.building.DefaultSettingsBuilder=UnusedFormalParameter
131+
org.apache.maven.slf4j.DefaultLogLevelRecorder=AvoidBranchingStatementAsLastInLoop,CollapsibleIfStatements
132+
org.apache.maven.slf4j.MavenBaseLogger=UselessParentheses
133+
org.apache.maven.slf4j.SimpleLoggerConfiguration=UselessParentheses
134+
org.apache.maven.toolchain.DefaultToolchainManagerV3=UnnecessaryFullyQualifiedName
135+
org.apache.maven.toolchain.building.DefaultToolchainsBuilder=UnusedFormalParameter
136+
org.apache.maven.toolchain.java.DefaultJavaToolChain=UselessOverridingMethod

compat/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@
3131
import org.apache.maven.artifact.repository.ArtifactRepository;
3232
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
3333
import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
34-
import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
3534
import org.apache.maven.artifact.repository.metadata.MetadataBridge;
36-
import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
3735
import org.apache.maven.plugin.LegacySupport;
3836
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
3937
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -106,9 +104,6 @@ public void deploy(
106104
org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact(mainArtifact, "", "pom");
107105
pomArtifact = pomArtifact.setFile(projectArtifactMetadata.getFile());
108106
request.addArtifact(pomArtifact);
109-
} else if (metadata instanceof SnapshotArtifactRepositoryMetadata
110-
|| metadata instanceof ArtifactRepositoryMetadata) {
111-
// eaten, handled by repo system
112107
} else {
113108
request.addMetadata(new MetadataBridge(metadata));
114109
}

compat/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,6 @@ public void install(File source, Artifact artifact, ArtifactRepository localRepo
8585
org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact(mainArtifact, "", "pom");
8686
pomArtifact = pomArtifact.setFile(projectArtifactMetadata.getFile());
8787
request.addArtifact(pomArtifact);
88-
} else if (metadata instanceof SnapshotArtifactRepositoryMetadata
89-
|| metadata instanceof ArtifactRepositoryMetadata) {
90-
// eaten, handled by repo system
9188
} else {
9289
request.addMetadata(new MetadataBridge(metadata));
9390
}

compat/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ private Properties read(File touchfile) {
303303
Properties props = new Properties();
304304

305305
try (FileInputStream in = new FileInputStream(touchfile)) {
306-
try (FileLock lock = in.getChannel().lock(0, Long.MAX_VALUE, true)) {
306+
try (FileLock ignored = in.getChannel().lock(0, Long.MAX_VALUE, true)) {
307307
getLogger().debug("Reading resolution-state from: " + touchfile);
308308
props.load(in);
309309

impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ private void doExecute(MavenSession session, MojoExecution mojoExecution, Depend
306306

307307
ensureDependenciesAreResolved(mojoDescriptor, session, dependencyContext);
308308

309-
try (NoExceptionCloseable lock = getProjectLock(session, mojoDescriptor)) {
309+
try (NoExceptionCloseable ignored = getProjectLock(session, mojoDescriptor)) {
310310
doExecute2(session, mojoExecution);
311311
} finally {
312312
for (MavenProject forkedProject : forkedProjects) {

impl/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,9 +347,7 @@ public File alignToBaseDirectory(File file) {
347347
// TODO Copied from the DefaultInterpolator. We likely want to resurrect the PathTranslator or at least a
348348
// similar component for re-usage
349349
if (file != null) {
350-
if (file.isAbsolute()) {
351-
// path was already absolute, just normalize file separator and we're done
352-
} else if (file.getPath().startsWith(File.separator)) {
350+
if (file.getPath().startsWith(File.separator)) {
353351
// drive-relative Windows path, don't align with project directory but with drive root
354352
file = file.getAbsoluteFile();
355353
} else {

impl/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,7 @@ public File alignToBaseDirectory(File file) {
227227
// TODO Copied from the DefaultInterpolator. We likely want to resurrect the PathTranslator or at least a
228228
// similar component for re-usage
229229
if (file != null) {
230-
if (file.isAbsolute()) {
231-
// path was already absolute, just normalize file separator and we're done
232-
} else if (file.getPath().startsWith(File.separator)) {
230+
if (file.getPath().startsWith(File.separator)) {
233231
// drive-relative Windows path, don't align with project directory but with drive root
234232
file = file.getAbsoluteFile();
235233
} else {

impl/maven-xml/src/main/java/org/apache/maven/internal/xml/DefaultXmlService.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -392,34 +392,6 @@ private static String getChildCombinationMode(Map<String, String> attributes) {
392392
return !isEmpty(value) ? value : DEFAULT_CHILDREN_COMBINATION_MODE;
393393
}
394394

395-
@Nullable
396-
private static XmlNode findNodeById(@Nonnull List<XmlNode> nodes, @Nonnull String id) {
397-
return nodes.stream()
398-
.filter(n -> id.equals(n.attribute(ID_COMBINATION_MODE_ATTRIBUTE)))
399-
.findFirst()
400-
.orElse(null);
401-
}
402-
403-
@Nullable
404-
private static XmlNode findNodeByKeys(
405-
@Nonnull List<XmlNode> nodes, @Nonnull XmlNode target, @Nonnull String[] keys) {
406-
return nodes.stream()
407-
.filter(n -> matchesKeys(n, target, keys))
408-
.findFirst()
409-
.orElse(null);
410-
}
411-
412-
private static boolean matchesKeys(@Nonnull XmlNode node1, @Nonnull XmlNode node2, @Nonnull String[] keys) {
413-
for (String key : keys) {
414-
String value1 = node1.attribute(key);
415-
String value2 = node2.attribute(key);
416-
if (!Objects.equals(value1, value2)) {
417-
return false;
418-
}
419-
}
420-
return true;
421-
}
422-
423395
static class IndentingXMLStreamWriter extends StreamWriterDelegate {
424396

425397
int depth = 0;

its/core-it-support/core-it-plugins/maven-it-plugin-active-collection/src/main/java/org/apache/maven/plugin/coreit/CheckThreadSafetyMojo.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,13 @@ public void run() {
9595
getLog().info("[MAVEN-CORE-IT-LOG] Thread " + this + " uses " + tccl);
9696
Thread.currentThread().setContextClassLoader(tccl);
9797
while (go.isEmpty()) {
98-
// wait for start
98+
// [WARNING] PMD Failure: Rule:EmptyControlStatement Priority:3 Empty while statement.
99+
try {
100+
Thread.sleep(100);
101+
} catch (InterruptedException e) {
102+
throw new RuntimeException(e);
103+
}
104+
// wait for the start
99105
}
100106
for (int j = 0; j < 10 * 1000; j++) {
101107
try {

0 commit comments

Comments
 (0)