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