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

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


The following commit(s) were added to refs/heads/4.0.x by this push:
     new 2630c6a  [OPENMEETINGS-2202] NPE should be fixed
2630c6a is described below

commit 2630c6ad30fc26cc890944e0d728c835762352c1
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Mon Mar 30 22:44:20 2020 +0700

    [OPENMEETINGS-2202] NPE should be fixed
---
 .../main/java/org/apache/openmeetings/db/entity/basic/Client.java | 6 +++++-
 .../main/java/org/apache/openmeetings/web/app/ClientManager.java  | 8 ++++----
 .../src/main/java/org/apache/openmeetings/web/room/RoomPanel.java | 2 +-
 3 files changed, 10 insertions(+), 6 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 2c848e4..52f7bf1 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
@@ -120,7 +120,11 @@ public class Client implements IClient {
 
        @Override
        public Long getUserId() {
-               return user.getId();
+               return user == null ? null : user.getId();
+       }
+
+       public boolean sameUserId(Long userId) {
+               return getUserId() == null ? false : getUserId().equals(userId);
        }
 
        @Override
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 129bd08..412e864 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
@@ -226,7 +226,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;
                        }
@@ -270,7 +270,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());
                                }
                        }
@@ -283,7 +283,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;
                                }
                        }
@@ -293,7 +293,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 3318ebf..ac8677f 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
@@ -678,7 +678,7 @@ public class RoomPanel extends BasePanel {
 
        public static boolean hasRight(long userId, long roomId, Right r) {
                for (Client c : 
getBean(ClientManager.class).listByRoom(roomId)) {
-                       if (c.getUserId().equals(userId) && c.hasRight(r)) {
+                       if (c.sameUserId(userId) && c.hasRight(r)) {
                                return true;
                        }
                }

Reply via email to