From 34ad640ea7b2b9a4917cf97db66335999c6d373d Mon Sep 17 00:00:00 2001
From: basisbit <hp.stefan@gmail.com>
Date: Wed, 9 Dec 2020 14:55:47 +0100
Subject: [PATCH] Fix voice bridge compare

Cherry-picked https://github.com/bigbluebutton/bigbluebutton/pull/9855

Co-Authored-By: Pedro Beschorner Marin <pedrobmarin@gmail.com>
---
 .../src/main/java/org/bigbluebutton/api/ApiErrors.java        | 4 ++++
 .../src/main/java/org/bigbluebutton/api/MeetingService.java   | 4 ++--
 .../org/bigbluebutton/web/controllers/ApiController.groovy    | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiErrors.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiErrors.java
index e8d74a8730..545f7ad530 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiErrors.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiErrors.java
@@ -36,6 +36,10 @@ public class ApiErrors {
 		errors.add(new String[] {"NotUniqueMeetingID", "A meeting already exists with that meeting ID.  Please use a different meeting ID."});
 	}
 
+	public void nonUniqueVoiceBridgeError() {
+		errors.add(new String[] {"nonUniqueVoiceBridge", "The selected voice bridge is already in use."});
+	}
+
 	public void invalidMeetingIdError() {
 		errors.add(new String[] {"invalidMeetingId", "The meeting ID that you supplied did not match any existing meetings"});
 	}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java
index d73e1783bf..adff3ac461 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java
@@ -457,7 +457,7 @@ public class MeetingService implements MessageListener {
           return null;
       for (Map.Entry<String, Meeting> entry : meetings.entrySet()) {
           Meeting m = entry.getValue();
-          if (m.getTelVoice() == telVoice) {
+          if (telVoice.equals(m.getTelVoice())) {
               if (!m.isForciblyEnded())
                   return m;
           }
@@ -470,7 +470,7 @@ public class MeetingService implements MessageListener {
           return null;
       for (Map.Entry<String, Meeting> entry : meetings.entrySet()) {
           Meeting m = entry.getValue();
-          if (m.getWebVoice() == webVoice) {
+          if (webVoice.equals(m.getWebVoice())) {
               if (!m.isForciblyEnded())
                   return m;
           }
diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
index 221dd716b9..61d5d76220 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
@@ -186,7 +186,7 @@ class ApiController {
         Meeting existingWebVoice = meetingService.getNotEndedMeetingWithWebVoice(newMeeting.getWebVoice());
         if (existingTelVoice != null || existingWebVoice != null) {
           log.error "VoiceBridge already in use by another meeting (different meetingId)"
-          errors.nonUniqueMeetingIdError()
+          errors.nonUniqueVoiceBridgeError()
           respondWithErrors(errors)
         }
       }
-- 
GitLab