You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2019/03/04 10:07:19 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1856] sonar should be more happy

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 29da245  [OPENMEETINGS-1856] sonar should be more happy
29da245 is described below

commit 29da2459ef79574c7f11e03981425bbc65ba0195
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Mon Mar 4 17:07:05 2019 +0700

    [OPENMEETINGS-1856] sonar should be more happy
---
 .../org/apache/openmeetings/core/remote/KRoom.java |   2 +-
 .../openmeetings/core/remote/StreamProcessor.java  |  29 +--
 .../openmeetings/core/util/WebSocketHelper.java    |   8 +-
 .../calendar/caldav/AppointmentManager.java        | 209 ++++++++++-----------
 .../apache/openmeetings/web/app/UserManager.java   |  65 ++++---
 .../apache/openmeetings/web/room/wb/raw-player.js  |   5 +-
 .../apache/openmeetings/web/user/chat/raw-chat.js  |   8 +-
 7 files changed, 166 insertions(+), 160 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index 8fb1121..62912b0 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@ -231,7 +231,7 @@ public class KRoom {
 	}
 
 	public void startSharing(StreamProcessor processor, IClientManager cm, Client c, Optional<StreamDesc> osd, JSONObject msg, Activity a) {
-		StreamDesc sd = null;
+		StreamDesc sd;
 		KurentoHandler h = processor.getHandler();
 		if (sharingStarted.compareAndSet(false, true)) {
 			sharingUser.put("sid", c.getSid());
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index 0e57ef2..9ef4b05 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
 import org.apache.openmeetings.core.converter.IRecordingConverter;
@@ -165,7 +166,7 @@ public class StreamProcessor implements IStreamProcessor {
 	}
 
 	public void toggleActivity(Client c, Activity a) {
-		log.info("PARTICIPANT {}: trying to toggle activity {}", c, c.getRoomId());
+		log.info("PARTICIPANT {}: trying to toggle activity {}", c, a);
 
 		if (!activityAllowed(c, a, c.getRoom())) {
 			if (a == Activity.AUDIO || a == Activity.AUDIO_VIDEO) {
@@ -189,18 +190,18 @@ public class StreamProcessor implements IStreamProcessor {
 			c.toggle(a);
 			if (!isBroadcasting(c)) {
 				//close
-				boolean changed = false;
-				for (StreamDesc sd : c.getStreams()) {
-					KStream s = getByUid(sd.getUid());
-					if (StreamType.WEBCAM == sd.getType()) {
+				AtomicBoolean changed = new AtomicBoolean(false);
+				c.getStreams().stream()
+					.filter(sd -> StreamType.WEBCAM == sd.getType())
+					.forEach(sd -> {
+						KStream s = getByUid(sd.getUid());
 						if (s != null) {
 							s.stopBroadcast(this);
 						}
 						c.removeStream(sd.getUid());
-						changed = true;
-					}
-				}
-				if (changed) {
+						changed.set(true);
+					});
+				if (changed.get()) {
 					cm.update(c);
 					checkStreams(c.getRoomId());
 				}
@@ -218,13 +219,13 @@ public class StreamProcessor implements IStreamProcessor {
 				//FIXME TODO update interview buttons
 			} else {
 				//constraints were changed
-				for (StreamDesc sd : c.getStreams()) {
-					if (StreamType.WEBCAM == sd.getType()) {
+				c.getStreams().stream()
+					.filter(sd -> StreamType.WEBCAM == sd.getType())
+					.findFirst()
+					.ifPresent(sd -> {
 						sd.setActivities();
 						cm.update(c);
-						break;
-					}
-				}
+					});
 				WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.rightUpdated, c.getUid()));
 			}
 		}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index e9e17b0..3689520 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -119,12 +119,12 @@ public class WebSocketHelper {
 		if (publish) {
 			publish(new WsMessageRoomMsg(m));
 		}
-		log.debug("Sending WebSocket message: {} {}", m.getType(), m instanceof TextRoomMessage ? ((TextRoomMessage)m).getText() : "");
+		log.debug("Sending WebSocket message to room: {} {}", m.getType(), m instanceof TextRoomMessage ? ((TextRoomMessage)m).getText() : "");
 		sendRoom(m.getRoomId(), (t, c) -> t.sendMessage(m), null);
 	}
 
 	public static void sendServer(final RoomMessage m) {
-		log.debug("Sending WebSocket message: {}", m);
+		log.debug("Sending WebSocket message to All: {}", m);
 		sendAll(c -> {
 			try {
 				c.sendMessage(m);
@@ -176,7 +176,7 @@ public class WebSocketHelper {
 		if (publish) {
 			publish(new WsMessageAll(m));
 		}
-		log.debug("Sending WebSocket message: {}", m);
+		log.debug("Sending text WebSocket message to All: {}", m);
 		sendAll(c -> doSend(c, m, "ALL"));
 	}
 
@@ -201,7 +201,7 @@ public class WebSocketHelper {
 	}
 
 	protected static void sendRoom(final Long roomId, final JSONObject m, Predicate<Client> check, BiFunction<JSONObject, Client, JSONObject> func) {
-		log.debug("Sending WebSocket message: {}", m);
+		log.debug("Sending json WebSocket message to room: {}", m);
 		sendRoom(roomId, (t, c) -> doSend(t, c, m, func, "room"), check);
 	}
 
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
index 9ce8a31..839624c 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
@@ -276,141 +276,140 @@ public class AppointmentManager {
 	private boolean discoverCalendars(HttpClient client, HttpClientContext context, OmCalendar calendar) {
 		cleanupIdleConnections();
 
-		if (calendar.getSyncType() == SyncType.NONE) {
-			HttpPropfind propFindMethod = null;
-			String userPath = null, homepath = null;
+		if (calendar.getSyncType() != SyncType.NONE) {
+			return false;
+		}
+		HttpPropfind propFindMethod = null;
+		String userPath = null, homepath = null;
 
-			DavPropertyName curUserPrincipal = DavPropertyName.create("current-user-principal"),
-					calHomeSet = DavPropertyName.create("calendar-home-set", CalDAVConstants.NAMESPACE_CALDAV),
-					suppCalCompSet = DavPropertyName.create("supported-calendar-component-set", CalDAVConstants.NAMESPACE_CALDAV);
+		DavPropertyName curUserPrincipal = DavPropertyName.create("current-user-principal"),
+				calHomeSet = DavPropertyName.create("calendar-home-set", CalDAVConstants.NAMESPACE_CALDAV),
+				suppCalCompSet = DavPropertyName.create("supported-calendar-component-set", CalDAVConstants.NAMESPACE_CALDAV);
 
-			//Find out whether it's a calendar or if we can find the calendar-home or current-user url
-			try {
-				String path = calendar.getHref();
+		//Find out whether it's a calendar or if we can find the calendar-home or current-user url
+		try {
+			String path = calendar.getHref();
 
-				DavPropertyNameSet properties = new DavPropertyNameSet();
-				properties.add(curUserPrincipal);
-				properties.add(calHomeSet);
-				properties.add(DavPropertyName.RESOURCETYPE);
+			DavPropertyNameSet properties = new DavPropertyNameSet();
+			properties.add(curUserPrincipal);
+			properties.add(calHomeSet);
+			properties.add(DavPropertyName.RESOURCETYPE);
 
-				propFindMethod = new HttpPropfind(path, properties, CalDAVConstants.DEPTH_0);
-				HttpResponse httpResponse = client.execute(propFindMethod, context);
+			propFindMethod = new HttpPropfind(path, properties, CalDAVConstants.DEPTH_0);
+			HttpResponse httpResponse = client.execute(propFindMethod, context);
 
-				if (propFindMethod.succeeded(httpResponse)) {
-					for (MultiStatusResponse response : propFindMethod.getResponseBodyAsMultiStatus(httpResponse).getResponses()) {
-						DavPropertySet set = response.getProperties(SC_OK);
-						DavProperty<?> calhome = set.get(calHomeSet), curPrinci = set.get(curUserPrincipal),
-								resourcetype = set.get(DavPropertyName.RESOURCETYPE);
+			if (!propFindMethod.succeeded(httpResponse)) {
+				return false;
+			}
+			for (MultiStatusResponse response : propFindMethod.getResponseBodyAsMultiStatus(httpResponse).getResponses()) {
+				DavPropertySet set = response.getProperties(SC_OK);
+				DavProperty<?> calhome = set.get(calHomeSet), curPrinci = set.get(curUserPrincipal),
+						resourcetype = set.get(DavPropertyName.RESOURCETYPE);
+
+				if (checkCalendarResourceType(resourcetype)) {
+					//This is a calendar and thus initialize and return
+					return initCalendar(client, context, calendar);
+				}
 
-						if (checkCalendarResourceType(resourcetype)) {
-							//This is a calendar and thus initialize and return
-							return initCalendar(client, context, calendar);
-						}
+				//Else find all the calendars on the Principal and return.
+				if (calhome != null) {
+					//Calendar Home Path
+					homepath = getTextValuefromProperty(calhome);
+					break;
+				} else if (curPrinci != null) {
+					//Current User Principal Path
+					userPath = getTextValuefromProperty(curPrinci);
+					break;
+				}
+			}
 
-						//Else find all the calendars on the Principal and return.
-						if (calhome != null) {
-							//Calendar Home Path
-							homepath = getTextValuefromProperty(calhome);
-							break;
-						} else if (curPrinci != null) {
-							//Current User Principal Path
-							userPath = getTextValuefromProperty(curPrinci);
-							break;
-						}
-					}
-				} else {
+			if (homepath == null && userPath != null) {
+				//If calendar home path wasn't set, then we get it
+				DavPropertyNameSet props = new DavPropertyNameSet();
+				props.add(calHomeSet);
+				propFindMethod = new HttpPropfind(userPath, props, DavConstants.DEPTH_0);
+				httpResponse = client.execute(propFindMethod, context);
+
+				if (!propFindMethod.succeeded(httpResponse)) {
 					return false;
 				}
+				for (MultiStatusResponse response : propFindMethod.getResponseBodyAsMultiStatus(httpResponse).getResponses()) {
+					DavPropertySet set = response.getProperties(SC_OK);
+					DavProperty<?> calhome = set.get(calHomeSet);
 
-				if (homepath == null && userPath != null) {
-					//If calendar home path wasn't set, then we get it
-					DavPropertyNameSet props = new DavPropertyNameSet();
-					props.add(calHomeSet);
-					propFindMethod = new HttpPropfind(userPath, props, DavConstants.DEPTH_0);
-					httpResponse = client.execute(propFindMethod, context);
-
-					if (propFindMethod.succeeded(httpResponse)) {
-						for (MultiStatusResponse response : propFindMethod.getResponseBodyAsMultiStatus(httpResponse).getResponses()) {
-							DavPropertySet set = response.getProperties(SC_OK);
-							DavProperty<?> calhome = set.get(calHomeSet);
-
-							if (calhome != null) {
-								homepath = getTextValuefromProperty(calhome);
-								break;
-							}
-						}
-					} else {
-						return false;
+					if (calhome != null) {
+						homepath = getTextValuefromProperty(calhome);
+						break;
 					}
 				}
+			}
 
-				if (homepath != null) {
-					DavPropertyNameSet props = new DavPropertyNameSet();
-					props.add(DavPropertyName.RESOURCETYPE);
-					props.add(suppCalCompSet);
-					props.add(DavPropertyName.DISPLAYNAME);
-
-					propFindMethod = new HttpPropfind(homepath, props, DavConstants.DEPTH_1);
-
-					httpResponse = client.execute(propFindMethod, context);
+			if (homepath != null) {
+				DavPropertyNameSet props = new DavPropertyNameSet();
+				props.add(DavPropertyName.RESOURCETYPE);
+				props.add(suppCalCompSet);
+				props.add(DavPropertyName.DISPLAYNAME);
 
-					if (propFindMethod.succeeded(httpResponse)) {
-						boolean success = false;
+				propFindMethod = new HttpPropfind(homepath, props, DavConstants.DEPTH_1);
 
-						URI resourceUri = propFindMethod.getURI();
-						String host = resourceUri.getScheme() + "://" + resourceUri.getHost() + ((resourceUri.getPort() != -1)? ":" + resourceUri.getPort() : "");
-						for (MultiStatusResponse response : propFindMethod.getResponseBodyAsMultiStatus(httpResponse).getResponses()) {
-							boolean isVevent = false, isCalendar;
+				httpResponse = client.execute(propFindMethod, context);
 
-							DavPropertySet set = response.getProperties(SC_OK);
-							DavProperty<?> p = set.get(suppCalCompSet),
-									resourcetype = set.get(DavPropertyName.RESOURCETYPE),
-									displayname = set.get(DavPropertyName.DISPLAYNAME);
+				if (propFindMethod.succeeded(httpResponse)) {
+					boolean success = false;
 
-							isCalendar = checkCalendarResourceType(resourcetype);
+					URI resourceUri = propFindMethod.getURI();
+					String host = resourceUri.getScheme() + "://" + resourceUri.getHost() + ((resourceUri.getPort() != -1)? ":" + resourceUri.getPort() : "");
+					for (MultiStatusResponse response : propFindMethod.getResponseBodyAsMultiStatus(httpResponse).getResponses()) {
+						boolean isVevent = false, isCalendar;
 
-							if (p != null) {
-								for (Object o : (Collection<?>) p.getValue()) {
-									if (o instanceof Element) {
-										Element e = (Element) o;
-										String name = DomUtil.getAttribute(e, "name", null);
-										if ("VEVENT".equals(name)) {
-											isVevent = true;
-										}
+						DavPropertySet set = response.getProperties(SC_OK);
+						DavProperty<?> p = set.get(suppCalCompSet),
+								resourcetype = set.get(DavPropertyName.RESOURCETYPE),
+								displayname = set.get(DavPropertyName.DISPLAYNAME);
+
+						isCalendar = checkCalendarResourceType(resourcetype);
+
+						if (p != null) {
+							for (Object o : (Collection<?>) p.getValue()) {
+								if (o instanceof Element) {
+									Element e = (Element) o;
+									String name = DomUtil.getAttribute(e, "name", null);
+									if ("VEVENT".equals(name)) {
+										isVevent = true;
 									}
 								}
 							}
+						}
 
-							if (isCalendar && isVevent) {
-								success = true;
-								//Get New Calendar
-								OmCalendar tempCalendar = new OmCalendar();
+						if (isCalendar && isVevent) {
+							success = true;
+							//Get New Calendar
+							OmCalendar tempCalendar = new OmCalendar();
 
-								if (displayname != null) {
-									tempCalendar.setTitle(displayname.getValue().toString());
-								}
+							if (displayname != null) {
+								tempCalendar.setTitle(displayname.getValue().toString());
+							}
 
-								tempCalendar.setHref(host + response.getHref());
+							tempCalendar.setHref(host + response.getHref());
 
-								tempCalendar.setDeleted(false);
-								tempCalendar.setOwner(calendar.getOwner());
+							tempCalendar.setDeleted(false);
+							tempCalendar.setOwner(calendar.getOwner());
 
-								calendarDao.update(tempCalendar);
-								initCalendar(client, context, tempCalendar);
-							}
+							calendarDao.update(tempCalendar);
+							initCalendar(client, context, tempCalendar);
 						}
-						return success;
 					}
+					return success;
 				}
+			}
 
-			} catch (IOException e) {
-				log.error("Error executing PROPFIND Method, during testConnection.", e);
-			} catch (Exception e) {
-				log.error("Severe Error in executing PROPFIND Method, during testConnection.", e);
-			} finally {
-				if (propFindMethod != null) {
-					propFindMethod.reset();
-				}
+		} catch (IOException e) {
+			log.error("Error executing PROPFIND Method, during testConnection.", e);
+		} catch (Exception e) {
+			log.error("Severe Error in executing PROPFIND Method, during testConnection.", e);
+		} finally {
+			if (propFindMethod != null) {
+				propFindMethod.reset();
 			}
 		}
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
index 1d306dc..4e0769e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
@@ -50,6 +50,7 @@ import org.apache.openmeetings.service.mail.EmailManager;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.openmeetings.util.crypt.ICrypt;
+import org.apache.wicket.IConverterLocator;
 import org.apache.wicket.core.util.lang.PropertyResolver;
 import org.apache.wicket.core.util.lang.PropertyResolverConverter;
 import org.apache.wicket.util.string.Strings;
@@ -254,33 +255,7 @@ public class UserManager implements IUserManager {
 			fUser.getGroupUsers().add(new GroupUser(groupDao.get(getDefaultGroup()), fUser));
 			for (Map.Entry<String, String> entry : user.getUserData().entrySet()) {
 				final String expression = entry.getKey();
-				PropertyResolver.setValue(expression, fUser, entry.getValue(), new PropertyResolverConverter(null, null) {
-					private static final long serialVersionUID = 1L;
-
-					@SuppressWarnings("unchecked")
-					@Override
-					public <T> T convert(Object object, Class<T> clz) {
-						if ("languageId".equals(expression) && Long.class.isAssignableFrom(clz)) {
-							Long language = 1L;
-							String locale = (String)object;
-							if (locale != null) {
-								Locale loc = Locale.forLanguageTag(locale);
-								if (loc != null) {
-									language = getLanguage(loc);
-									fUser.setLanguageId(language);
-									fUser.getAddress().setCountry(loc.getCountry());
-								}
-							}
-							return (T)language;
-						}
-						return (T)object;
-					}
-
-					@Override
-					protected <C> String convertToString(C object, Locale locale) {
-						return String.valueOf(object);
-					}
-				});
+				PropertyResolver.setValue(expression, fUser, entry.getValue(), new LanguageConverter(expression, fUser, null, null));
 			}
 			fUser.setShowContactDataToContacts(true);
 			u = fUser;
@@ -291,4 +266,40 @@ public class UserManager implements IUserManager {
 
 		return u;
 	}
+
+	private class LanguageConverter extends PropertyResolverConverter {
+		private static final long serialVersionUID = 1L;
+		final String expression;
+		final User fUser;
+
+		public LanguageConverter(final String expression, final User fUser, IConverterLocator converterSupplier, Locale locale) {
+			super(converterSupplier, locale);
+			this.expression = expression;
+			this.fUser = fUser;
+		}
+
+		@SuppressWarnings("unchecked")
+		@Override
+		public <T> T convert(Object object, Class<T> clz) {
+			if ("languageId".equals(expression) && Long.class.isAssignableFrom(clz)) {
+				Long language = 1L;
+				String locale = (String)object;
+				if (locale != null) {
+					Locale loc = Locale.forLanguageTag(locale);
+					if (loc != null) {
+						language = getLanguage(loc);
+						fUser.setLanguageId(language);
+						fUser.getAddress().setCountry(loc.getCountry());
+					}
+				}
+				return (T)language;
+			}
+			return (T)object;
+		}
+
+		@Override
+		protected <C> String convertToString(C object, Locale locale) {
+			return String.valueOf(object);
+		}
+	}
 }
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-player.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-player.js
index 83e16d4..ab64381 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-player.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-player.js
@@ -211,9 +211,8 @@ var Player = (function() {
 				if (group.status.paused) {
 					video.getElement().pause();
 				} else {
-					const prom = video.getElement().play();
-					if (prom !== undefined) {
-						prom.then(function() {
+					video.getElement().play()
+						.then(function() {
 							fabric.util.requestAnimFrame(render);
 						}).catch(function(err) {
 							if ('NotAllowedError' === err.name) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js
index 95d4ec2..b79f84f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js
@@ -255,12 +255,8 @@ var Chat = function() {
 			if (notify) {
 				ctrl.addClass('ui-state-highlight');
 				if (p.is(':visible') && !muted) {
-					const playPromise = audio.play();
-
-					// In browsers that don’t yet support this functionality,
-					// playPromise won’t be defined.
-					if (playPromise !== undefined) {
-						playPromise.then(function() {
+					audio.play()
+						.then(function() {
 							// Automatic playback started!
 						}).catch(function() {
 							// Automatic playback failed.