This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 6c10aaf  [OPENMEETINGS-2202] NPE should be fixed
6c10aaf is described below

commit 6c10aaf6fee0b751427c25e4dfb73547d0257afc
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Mon Mar 30 22:38:54 2020 +0700

    [OPENMEETINGS-2202] NPE should be fixed
---
 .../main/java/org/apache/openmeetings/db/entity/basic/Client.java | 8 ++++++--
 .../main/java/org/apache/openmeetings/web/app/ClientManager.java  | 8 ++++----
 .../src/main/java/org/apache/openmeetings/web/room/RoomPanel.java | 2 +-
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index bf28cf1..bd52e33 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -109,7 +109,11 @@ public class Client implements IDataProviderEntity, 
IWsClient {
        }
 
        public Long getUserId() {
-               return user.getId();
+               return user == null ? null : user.getId();
+       }
+
+       public boolean sameUserId(Long userId) {
+               return getUserId() == null ? false : getUserId().equals(userId);
        }
 
        public String getPictureUri() {
@@ -437,7 +441,7 @@ public class Client implements IDataProviderEntity, 
IWsClient {
 
        @Override
        public String toString() {
-               return "Client [uid=" + uid + ", sessionId=" + sessionId + ", 
pageId=" + pageId + ", userId=" + user.getId() + ", room=" + (room == null ? 
null : room.getId())
+               return "Client [uid=" + uid + ", sessionId=" + sessionId + ", 
pageId=" + pageId + ", userId=" + getUserId() + ", room=" + getRoomId()
                                + ", rights=" + rights + ", sactivities=" + 
activities + ", connectedSince=" + connectedSince + "]";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index 598ead2..6a5239e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -279,7 +279,7 @@ public class ClientManager implements IClientManager {
        public boolean isOnline(Long userId) {
                boolean isUserOnline = false;
                for (Map.Entry<String, Client> e : map().entrySet()) {
-                       if (e.getValue().getUserId().equals(userId)) {
+                       if (e.getValue().sameUserId(userId)) {
                                isUserOnline = true;
                                break;
                        }
@@ -323,7 +323,7 @@ public class ClientManager implements IClientManager {
                for (Entry<Long, Set<String>> me : onlineRooms.entrySet()) {
                        for (String uid : me.getValue()) {
                                Client c = get(uid);
-                               if (c != null && c.getUserId().equals(userId)) {
+                               if (c != null && c.sameUserId(userId)) {
                                        result.add(me.getKey());
                                }
                        }
@@ -336,7 +336,7 @@ public class ClientManager implements IClientManager {
                if (clients != null) {
                        for (String uid : clients) {
                                Client c = get(uid);
-                               if (c != null && c.getUserId().equals(userId)) {
+                               if (c != null && c.sameUserId(userId)) {
                                        return true;
                                }
                        }
@@ -346,7 +346,7 @@ public class ClientManager implements IClientManager {
 
        private List<Client> getByKeys(Long userId, String sessionId) {
                return map().values().stream()
-                               .filter(c -> c.getUserId().equals(userId) && 
c.getSessionId().equals(sessionId))
+                               .filter(c -> c.sameUserId(userId) && 
c.getSessionId().equals(sessionId))
                                .collect(Collectors.toList());
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index cf167ca..a8477a4 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -649,7 +649,7 @@ public class RoomPanel extends BasePanel {
 
        public static boolean hasRight(ClientManager cm, long userId, long 
roomId, Right r) {
                for (Client c : cm.listByRoom(roomId)) {
-                       if (c.getUserId().equals(userId) && c.hasRight(r)) {
+                       if (c.sameUserId(userId) && c.hasRight(r)) {
                                return true;
                        }
                }

Reply via email to