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 ef75191  [OPENMEETINGS-2042] minor issues reported by Idea are 
addressed
ef75191 is described below

commit ef751910d0d8aa1cd64658f45e2c59fe37464652
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Wed May 22 09:34:42 2019 +0700

    [OPENMEETINGS-2042] minor issues reported by Idea are addressed
---
 .../openmeetings/core/converter/BaseConverter.java | 58 ++++++++---------
 .../core/converter/ImageConverter.java             | 36 +++++-----
 .../openmeetings/core/ldap/LdapLoginManager.java   | 36 +++++-----
 .../db/dao/calendar/AppointmentDao.java            | 32 ++++-----
 .../apache/openmeetings/db/dao/room/PollDao.java   | 21 +++---
 .../openmeetings/db/dao/user/UserContactDao.java   | 21 +++---
 .../db/entity/basic/Configuration.java             | 14 ++--
 .../db/entity/room/RoomPollAnswer.java             | 15 ++---
 .../openmeetings/db/entity/server/OAuthServer.java | 17 +++--
 .../apache/openmeetings/backup/BackupImport.java   |  2 +-
 .../org/apache/openmeetings/screenshare/Core.java  | 31 +++++----
 .../openmeetings/screenshare/RTMPSScreenShare.java |  2 +-
 .../screenshare/RTMPTSScreenShare.java             |  2 +-
 .../openmeetings/screenshare/RTMPTScreenShare.java |  2 +-
 .../calendar/caldav/handler/CalendarHandler.java   |  6 +-
 .../openmeetings/util/process/ProcessHelper.java   | 12 ++--
 .../util/process/ProcessResultList.java            |  6 +-
 .../apache/openmeetings/web/app/Application.java   | 76 +++++++++++-----------
 .../web/common/tree/FileTreePanel.java             | 55 ++++++++--------
 .../openmeetings/web/common/tree/FolderPanel.java  | 27 ++++----
 .../apache/openmeetings/web/pages/MainPage.java    |  2 +-
 .../web/pages/auth/ForgetPasswordDialog.java       | 32 +++++----
 .../web/pages/auth/KickMessageDialog.java          |  2 +-
 .../web/room/activities/ActivitiesPanel.java       | 21 +++---
 .../openmeetings/web/room/activities/Activity.java | 10 +--
 .../openmeetings/web/room/menu/PollsSubMenu.java   | 16 ++---
 .../openmeetings/web/room/poll/VoteDialog.java     | 23 ++++---
 .../web/room/sidebar/icon/ClientIcon.java          | 18 ++---
 .../user/calendar/CalendarFunctionsBehavior.java   |  6 +-
 .../web/user/calendar/CalendarPanel.java           | 39 +++++------
 .../openmeetings/web/user/chat/ChatForm.java       | 31 +++++----
 .../web/user/profile/MessagesContactsPanel.java    | 35 +++++-----
 .../openmeetings/web/user/record/VideoInfo.java    | 33 +++++-----
 .../web/util/ProfileImageResourceReference.java    | 31 +++++----
 .../apache/openmeetings/AbstractWicketTester.java  | 32 +++++----
 .../test/selenium/AbstractTestDefaults.java        | 10 +--
 .../webservice/AbstractWebServiceTest.java         | 50 +++++++-------
 .../openmeetings/webservice/NetTestWebService.java | 15 ++---
 38 files changed, 423 insertions(+), 454 deletions(-)

diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
index 01fd128..c058a69 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
@@ -18,30 +18,6 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.commons.io.FileUtils.copyFile;
-import static org.apache.commons.lang3.math.NumberUtils.toInt;
-import static org.apache.openmeetings.util.CalendarHelper.formatMillis;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
-import static org.apache.openmeetings.util.OmFileHelper.getPublicDir;
-import static org.apache.openmeetings.util.OmFileHelper.getRecordingChunk;
-import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_FFMPEG;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_IMAGEMAGIC;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_SOX;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getAudioBitrate;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getAudioRate;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getVideoPreset;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingChunkDao;
@@ -58,6 +34,30 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static org.apache.commons.io.FileUtils.copyFile;
+import static org.apache.commons.lang3.math.NumberUtils.toInt;
+import static org.apache.openmeetings.util.CalendarHelper.formatMillis;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
+import static org.apache.openmeetings.util.OmFileHelper.getPublicDir;
+import static org.apache.openmeetings.util.OmFileHelper.getRecordingChunk;
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_FFMPEG;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_IMAGEMAGIC;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_SOX;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getAudioBitrate;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getAudioRate;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getVideoPreset;
+
 public abstract class BaseConverter {
        private static final Logger log = 
LoggerFactory.getLogger(BaseConverter.class);
        private static final Pattern p = Pattern.compile("\\d{2,5}(x)\\d{2,5}");
@@ -270,8 +270,6 @@ public abstract class BaseConverter {
 
                                if (outputWav.exists() && outputWav.length() != 
0) {
                                        // Strip Wave to Full Length
-                                       File outputGapFullWav = outputWav;
-
                                        // Strip Wave to Full Length
                                        String hashFileFullName = 
chunk.getStreamName() + "_FULL_WAVE.wav";
                                        File outputFullWav = new 
File(streamFolder, hashFileFullName);
@@ -282,7 +280,7 @@ public abstract class BaseConverter {
                                        // Calculate delta at ending
                                        double endPad = 
diffSeconds(recording.getRecordEnd(), chunk.getEnd());
 
-                                       addSoxPad(logs, "addStartEndToAudio", 
startPad, endPad, outputGapFullWav, outputFullWav);
+                                       addSoxPad(logs, "addStartEndToAudio", 
startPad, endPad, outputWav, outputFullWav);
 
                                        // Fix for Audio Length - Invalid Audio 
Length in Recorded Files
                                        // Audio must match 100% the Video
@@ -354,10 +352,10 @@ public abstract class BaseConverter {
        protected static Dimension getDimension(String txt) {
                Matcher matcher = p.matcher(txt);
 
-               while (matcher.find()) {
+               if (matcher.find()) {
                        String foundResolution = txt.substring(matcher.start(), 
matcher.end());
-                       String[] resultions = foundResolution.split("x");
-                       return new Dimension(toInt(resultions[0]), 
toInt(resultions[1]));
+                       String[] resolutions = foundResolution.split("x");
+                       return new Dimension(toInt(resolutions[0]), 
toInt(resolutions[1]));
                }
 
                return new Dimension(100, 100); // will return 100x100 for 
non-video to be able to play
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
index 24cb01a..aafc523 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
@@ -18,23 +18,6 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.commons.io.FileUtils.copyFile;
-import static org.apache.openmeetings.util.OmFileHelper.DOC_PAGE_PREFIX;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
-import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
-import static org.apache.openmeetings.util.OmFileHelper.PROFILE_FILE_NAME;
-import static 
org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_DPI;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_QUALITY;
-import static org.apache.openmeetings.util.process.ProcessResult.ZERO;
-import static org.apache.tika.metadata.HttpHeaders.CONTENT_TYPE;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
@@ -56,6 +39,23 @@ import 
org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.xml.sax.helpers.DefaultHandler;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+
+import static org.apache.commons.io.FileUtils.copyFile;
+import static org.apache.openmeetings.util.OmFileHelper.DOC_PAGE_PREFIX;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
+import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
+import static org.apache.openmeetings.util.OmFileHelper.PROFILE_FILE_NAME;
+import static 
org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_DPI;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_QUALITY;
+import static org.apache.openmeetings.util.process.ProcessResult.ZERO;
+import static org.apache.tika.metadata.HttpHeaders.CONTENT_TYPE;
+
 @Component
 public class ImageConverter extends BaseConverter {
        private static final Logger log = 
LoggerFactory.getLogger(ImageConverter.class);
@@ -146,7 +146,7 @@ public class ImageConverter extends BaseConverter {
         * @param in - input file
         * @param out - output file
         * @return - conversion result
-        * @throws IOException
+        * @throws IOException - if any Io exception occurs while processing
         *
         */
        private ProcessResult convertSinglePng(File in, File out) throws 
IOException {
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
index 49a9fdf..372bf23 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
@@ -18,23 +18,6 @@
  */
 package org.apache.openmeetings.core.ldap;
 
-import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
-import static org.apache.openmeetings.db.util.LocaleHelper.validateCountry;
-import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
-import static org.apache.openmeetings.util.OmException.BAD_CREDENTIALS;
-import static org.apache.openmeetings.util.OmException.UNKNOWN;
-import static org.apache.openmeetings.util.OmFileHelper.loadLdapConf;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultGroup;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-
 import org.apache.directory.api.ldap.model.cursor.CursorException;
 import org.apache.directory.api.ldap.model.cursor.CursorLdapReferralException;
 import org.apache.directory.api.ldap.model.cursor.EntryCursor;
@@ -68,6 +51,23 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+
+import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
+import static org.apache.openmeetings.db.util.LocaleHelper.validateCountry;
+import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
+import static org.apache.openmeetings.util.OmException.BAD_CREDENTIALS;
+import static org.apache.openmeetings.util.OmException.UNKNOWN;
+import static org.apache.openmeetings.util.OmFileHelper.loadLdapConf;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultGroup;
+
 /**
  * Management of optional LDAP Login
  *
@@ -146,7 +146,7 @@ public class LdapLoginManager {
                        alias = defaultAlias;
                }
                Attribute a = Strings.isEmpty(alias) ? null : entry.get(alias);
-               return a == null ? null : a;
+               return a;
        }
 
        private static String getStringAttr(Properties config, Entry entry, 
String aliasCode, String defaultAlias) throws 
LdapInvalidAttributeValueException {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
index 33c707e..ebc2cef 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
@@ -18,21 +18,6 @@
  */
 package org.apache.openmeetings.db.dao.calendar;
 
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CALENDAR_ROOM_CAPACITY;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.persistence.TypedQuery;
-
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.room.IInvitationManager;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -47,6 +32,20 @@ import 
org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.TypedQuery;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CALENDAR_ROOM_CAPACITY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
+
 @Repository
 @Transactional
 public class AppointmentDao {
@@ -259,9 +258,6 @@ public class AppointmentDao {
         * @return Returns <code>-1</code> if the there was an error executing 
the query,
         * otherwise returns the number of updated rows.
         * as described here {@link Query#executeUpdate()}
-        *
-        * @param calId - id of the calendar
-        * @return - number of deleted items
         */
        public int deletebyCalendar(Long calId) {
                return em.createNamedQuery("deleteAppointmentsbyCalendar", 
Appointment.class)
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
index f17ffc3..316b6ad 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
@@ -18,15 +18,6 @@
  */
 package org.apache.openmeetings.db.dao.room;
 
-import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
 import org.slf4j.Logger;
@@ -34,6 +25,14 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import java.util.Date;
+import java.util.List;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
+
 @Repository
 @Transactional
 public class PollDao {
@@ -108,8 +107,8 @@ public class PollDao {
                                .getSingleResult() > 0;
        }
 
-       public boolean hasVoted(Long roomId, Long userId) {
-               return !em.createNamedQuery("hasVoted", RoomPollAnswer.class)
+       public boolean notVoted(Long roomId, Long userId) {
+               return em.createNamedQuery("notVoted", RoomPollAnswer.class)
                                .setParameter(PARAM_ROOMID, roomId)
                                .setParameter(PARAM_USER_ID, userId)
                                .getResultList().isEmpty();
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
index 4d99c12..bbf93b3 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
@@ -18,16 +18,6 @@
  */
 package org.apache.openmeetings.db.dao.user;
 
-import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
-
 import org.apache.openmeetings.db.entity.user.UserContact;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,6 +25,15 @@ import 
org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import java.util.Date;
+import java.util.List;
+
+import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
+
 @Repository
 @Transactional
 public class UserContactDao {
@@ -88,7 +87,7 @@ public class UserContactDao {
 
        public boolean isContact(Long userId, Long ownerId) {
                UserContact c = get(userId, ownerId);
-               return c == null ? false : !c.isPending();
+               return c != null && !c.isPending();
        }
 
        public List<UserContact> get(long ownerId, long first, long count) {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
index 6d17e8d..1b031a7 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
@@ -18,7 +18,11 @@
  */
 package org.apache.openmeetings.db.entity.basic;
 
-import static java.lang.Boolean.TRUE;
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -32,11 +36,7 @@ import javax.persistence.ManyToOne;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
-import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.HistoricalEntity;
-import org.apache.openmeetings.db.entity.user.User;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.Root;
+import static java.lang.Boolean.TRUE;
 
 @Entity
 @NamedQuery(name = "forceGetConfigurationByKey", query = "SELECT c FROM 
Configuration c WHERE c.key LIKE :key")
@@ -158,7 +158,7 @@ public class Configuration extends HistoricalEntity {
        }
 
        public boolean getValueB() {
-               return value == null ? false : 
TRUE.equals(Boolean.valueOf(value));
+               return value != null && TRUE.equals(Boolean.valueOf(value));
        }
 
        public void setValueB(boolean value) {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
index cd55676..acfc93c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
@@ -18,7 +18,11 @@
  */
 package org.apache.openmeetings.db.entity.room;
 
-import java.util.Date;
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -30,15 +34,10 @@ import javax.persistence.JoinColumn;
 import javax.persistence.NamedQuery;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
-
-import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
-import org.apache.openmeetings.db.entity.user.User;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.Root;
+import java.util.Date;
 
 @Entity
-@NamedQuery(name = "hasVoted", query = "SELECT rpa FROM RoomPollAnswer rpa 
WHERE rpa.roomPoll.room.id = :roomId "
+@NamedQuery(name = "notVoted", query = "SELECT rpa FROM RoomPollAnswer rpa 
WHERE rpa.roomPoll.room.id = :roomId "
                + "AND rpa.votedUser.id = :userId AND rpa.roomPoll.archived = 
false")
 @Table(name = "room_poll_answer")
 @Root(name="roompollanswer")
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
index e360f00..ec2d36d 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
@@ -18,8 +18,10 @@
  */
 package org.apache.openmeetings.db.entity.server;
 
-import java.util.LinkedHashMap;
-import java.util.Map;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.ElementMap;
+import org.simpleframework.xml.Root;
 
 import javax.persistence.CollectionTable;
 import javax.persistence.Column;
@@ -35,11 +37,8 @@ import javax.persistence.JoinColumn;
 import javax.persistence.MapKeyColumn;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
-
-import org.apache.openmeetings.db.entity.HistoricalEntity;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.ElementMap;
-import org.simpleframework.xml.Root;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
 @Entity
 @Table(name = "oauth_server")
@@ -248,10 +247,10 @@ public class OAuthServer extends HistoricalEntity {
        }
 
        public enum RequestTokenMethod {
-               POST, GET;
+               POST, GET
        }
 
        public enum RequestInfoMethod {
-               POST, GET, HEADER;
+               POST, GET, HEADER
        }
 }
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index e0d6894..6a79651 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -1072,7 +1072,7 @@ public class BackupImport {
                        if (listNodeName.equals(listNode1.getName())) {
                                InputNode item1 = listNode1.getNext();
                                while (item1 != null) {
-                                       T o = ser.read(clazz, item1, false);;
+                                       T o = ser.read(clazz, item1, false);
                                        if (consumer != null) {
                                                consumer.accept(listNode2, o);
                                        }
diff --git 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
index 8da2c0a..bd8c152 100644
--- 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
+++ 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
@@ -18,20 +18,6 @@
  */
 package org.apache.openmeetings.screenshare;
 
-import static java.lang.Boolean.TRUE;
-import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.screenshare.util.Util.getQurtzProps;
-import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.awt.MouseInfo;
-import java.awt.Point;
-import java.net.ConnectException;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.LinkedBlockingQueue;
-
 import org.apache.openmeetings.screenshare.gui.ScreenDimensions;
 import org.apache.openmeetings.screenshare.gui.ScreenSharerFrame;
 import org.apache.openmeetings.screenshare.job.RemoteJob;
@@ -56,6 +42,20 @@ import org.red5.server.net.rtmp.status.StatusCodes;
 import org.slf4j.Logger;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 
+import java.awt.MouseInfo;
+import java.awt.Point;
+import java.net.ConnectException;
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.LinkedBlockingQueue;
+
+import static java.lang.Boolean.TRUE;
+import static java.util.UUID.randomUUID;
+import static org.apache.openmeetings.screenshare.util.Util.getQurtzProps;
+import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
+import static org.slf4j.LoggerFactory.getLogger;
+
 public class Core implements IPendingServiceCallback, INetStreamEventHandler {
        private static final Logger log = getLogger(Core.class);
        private static final String STATUS_EXC = "Exception: ";
@@ -174,8 +174,7 @@ public class Core implements IPendingServiceCallback, 
INetStreamEventHandler {
                                break;
                        case rtmps:
                                if (nativeSsl) {
-                                       RTMPSScreenShare client = new 
RTMPSScreenShare(this);
-                                       instance = client;
+                                       instance = new RTMPSScreenShare(this);
                                } else {
                                        instance = new RTMPTSScreenShare(this);
                                }
diff --git 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java
 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java
index 068a417..b431c79 100644
--- 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java
+++ 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPSScreenShare.java
@@ -33,7 +33,7 @@ public class RTMPSScreenShare extends RTMPSClient implements 
IScreenShare {
 
        public RTMPSScreenShare(Core core) {
                this.core = core;
-       };
+       }
 
        @Override
        public void connectionOpened(RTMPConnection conn) {
diff --git 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java
 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java
index 11431f4..89e2b73 100644
--- 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java
+++ 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTSScreenShare.java
@@ -33,7 +33,7 @@ public class RTMPTSScreenShare extends RTMPTSClient 
implements IScreenShare {
 
        public RTMPTSScreenShare(Core core) {
                this.core = core;
-       };
+       }
 
        @Override
        public void connectionOpened(RTMPConnection conn) {
diff --git 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java
 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java
index 5b4bee8..e190281 100644
--- 
a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java
+++ 
b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPTScreenShare.java
@@ -33,7 +33,7 @@ public class RTMPTScreenShare extends RTMPTClient implements 
IScreenShare {
 
        public RTMPTScreenShare(Core core) {
                this.core = core;
-       };
+       }
 
        @Override
        public void connectionOpened(RTMPConnection conn) {
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CalendarHandler.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CalendarHandler.java
index 341c449..9c3a96e 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CalendarHandler.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CalendarHandler.java
@@ -43,7 +43,7 @@ public interface CalendarHandler {
         * created are the same as the owner of the calendar.
         * @return Returns the updated calendar after updation of all events.
         */
-       public OmCalendar syncItems();
+       OmCalendar syncItems();
 
        /**
         * Function for create/updating multiple appointment on the server.
@@ -51,12 +51,12 @@ public interface CalendarHandler {
         * @param appointment Appointment to create/update.
         * @return <code>True</code> when the updation is a success else 
<code>False</code>
         */
-       public boolean updateItem(Appointment appointment);
+       boolean updateItem(Appointment appointment);
 
        /**
         * Delete Appointment on the server.
         * @param appointment Appointment to delete
         * @return <code>True</code> when the deletion is a success else 
<code>False</code>
         */
-       public boolean deleteItem(Appointment appointment);
+       boolean deleteItem(Appointment appointment);
 }
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
index a6eba61..8b6f7bd 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
@@ -18,9 +18,8 @@
  */
 package org.apache.openmeetings.util.process;
 
-import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.apache.openmeetings.util.CalendarHelper.formatMillis;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getExtProcessTtl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -30,8 +29,9 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.openmeetings.util.CalendarHelper.formatMillis;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getExtProcessTtl;
 
 public class ProcessHelper {
        public static final Logger log = 
LoggerFactory.getLogger(ProcessHelper.class);
@@ -49,7 +49,7 @@ public class ProcessHelper {
 
                @Override
                public void run() {
-                       try (BufferedReader br = new BufferedReader(new 
InputStreamReader(is, UTF_8));) {
+                       try (BufferedReader br = new BufferedReader(new 
InputStreamReader(is, UTF_8))) {
                                String line = br.readLine();
                                while (run && line != null) {
                                        output.append(line).append('\n');
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java
index 52677f4..997e142 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java
@@ -36,9 +36,9 @@ public class ProcessResultList {
        }
 
        /**
-        * returns true if there was an job with exitValue "-1"
+        * checks if process was successful
         *
-        * @return
+        * @return true if there was an job with exitValue "-1"
         */
        public boolean hasError() {
                for (ProcessResult res : jobs) {
@@ -52,7 +52,7 @@ public class ProcessResultList {
        /**
         * converts all job results into a human readable format
         *
-        * @return
+        * @return - string representation of the job
         */
        public String getLogMessage() {
                StringBuilder logMessage = new StringBuilder();
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index e5247bc..cb5735e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -18,36 +18,14 @@
  */
 package org.apache.openmeetings.web.app;
 
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getApplicationName;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getChromeExtensionUrl;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getContentSecurityPolicy;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getExtProcessTtl;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getxFrameOptions;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setExtProcessTtl;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setInitComplete;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
-import static org.apache.openmeetings.web.pages.HashPage.INVITATION_HASH;
-import static 
org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
-import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
-import static 
org.wicketstuff.dashboard.DashboardContextInitializer.DASHBOARD_CONTEXT_KEY;
-
-import java.io.File;
-import java.net.UnknownHostException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.websocket.WebSocketContainer;
-
+import com.hazelcast.config.XmlConfigBuilder;
+import com.hazelcast.core.Hazelcast;
+import com.hazelcast.core.HazelcastInstance;
+import com.hazelcast.core.ITopic;
+import com.hazelcast.core.Member;
+import com.hazelcast.core.MemberAttributeEvent;
+import com.hazelcast.core.MembershipEvent;
+import com.hazelcast.core.MembershipListener;
 import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -132,14 +110,34 @@ import org.wicketstuff.dashboard.web.DashboardContext;
 import org.wicketstuff.dashboard.web.DashboardSettings;
 import org.wicketstuff.datastores.hazelcast.HazelcastDataStore;
 
-import com.hazelcast.config.XmlConfigBuilder;
-import com.hazelcast.core.Hazelcast;
-import com.hazelcast.core.HazelcastInstance;
-import com.hazelcast.core.ITopic;
-import com.hazelcast.core.Member;
-import com.hazelcast.core.MemberAttributeEvent;
-import com.hazelcast.core.MembershipEvent;
-import com.hazelcast.core.MembershipListener;
+import javax.websocket.WebSocketContainer;
+import java.io.File;
+import java.net.UnknownHostException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getApplicationName;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getChromeExtensionUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getContentSecurityPolicy;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getExtProcessTtl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getxFrameOptions;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setExtProcessTtl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setInitComplete;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
+import static org.apache.openmeetings.web.pages.HashPage.INVITATION_HASH;
+import static 
org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
+import static 
org.wicketstuff.dashboard.DashboardContextInitializer.DASHBOARD_CONTEXT_KEY;
 
 @Component
 public class Application extends AuthenticatedWebApplication implements 
IApplication {
@@ -382,7 +380,7 @@ public class Application extends 
AuthenticatedWebApplication implements IApplica
        }
 
        public static boolean isInvaldSession(String sessionId) {
-               return sessionId == null ? false : 
get().getInvalidSessions().containsKey(sessionId);
+               return sessionId != null && 
get().getInvalidSessions().containsKey(sessionId);
        }
 
        public static void removeInvalidSession(String sessionId) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index bc66efe..66582a2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
@@ -18,24 +18,14 @@
  */
 package org.apache.openmeetings.web.common.tree;
 
-import static java.util.UUID.randomUUID;
-import static org.apache.commons.text.StringEscapeUtils.escapeEcmaScript;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
-import static org.apache.wicket.util.time.Duration.NONE;
-
-import java.io.File;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.core.ajax.IJQueryAjaxAware;
+import com.googlecode.wicket.jquery.core.ajax.JQueryAjaxBehavior;
+import com.googlecode.wicket.jquery.ui.form.button.AjaxSplitButton;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.DroppableBehavior;
+import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
@@ -65,14 +55,23 @@ import 
org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.resource.FileSystemResource;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.core.JQueryBehavior;
-import com.googlecode.wicket.jquery.core.Options;
-import com.googlecode.wicket.jquery.core.ajax.IJQueryAjaxAware;
-import com.googlecode.wicket.jquery.core.ajax.JQueryAjaxBehavior;
-import com.googlecode.wicket.jquery.ui.form.button.AjaxSplitButton;
-import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
-import com.googlecode.wicket.jquery.ui.interaction.droppable.DroppableBehavior;
-import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
+import java.io.File;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import static java.util.UUID.randomUUID;
+import static org.apache.commons.text.StringEscapeUtils.escapeEcmaScript;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
+import static org.apache.wicket.util.time.Duration.NONE;
 
 public abstract class FileTreePanel extends Panel {
        private static final long serialVersionUID = 1L;
@@ -292,8 +291,8 @@ public abstract class FileTreePanel extends Panel {
                }
        }
 
-       public boolean isReadOnly() {
-               return readOnly;
+       public boolean isEditable() {
+               return !readOnly;
        }
 
        protected abstract void update(AjaxRequestTarget target, BaseFileItem 
f);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
index fcb269c..66dd8b7 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
@@ -18,11 +18,13 @@
  */
 package org.apache.openmeetings.web.common.tree;
 
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
-
-import java.util.Map.Entry;
-
+import com.github.openjson.JSONObject;
+import com.googlecode.wicket.jquery.core.IJQueryWidget.JQueryWidget;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.interaction.draggable.DraggableBehavior;
+import 
com.googlecode.wicket.jquery.ui.interaction.draggable.IDraggableListener;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.DroppableBehavior;
+import 
com.googlecode.wicket.jquery.ui.interaction.droppable.IDroppableListener;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
@@ -46,13 +48,10 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 
-import com.github.openjson.JSONObject;
-import com.googlecode.wicket.jquery.core.IJQueryWidget.JQueryWidget;
-import com.googlecode.wicket.jquery.core.Options;
-import com.googlecode.wicket.jquery.ui.interaction.draggable.DraggableBehavior;
-import 
com.googlecode.wicket.jquery.ui.interaction.draggable.IDraggableListener;
-import com.googlecode.wicket.jquery.ui.interaction.droppable.DroppableBehavior;
-import 
com.googlecode.wicket.jquery.ui.interaction.droppable.IDroppableListener;
+import java.util.Map.Entry;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
 
 public class FolderPanel extends Panel implements IDraggableListener, 
IDroppableListener {
        private static final long serialVersionUID = 1L;
@@ -77,7 +76,7 @@ public class FolderPanel extends Panel implements 
IDraggableListener, IDroppable
        protected void onInitialize() {
                super.onInitialize();
                final BaseFileItem f = (BaseFileItem)getDefaultModelObject();
-               boolean editable = !treePanel.isReadOnly() && !f.isReadOnly();
+               boolean editable = treePanel.isEditable() && !f.isReadOnly();
                final String selector = JQueryWidget.getSelector(this);
                if (f.getType() == Type.Folder && editable) {
                        add(new DroppableBehavior(
@@ -87,7 +86,7 @@ public class FolderPanel extends Panel implements 
IDraggableListener, IDroppable
                                                .set("accept", 
Options.asString(getDefaultModelObject() instanceof Recording ? ".recorditem" : 
".fileitem"))
                                        , this));
                }
-               if (f.getId() != null && !treePanel.isReadOnly()) {
+               if (f.getId() != null && treePanel.isEditable()) {
                        add(new DraggableBehavior(
                                        selector
                                        , new Options()
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
index 22f75f4..04026f5 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
@@ -97,7 +97,7 @@ public class MainPage extends BaseInitedPage {
        @Override
        protected void onParameterArrival(IRequestParameters params, 
AjaxRequestTarget target) {
                log.debug("MainPage::onParameterArrival");
-               OmUrlFragment _f = getUrlFragment(params);;
+               OmUrlFragment _f = getUrlFragment(params);
                if (_f != null) {
                        uf = _f;
                }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index fae568a..aa9370d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -18,15 +18,11 @@
  */
 package org.apache.openmeetings.web.pages.auth;
 
-import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
-import static org.apache.openmeetings.web.app.Application.urlForPage;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
 import org.apache.openmeetings.core.mail.MailHandler;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
@@ -55,11 +51,14 @@ import org.apache.wicket.validation.Validatable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.googlecode.wicket.jquery.core.Options;
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
-import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.UUID.randomUUID;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
+import static org.apache.openmeetings.web.app.Application.urlForPage;
 
 public class ForgetPasswordDialog extends AbstractFormDialog<String> {
        private static final Logger log = 
LoggerFactory.getLogger(ForgetPasswordDialog.class);
@@ -229,9 +228,8 @@ public class ForgetPasswordDialog extends 
AbstractFormDialog<String> {
         * reset a username by a given mail oder login by sending a mail to the
         * registered EMail-Address
         *
-        * @param email
-        * @param username
-        * @param appLink
+        * @param email - email of the user
+        * @param username - username of the user
         * @return <code>true</code> in case reset was successful, 
<code>false</code> otherwise
         */
        private boolean resetUser(String email, String username) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
index f2dad62..f247526 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
@@ -38,7 +38,7 @@ public class KickMessageDialog extends AbstractDialog<String> 
{
        protected void onInitialize() {
                super.onInitialize();
                add(new Label("message", getString("606")));
-       };
+       }
 
        @Override
        public void onConfigure(JQueryBehavior behavior) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 81978a0..8e851ac 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -18,14 +18,8 @@
  */
 package org.apache.openmeetings.web.room.activities;
 
-import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
-import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
+import com.github.openjson.JSONArray;
+import com.github.openjson.JSONObject;
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -48,8 +42,13 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.github.openjson.JSONArray;
-import com.github.openjson.JSONObject;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
 
 public class ActivitiesPanel extends Panel {
        private static final long serialVersionUID = 1L;
@@ -61,7 +60,7 @@ public class ActivitiesPanel extends Panel {
        private static final String ACTIVITY_FMT_RTL = "%3$s %2$s [%1$s]";
        private enum Action {
                accept, decline, close
-       };
+       }
        private static final FastDateFormat df = 
FastDateFormat.getInstance("HH:mm:ss");
        private final Map<String, Activity> activities = new LinkedHashMap<>();
        private final RoomPanel room;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
index 6ab33c5..5097b0f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
@@ -18,12 +18,12 @@
  */
 package org.apache.openmeetings.web.room.activities;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 
+import java.io.Serializable;
+import java.util.Date;
+
 public class Activity implements Serializable {
        private static final long serialVersionUID = 1L;
        public enum Type {
@@ -41,11 +41,11 @@ public class Activity implements Serializable {
 
                private final boolean action;
 
-               private Type() {
+               Type() {
                        this(false);
                }
 
-               private Type(boolean action) {
+               Type(boolean action) {
                        this.action = action;
                }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
index 2dacf9b..773d453 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
@@ -18,13 +18,6 @@
  */
 package org.apache.openmeetings.web.room.menu;
 
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static 
org.apache.openmeetings.web.room.sidebar.RoomSidebar.PARAM_ACTION;
-import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
-import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
-
-import java.io.Serializable;
-
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room;
@@ -46,6 +39,13 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.Serializable;
+
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static 
org.apache.openmeetings.web.room.sidebar.RoomSidebar.PARAM_ACTION;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
+
 public class PollsSubMenu implements Serializable {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
LoggerFactory.getLogger(PollsSubMenu.class);
@@ -160,7 +160,7 @@ public class PollsSubMenu implements Serializable {
                pollsMenu.setEnabled(moder || r.isAllowUserQuestions());
                
pollQuickMenuItem.setEnabled(room.getClient().hasRight(Room.Right.presenter) && 
!qpollManager.isStarted(r.getId()));
                pollCreateMenuItem.setEnabled(moder);
-               pollVoteMenuItem.setEnabled(pollExists && notExternalUser && 
!pollDao.hasVoted(r.getId(), getUserId()));
+               pollVoteMenuItem.setEnabled(pollExists && notExternalUser && 
pollDao.notVoted(r.getId(), getUserId()));
                pollResultMenuItem.setEnabled(pollExists || 
!pollDao.getArchived(r.getId()).isEmpty());
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
index c7c088f..8d3ab3a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
@@ -18,13 +18,10 @@
  */
 package org.apache.openmeetings.web.room.poll;
 
-import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
@@ -46,10 +43,12 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.core.Options;
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 /**
  * @author solomax
@@ -134,7 +133,7 @@ public class VoteDialog extends 
AbstractFormDialog<RoomPollAnswer> {
        protected void onSubmit(AjaxRequestTarget target, DialogButton btn) {
                RoomPollAnswer a = form.getModelObject();
                Long roomId = a.getRoomPoll().getRoom().getId();
-               if (!pollDao.hasVoted(roomId, getUserId())) {
+               if (pollDao.notVoted(roomId, getUserId())) {
                        a.setVoteDate(new Date());
                        a.getRoomPoll().getAnswers().add(a);
                        pollDao.update(a.getRoomPoll());
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
index eaed92a..cd73af3 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
@@ -18,12 +18,6 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
-import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
-import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
-import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
-
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -35,6 +29,12 @@ import 
org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
+
 public abstract class ClientIcon extends WebMarkupContainer {
        private static final long serialVersionUID = 1L;
        protected static final String ICON_CLASS = "ui-icon ";
@@ -57,7 +57,7 @@ public abstract class ClientIcon extends WebMarkupContainer {
        protected void onInitialize() {
                super.onInitialize();
                Client rc = getRoomClient();
-               self = rc == null ? false : rc.getUid().equals(uid);
+               self = rc != null && rc.getUid().equals(uid);
                update(null);
        }
 
@@ -99,12 +99,12 @@ public abstract class ClientIcon extends WebMarkupContainer 
{
 
        protected boolean hasRight(Right right) {
                Client c = getClient();
-               return c == null ? false : c.hasRight(right);
+               return c != null && c.hasRight(right);
        }
 
        protected boolean roomHasRight(Right right) {
                Client rc = getRoomClient();
-               return rc == null ? false : rc.hasRight(right);
+               return rc != null && rc.hasRight(right);
        }
 
        protected Client getRoomClient() {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java
index 5a98998..684aebf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java
@@ -16,13 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/**
+/*
  * @author Sebastien Briquet
  */
 package org.apache.openmeetings.web.user.calendar;
 
-import java.util.Map;
-
 import org.apache.wicket.Component;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -34,6 +32,8 @@ import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.resource.TextTemplateResourceReference;
 import org.apache.wicket.util.collections.MicroMap;
 
+import java.util.Map;
+
 public class CalendarFunctionsBehavior extends Behavior {
        private static final long serialVersionUID = 1L;
        private final String markupId;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
index 7284552..9371254 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -18,18 +18,12 @@
  */
 package org.apache.openmeetings.web.user.calendar;
 
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.openmeetings.web.util.CalendarWebHelper.getDate;
-import static org.apache.openmeetings.web.util.CalendarWebHelper.getZoneId;
-
-import java.time.LocalDateTime;
-import java.time.ZonedDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-
+import com.github.openjson.JSONObject;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.calendar.Calendar;
+import com.googlecode.wicket.jquery.ui.calendar.CalendarView;
+import com.googlecode.wicket.jquery.ui.calendar.EventSource.GoogleCalendar;
+import com.googlecode.wicket.jquery.ui.form.button.Button;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.protocol.HttpClientContext;
@@ -60,12 +54,17 @@ import org.apache.wicket.util.time.Duration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.github.openjson.JSONObject;
-import com.googlecode.wicket.jquery.core.Options;
-import com.googlecode.wicket.jquery.ui.calendar.Calendar;
-import com.googlecode.wicket.jquery.ui.calendar.CalendarView;
-import com.googlecode.wicket.jquery.ui.calendar.EventSource.GoogleCalendar;
-import com.googlecode.wicket.jquery.ui.form.button.Button;
+import java.time.LocalDateTime;
+import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.CalendarWebHelper.getDate;
+import static org.apache.openmeetings.web.util.CalendarWebHelper.getZoneId;
 
 public class CalendarPanel extends UserBasePanel {
        private static final Logger log = 
LoggerFactory.getLogger(CalendarPanel.class);
@@ -343,9 +342,7 @@ public class CalendarPanel extends UserBasePanel {
                super.renderHead(response);
 
                Optional<AjaxRequestTarget> target = 
getRequestCycle().find(AjaxRequestTarget.class);
-               if (target.isPresent()) {
-                       
target.get().appendJavaScript("addCalButton('datepicker');");
-               }
+               target.ifPresent(t -> 
t.appendJavaScript("addCalButton('datepicker');"));
        }
 
        // Client creation here, because the client is not created until 
necessary
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
index 2863283..b672352 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
@@ -18,17 +18,9 @@
  */
 package org.apache.openmeetings.web.user.chat;
 
-import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ALL;
-import static 
org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ROOM_PREFIX;
-import static 
org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_USER_PREFIX;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.function.BooleanSupplier;
-import java.util.function.Predicate;
-
+import com.github.openjson.JSONObject;
+import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 import org.apache.openmeetings.core.util.ChatWebSocketHelper;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -52,9 +44,16 @@ import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.github.openjson.JSONObject;
-import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
-import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.function.BooleanSupplier;
+import java.util.function.Predicate;
+
+import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ALL;
+import static 
org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ROOM_PREFIX;
+import static 
org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_USER_PREFIX;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
 
 public class ChatForm extends Form<Void> {
        private static final long serialVersionUID = 1L;
@@ -130,7 +129,7 @@ public class ChatForm extends Form<Void> {
                                                        }))
                                        {
                                                return;
-                                       };
+                                       }
                                        chatDao.update(m);
                                        JSONObject msg = 
getChat().getMessage(Arrays.asList(m));
                                        if (m.getToRoom() != null) {
@@ -144,7 +143,7 @@ public class ChatForm extends Form<Void> {
                                        }
                                        chatMessage.setDefaultModelObject("");
                                        
target.appendJavaScript("Chat.clean();");
-                               };
+                               }
                        });
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
index 835d01a..e8f8815 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
@@ -18,21 +18,8 @@
  */
 package org.apache.openmeetings.web.user.profile;
 
-import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
-import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
-import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessageDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
@@ -81,8 +68,20 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.util.ListModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.core.JQueryBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
+import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
+import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
 
 public class MessagesContactsPanel extends UserBasePanel {
        private static final long serialVersionUID = 1L;
@@ -261,7 +260,7 @@ public class MessagesContactsPanel extends UserBasePanel {
                                readMessages.clear();
                                unreadMessages.clear();
                                String sort = getSort() == null ? "" : "m." + 
getSort().getProperty();
-                               boolean isAsc = getSort() == null ? true : 
getSort().isAscending();
+                               boolean isAsc = getSort() == null || 
getSort().isAscending();
                                return getDao().get(getUserId(), 
selectedFolderModel.getObject(), search, sort, isAsc, first, count).iterator();
                        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
index ee40752..dbc02a6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
@@ -18,17 +18,11 @@
  */
 package org.apache.openmeetings.web.user.record;
 
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
-import static org.apache.openmeetings.util.OmFileHelper.getRecordingChunk;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.wicket.util.time.Duration.NONE;
-
-import java.io.File;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
+import com.googlecode.wicket.jquery.ui.JQueryIcon;
+import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
+import com.googlecode.wicket.jquery.ui.form.button.AjaxSplitButton;
+import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
+import com.googlecode.wicket.jquery.ui.widget.menu.MenuItem;
 import org.apache.openmeetings.core.converter.IRecordingConverter;
 import org.apache.openmeetings.core.converter.InterviewConverter;
 import org.apache.openmeetings.core.converter.RecordingConverter;
@@ -52,11 +46,16 @@ import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.resource.FileSystemResource;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.ui.JQueryIcon;
-import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
-import com.googlecode.wicket.jquery.ui.form.button.AjaxSplitButton;
-import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
-import com.googlecode.wicket.jquery.ui.widget.menu.MenuItem;
+import java.io.File;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
+import static org.apache.openmeetings.util.OmFileHelper.getRecordingChunk;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.wicket.util.time.Duration.NONE;
 
 public class VideoInfo extends Panel {
        private static final long serialVersionUID = 1L;
@@ -68,7 +67,7 @@ public class VideoInfo extends Panel {
                @Override
                protected String getIcon() {
                        return JQueryIcon.REFRESH;
-               };
+               }
 
                @Override
                protected void onSubmit(AjaxRequestTarget target) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
index 76fba36..ce79595 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
@@ -18,16 +18,6 @@
  */
 package org.apache.openmeetings.web.util;
 
-import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
-import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmFileHelper;
@@ -43,6 +33,15 @@ import org.apache.wicket.util.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
+import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
+
 public class ProfileImageResourceReference extends ResourceReference {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
LoggerFactory.getLogger(ProfileImageResourceReference.class);
@@ -60,7 +59,7 @@ public class ProfileImageResourceReference extends 
ResourceReference {
 
        public static String getUrl(RequestCycle rc, User u) {
                String uri = u.getPictureUri();
-               if (!isAbsolute(uri)) {
+               if (isRelative(uri)) {
                        File img = 
OmFileHelper.getUserProfilePicture(u.getId(), uri);
                        uri = rc.urlFor(new ProfileImageResourceReference()
                                        , new PageParameters().add("id", 
u.getId()).add("anticache", img.lastModified())).toString();
@@ -68,14 +67,14 @@ public class ProfileImageResourceReference extends 
ResourceReference {
                return uri;
        }
 
-       private static boolean isAbsolute(String uri) {
-               boolean absolute = false;
+       private static boolean isRelative(String uri) {
+               boolean relative = true;
                try {
-                       absolute = URI.create(uri).isAbsolute();
+                       relative = !URI.create(uri).isAbsolute();
                } catch (Exception e) {
                        //no-op
                }
-               return absolute;
+               return relative;
        }
 
        @Override
@@ -108,7 +107,7 @@ public class ProfileImageResourceReference extends 
ResourceReference {
 
                        @Override
                        protected byte[] getData(Attributes attributes) {
-                               if (!isAbsolute(uri)) {
+                               if (isRelative(uri)) {
                                        File img = 
OmFileHelper.getUserProfilePicture(userId, uri);
                                        try (InputStream is = new 
FileInputStream(img)) {
                                                return IOUtils.toByteArray(is);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
index 2d13eb1..70f4390 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
@@ -18,19 +18,8 @@
  */
 package org.apache.openmeetings;
 
-import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
-import static 
org.apache.openmeetings.web.common.OmWebSocketPanel.CONNECTED_MSG;
-import static org.apache.wicket.util.string.Strings.escapeMarkup;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Locale;
-import java.util.function.Consumer;
-
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.util.OmException;
@@ -47,8 +36,18 @@ import org.junit.jupiter.api.BeforeEach;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Locale;
+import java.util.function.Consumer;
+
+import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
+import static 
org.apache.openmeetings.web.common.OmWebSocketPanel.CONNECTED_MSG;
+import static org.apache.wicket.util.string.Strings.escapeMarkup;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 public class AbstractWicketTester extends AbstractJUnitDefaults {
        private static final Logger log = 
LoggerFactory.getLogger(AbstractWicketTester.class);
@@ -63,8 +62,7 @@ public class AbstractWicketTester extends 
AbstractJUnitDefaults {
        public static WicketTester getWicketTester(Application app, long 
langId) {
                ensureApplication(langId); // to ensure WebSession is attached
 
-               WicketTester tester = new WicketTester(app, 
app.getServletContext(), false);
-               return tester;
+               return new WicketTester(app, app.getServletContext(), false);
        }
 
        public static void destroy(WicketTester tester) {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
index 8fe3c35..826485a 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.test.selenium;
 
-import java.util.List;
-
 import org.apache.openmeetings.AbstractSpringTest;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.junit.jupiter.api.AfterEach;
@@ -32,6 +30,8 @@ import org.openqa.selenium.firefox.FirefoxDriver;
 import org.openqa.selenium.firefox.FirefoxOptions;
 import org.openqa.selenium.firefox.FirefoxProfile;
 
+import java.util.List;
+
 @Tag("org.apache.openmeetings.test.selenium.SeleniumTests")
 public abstract class AbstractTestDefaults extends AbstractSpringTest {
        public WebDriver driver = null;
@@ -84,7 +84,7 @@ public abstract class AbstractTestDefaults extends 
AbstractSpringTest {
        /**
         * Make method overwrite possible to have custom behavior in tests
         *
-        * @return
+        * @return false if you need not to shut down browser will after the 
test
         */
        public boolean getDoTearDownAfterTest() {
                return doTearDownAfterTest;
@@ -101,7 +101,7 @@ public abstract class AbstractTestDefaults extends 
AbstractSpringTest {
         * This test is a basic test to verify the default loader mechanism 
works
         * it is not intend to be a part of any sub test
         *
-        * @throws Exception
+        * @throws Exception if any error occurs
         */
        //@Test
        public void smokeTest() throws Exception {
@@ -130,7 +130,7 @@ public abstract class AbstractTestDefaults extends 
AbstractSpringTest {
         * Throws exception in case that test fails, so it is important to not 
catch
         * that exception but really let the test fail!
         *
-        * @throws Exception
+        * @throws Exception if any error occurs
         */
        protected void testIsInstalledAndDoInstallation() throws Exception {
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
index cada04b..f1f2140 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
@@ -18,30 +18,6 @@
  */
 package org.apache.openmeetings.webservice;
 
-import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
-import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
-import static org.apache.openmeetings.AbstractJUnitDefaults.ensureSchema;
-import static org.apache.openmeetings.AbstractJUnitDefaults.soapUsername;
-import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
-import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
-import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetAddress;
-import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.ws.rs.core.Form;
-import javax.ws.rs.core.MediaType;
-
 import org.apache.catalina.LifecycleState;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.Tomcat;
@@ -63,6 +39,29 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 
+import javax.ws.rs.core.Form;
+import javax.ws.rs.core.MediaType;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.InetAddress;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static java.util.UUID.randomUUID;
+import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
+import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
+import static org.apache.openmeetings.AbstractJUnitDefaults.ensureSchema;
+import static org.apache.openmeetings.AbstractJUnitDefaults.soapUsername;
+import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
+import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
+import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 public class AbstractWebServiceTest {
        private static Tomcat tomcat;
        private static final String HOST = "localhost";
@@ -92,9 +91,8 @@ public class AbstractWebServiceTest {
        }
 
        public static ServiceResult loginNoCheck(String user, String pass) {
-               ServiceResult sr = 
getClient(getUserUrl()).path("/login").query("user", user).query("pass", pass)
+               return getClient(getUserUrl()).path("/login").query("user", 
user).query("pass", pass)
                                .get(ServiceResult.class);
-               return sr;
        }
 
        public static ServiceResult login(String user, String pass) {
diff --git 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
index bf601fd..a2de47c 100644
--- 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
@@ -19,9 +19,9 @@
 package org.apache.openmeetings.webservice;
 
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.concurrent.ThreadLocalRandom;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -32,10 +32,9 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.ResponseBuilder;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.concurrent.ThreadLocalRandom;
 
 @Service("netTestWebService")
 @Path("/networktest")
@@ -105,7 +104,7 @@ public class NetTestWebService {
                                , count;
                while ((count = stream.read(b)) > -1) {
                        totalCount += count;
-               };
+               }
                log.debug("Total bytes read {}", totalCount);
        }
 

Reply via email to