Fix NPE if user is null
Commit a35f8a20ab623bcd07beac7840889e954438777e replaced the pattern
user instanceof IdentifiedUser
with
user.isIdentifiedUser()
.
This results in a NullPointerException in case the user is null
('user instanceof IdentifiedUser' was returning false in this case).
Add a check that the user is not null in all places where the user can
be null.
Change-Id: I71f5933d9a4eb2de6cd7acf616c347bf8a5bd9f2
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java
index 9c81cfa..5ee335d 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java
@@ -111,7 +111,7 @@
uri = uri + "?" + qs;
}
- if (user.isIdentifiedUser()) {
+ if (user != null && user.isIdentifiedUser()) {
IdentifiedUser who = (IdentifiedUser) user;
if (who.getUserName() != null && !who.getUserName().isEmpty()) {
event.setProperty(P_USER, who.getUserName());
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java
index 5120bfd..8c17407 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java
@@ -233,7 +233,7 @@
String userName = "-", accountId = "-";
- if (user.isIdentifiedUser()) {
+ if (user != null && user.isIdentifiedUser()) {
IdentifiedUser u = (IdentifiedUser) user;
userName = u.getAccount().getUserName();
accountId = "a/" + u.getAccountId().toString();
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java
index 70a8592..9b19e02 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java
@@ -81,7 +81,7 @@
@Override
public CurrentUser getCurrentUser() {
final CurrentUser user = session.getCurrentUser();
- if (user.isIdentifiedUser()) {
+ if (user != null && user.isIdentifiedUser()) {
IdentifiedUser identifiedUser = userFactory.create(((IdentifiedUser) user).getAccountId());
identifiedUser.setAccessPath(user.getAccessPath());
return identifiedUser;
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java
index 09ce920..c0e5d6e 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java
@@ -146,7 +146,7 @@
}
final CurrentUser user = sd.getCurrentUser();
- if (user.isIdentifiedUser()) {
+ if (user != null && user.isIdentifiedUser()) {
IdentifiedUser u = (IdentifiedUser) user;
if (!numeric) {