From fb7cc5379bff2b664d323a6c58dd37e8459fb4d0 Mon Sep 17 00:00:00 2001 From: rsandell Date: Sat, 12 Jun 2021 15:20:51 +0200 Subject: [PATCH] Spotbugs fixes and tweaks --- pom.xml | 1 + .../gerrit/trigger/GerritManagement.java | 2 +- .../diagnostics/BuildMemoryReport.java | 2 +- .../support/EventListenersComponent.java | 8 ++++---- .../gerritnotifier/model/BuildMemory.java | 2 +- .../trigger/hudsontrigger/GerritTrigger.java | 19 +++++++++++++++---- .../hudsontrigger/GerritTriggerTimer.java | 2 +- .../hudsontrigger/data/GerritProject.java | 2 +- .../data/TriggeredItemEntity.java | 7 +++++-- .../trigger/version/GerritVersionNumber.java | 10 ++++++++++ src/spotbugs/excludesFilter.xml | 11 +++++++++++ 11 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 src/spotbugs/excludesFilter.xml diff --git a/pom.xml b/pom.xml index 0b3466847..74707fa11 100644 --- a/pom.xml +++ b/pom.xml @@ -69,6 +69,7 @@ 3 false 0.5C + High diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java index b10e6c36c..db6de4898 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/GerritManagement.java @@ -150,7 +150,7 @@ public static final class DescriptorImpl extends Descriptor { @Override public String getDisplayName() { - return null; // unused + return ""; // unused } /** diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java index 4bd3018ef..6da31473c 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/BuildMemoryReport.java @@ -77,7 +77,7 @@ public BuildMemoryReport() { public int compare(GerritTriggeredEvent a, GerritTriggeredEvent b) { int to = a.getEventCreatedOn().compareTo(b.getEventCreatedOn()) * -1; if (to == 0) { - return Integer.valueOf(a.hashCode()).compareTo(b.hashCode()) * -1; + return Integer.compare(a.hashCode(), b.hashCode()) * -1; } return to; } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/support/EventListenersComponent.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/support/EventListenersComponent.java index 16dd804b3..6d66ccab9 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/support/EventListenersComponent.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/diagnostics/support/EventListenersComponent.java @@ -95,20 +95,20 @@ protected void printTo(PrintWriter out) throws IOException { Job job = listener.findJob(); GerritTrigger trigger = listener.getTrigger(); if (job != null) { - out.format(" * __Job: %s _(%s)___\n", job.getFullDisplayName(), listener.getJob()); + out.format(" * __Job: %s _(%s)___%n", job.getFullDisplayName(), listener.getJob()); } else { - out.format(" * __Job: _(%s)___\n", listener.getJob()); + out.format(" * __Job: _(%s)___%n", listener.getJob()); } if (trigger != null) { out.println(" - Trigger on: "); List projects = trigger.getGerritProjects(); for (int i = 0; i < Math.min(MAX_PROJECT_BRANCH_LIST_LENGTH, projects.size()); i++) { GerritProject pr = projects.get(i); - out.format(" * _%s_: %s\n", pr.getCompareType().getDisplayName(), pr.getPattern()); + out.format(" * _%s_: %s%n", pr.getCompareType().getDisplayName(), pr.getPattern()); List branches = pr.getBranches(); for (int j = 0; j < Math.min(MAX_PROJECT_BRANCH_LIST_LENGTH, branches.size()); j++) { Branch branch = branches.get(0); - out.format(" - _%s_: %s\n", + out.format(" - _%s_: %s%n", branch.getCompareType().getDisplayName(), branch.getPattern()); } if (branches.size() >= MAX_PROJECT_BRANCH_LIST_LENGTH) { diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java index 8e56b168a..d3b02fb9d 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/gerritnotifier/model/BuildMemory.java @@ -78,7 +78,7 @@ public int compare(GerritTriggeredEvent o1, GerritTriggeredEvent o2) { if (o1 == null && o2 != null) { return -1; } - return Integer.valueOf(o1.hashCode()).compareTo(o2.hashCode()); + return Integer.compare(o1.hashCode(), o2.hashCode()); } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java index 08596208e..a57225423 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTrigger.java @@ -557,7 +557,7 @@ private void addThisTriggerAsListener(Job project) { * @param project the project * @return a new listener instance */ - /*package*/ static EventListener createListener(Job project) { + /*package*/ static EventListener createListener(Job project) { return new EventListener(project); } @@ -567,6 +567,9 @@ private void addThisTriggerAsListener(Job project) { * @see #createListener(hudson.model.Job) */ /*package*/ EventListener createListener() { + if (job == null) { + throw new IllegalStateException("job is not set"); + } return createListener(job); } @@ -1071,8 +1074,12 @@ public boolean isInteresting(GerritTriggeredEvent event) { } } } catch (PatternSyntaxException pse) { + String name = "null"; + if (job != null) { + name = job.getName(); + } logger.error(MessageFormat.format("Exception caught for project {0} and pattern {1}, message: {2}", - new Object[]{job.getName(), p.getPattern(), pse.getMessage()})); + name, p.getPattern(), pse.getMessage())); } } logger.trace("Event is not interesting; event: {}", event); @@ -1960,8 +1967,12 @@ public void updateTriggerConfigURL() { // Now that the dynamic project list has been loaded, we can "count down" // the latch so that the EventListener thread can begin to process events. if (projectListIsReady.getCount() > 0) { - logger.debug("Trigger config URL updated: {}; latch is currently {}; decrementing it.", job.getName(), - projectListIsReady.getCount()); + String name = "null"; + if (job != null) { + name = job.getName(); + } + logger.debug("Trigger config URL updated: {}; latch is currently {}; decrementing it.", + name, projectListIsReady.getCount()); } // Always release all locks otherwise workers will be stuck forever projectListIsReady.countDown(); diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java index 395318753..92b2cd318 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/GerritTriggerTimer.java @@ -53,7 +53,7 @@ public final class GerritTriggerTimer { /** * The instance used by the singleton mechanism. */ - private static GerritTriggerTimer instance = null; + private static volatile GerritTriggerTimer instance = null; /** * The timer handler diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java index 583993931..f6bdfd812 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/GerritProject.java @@ -341,7 +341,7 @@ public ComboBoxModel doFillPatternItems(@QueryParameter("serverName") } @Override public String getDisplayName() { - return null; + return ""; } } } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java index 47f12c4f6..6a60229a5 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/hudsontrigger/data/TriggeredItemEntity.java @@ -25,13 +25,13 @@ package com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data; import com.infradna.tool.bridge_method_injector.WithBridgeMethods; +import edu.umd.cs.findbugs.annotations.CheckForNull; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.Job; import hudson.model.Run; import jenkins.model.Jenkins; -import javax.annotation.Nonnull; /** * Wrapper class for smoother serialization of {@link Run } and {@link Job }. @@ -223,7 +223,10 @@ public boolean isSameBuild(int otherBuildNumber, String otherParentName) { * @return true if it is so. */ @Deprecated - public boolean equals(@Nonnull Run aBuild) { + public boolean equals(@CheckForNull Run aBuild) { + if (aBuild == null) { + return false; + } return isSameBuild(aBuild.getNumber(), aBuild.getParent().getFullName()); } diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionNumber.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionNumber.java index bec005b1b..11330c6cc 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionNumber.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/version/GerritVersionNumber.java @@ -55,6 +55,16 @@ public static GerritVersionNumber getGerritVersionNumber(String num) { return versionNumber; } + @Override + public boolean equals(final Object o) { + return super.equals(o); + } + + @Override + public int hashCode() { + return super.hashCode(); + } + /** * Getter for if the version number is a snapshot. * @return if it is a snapshot. diff --git a/src/spotbugs/excludesFilter.xml b/src/spotbugs/excludesFilter.xml new file mode 100644 index 000000000..63821c5a5 --- /dev/null +++ b/src/spotbugs/excludesFilter.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file