[OPENMEETINGS-2703] Sonar should be more happy
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
index d74c287..a7ad985 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
@@ -247,7 +247,8 @@
 			StringBuilder cols = new StringBuilder();
 			StringBuilder rows = new StringBuilder();
 			int colCount = 0;
-			for (int i = 0, j = 0; i < numPods; ++i) {
+			int j = 0;
+			for (int i = 0; i < numPods; ++i) {
 				colCount++;
 				args.add("-i");
 				args.add(pods.get(i));
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 71b8a8d..e3fcf6c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -21,7 +21,7 @@
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.*;
-import static org.apache.openmeetings.util.Version.getLine;
+import static org.apache.openmeetings.util.OmVersion.getLine;
 import static org.apache.wicket.csp.CSPDirectiveSrcValue.SELF;
 import static org.apache.wicket.csp.CSPDirectiveSrcValue.STRICT_DYNAMIC;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
index 911a3ef..39519fc 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
@@ -40,7 +40,7 @@
 @Repository
 @Transactional
 public class ExtraMenuDao implements IGroupAdminDataProviderDao<ExtraMenu> {
-	public final static String[] searchFields = {"name", "link", "description"};
+	private static final String[] searchFields = {"name", "link", "description"};
 
 	@PersistenceContext
 	private EntityManager em;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
index 3b585bf..cd31c4a 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
@@ -24,7 +24,7 @@
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.openmeetings.util.Version;
+import org.apache.openmeetings.util.OmVersion;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -35,9 +35,9 @@
 	private final String buildDate;
 
 	public Info() {
-		version = Version.getVersion();
-		revision = Version.getRevision();
-		buildDate = Version.getBuildDate();
+		version = OmVersion.getVersion();
+		revision = OmVersion.getRevision();
+		buildDate = OmVersion.getBuildDate();
 	}
 
 	public String getVersion() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboards.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboards.java
index 0296b9f..660ca9c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboards.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboards.java
@@ -29,7 +29,7 @@
 	private static final long serialVersionUID = 1L;
 	private Long roomId;
 	private final String uid = randomUUID().toString();
-	private Map<Long, Whiteboard> whiteboards = new ConcurrentHashMap<>();
+	private Map<Long, Whiteboard> boards = new ConcurrentHashMap<>();
 	private AtomicLong whiteboardId = new AtomicLong(0);
 	private AtomicLong activeWb = new AtomicLong(0);
 
@@ -51,28 +51,28 @@
 
 	public Whiteboards add(Whiteboard wb) {
 		wb.setId(whiteboardId.getAndIncrement());
-		whiteboards.put(wb.getId(), wb);
+		boards.put(wb.getId(), wb);
 		return this;
 	}
 
 	public Whiteboard get(Long id) {
-		return whiteboards.get(id);
+		return boards.get(id);
 	}
 
 	public int count() {
-		return whiteboards.size();
+		return boards.size();
 	}
 
 	public Map<Long, Whiteboard> getWhiteboards() {
-		return whiteboards;
+		return boards;
 	}
 
 	public void setWhiteboards(Map<Long, Whiteboard> whiteboards) {
-		this.whiteboards = whiteboards;
+		this.boards = whiteboards;
 	}
 
 	public void update(Whiteboard wb) {
-		whiteboards.put(wb.getId(), wb);
+		boards.put(wb.getId(), wb);
 	}
 
 	public String getUid() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
index 64cdc0b..88fc50f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
@@ -21,7 +21,7 @@
 import java.io.Serializable;
 import java.util.Locale;
 
-import org.apache.wicket.protocol.http.WebSession;
+import org.apache.wicket.Session;
 
 public class OmLanguage implements Serializable {
 	private static final long serialVersionUID = 1L;
@@ -35,7 +35,7 @@
 	public OmLanguage(Long id, Locale locale) {
 		this.id = id;
 		this.locale = locale;
-		this.rtl = WebSession.isRtlLanguage(locale);
+		this.rtl = Session.isRtlLanguage(locale);
 	}
 
 	public long getId() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
index ff280f7..cf8ede7 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
@@ -32,7 +32,6 @@
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
-import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 import javax.xml.bind.annotation.XmlAccessType;
@@ -46,12 +45,10 @@
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 
 @Entity
-@NamedQueries({
-	@NamedQuery(name = "getExtraMenuById", query = "SELECT m FROM ExtraMenu m WHERE m.id = :id")
-	, @NamedQuery(name = "getExtraMenus", query = "SELECT m FROM ExtraMenu m")
-	, @NamedQuery(name = "getExtraMenuByGroups", query = "SELECT m FROM ExtraMenu m WHERE m.groups IS NULL OR m.groups IN (:ids)")
-	, @NamedQuery(name = "countExtraMenus", query = "SELECT COUNT(m) FROM ExtraMenu m")
-})
+@NamedQuery(name = "getExtraMenuById", query = "SELECT m FROM ExtraMenu m WHERE m.id = :id")
+@NamedQuery(name = "getExtraMenus", query = "SELECT m FROM ExtraMenu m")
+@NamedQuery(name = "getExtraMenuByGroups", query = "SELECT m FROM ExtraMenu m WHERE m.groups IS NULL OR m.groups IN (:ids)")
+@NamedQuery(name = "countExtraMenus", query = "SELECT COUNT(m) FROM ExtraMenu m")
 @Table(name = "extra_menu")
 @XmlRootElement(name = EXTRA_MENU_NODE)
 @XmlAccessorType(XmlAccessType.FIELD)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
index 06d68b4..d63c6c2 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
@@ -26,7 +26,6 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
@@ -80,10 +79,7 @@
 				app.setServletContext(sc);
 				if (app.getWicketFilter() == null) {
 					final FilterConfig filterConfig = new FilterConfig() {
-						private final Map<String, String> initParameters = new HashMap<>();
-						{
-							initParameters.put(WicketFilter.FILTER_MAPPING_PARAM, "/servlet/*");
-						}
+						private final Map<String, String> initParameters = Map.of(WicketFilter.FILTER_MAPPING_PARAM, "/servlet/*");
 
 						@Override
 						public String getFilterName() {
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 a98b1e0..4953b6b 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
@@ -474,19 +474,12 @@
 						fileItemDao.updateBase(bfi);
 					}
 					if (BaseFileItem.Type.WML_FILE == bfi.getType()) {
-						try {
-							Whiteboard wb = WbConverter.convert(bfi);
-							wb.save(bfi.getFile().toPath());
-						} catch (Exception e) {
-							log.error("Unexpected error while converting WB", e);
-						}
+						convertWb(bfi);
 					}
 				}
 			}
 			log.info("File explorer item import complete");
 			success = true;
-		} catch (Exception e) {
-			throw e;
 		} finally {
 			if (f != null) {
 				log.info("Clearing temp files ...");
@@ -499,6 +492,15 @@
 		}
 	}
 
+	private void convertWb(FileItem bfi) {
+		try {
+			Whiteboard wb = WbConverter.convert(bfi);
+			wb.save(bfi.getFile().toPath());
+		} catch (Exception e) {
+			log.error("Unexpected error while converting WB", e);
+		}
+	}
+
 	void cleanup() {
 		ldapMap.clear();
 		oauthMap.clear();
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java
index a39cafd..07debe7 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java
@@ -30,7 +30,7 @@
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.IntAdapter;
-import org.apache.openmeetings.util.Version;
+import org.apache.openmeetings.util.OmVersion;
 
 @XmlRootElement(name = VERSION_NODE)
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -74,7 +74,7 @@
 	}
 
 	public static BackupVersion get() {
-		String ver = Version.getVersion();
+		String ver = OmVersion.getVersion();
 		return get(ver);
 	}
 
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index 4d7333e..f41e4a1 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -162,12 +162,12 @@
 	}
 
 	private Date getDate(CalendarComponent event, String prop) {
-		return getDate(event.getProperty(prop).get());
+		return getDate(event.getProperty(prop).orElse(null));
 	}
 
 	@SuppressWarnings("unchecked")
 	private Date getDate(Property prop) {
-		return Date.from(Instant.from(((DateProperty<? extends Temporal>)prop).getDate()));
+		return prop == null ? null : Date.from(Instant.from(((DateProperty<? extends Temporal>)prop).getDate()));
 	}
 
 	/**
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
index ee4c982..4d352cd 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
@@ -23,6 +23,7 @@
 import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.IWebSession;
 import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.Session;
 import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.protocol.http.WebSession;
@@ -39,7 +40,7 @@
 	protected AbstractTemplatePanel(Locale locale) {
 		super(COMP_ID);
 		this.locale = locale;
-		add(new TransparentWebMarkupContainer("container").add(AttributeModifier.append("dir", WebSession.isRtlLanguage(this.locale) ? "rtl" : "ltr")));
+		add(new TransparentWebMarkupContainer("container").add(AttributeModifier.append("dir", Session.isRtlLanguage(this.locale) ? "rtl" : "ltr")));
 	}
 
 	public static IWebSession getOmSession() {
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmVersion.java
similarity index 91%
rename from openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java
rename to openmeetings-util/src/main/java/org/apache/openmeetings/util/OmVersion.java
index f8768f1..24761d9 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmVersion.java
@@ -24,8 +24,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class Version {
-	private static final Logger log = LoggerFactory.getLogger(Version.class);
+public class OmVersion {
+	private static final Logger log = LoggerFactory.getLogger(OmVersion.class);
 	private static final int TOTAL_LENGTH = 78;
 	private static String version = null;
 	private static String revision = null;
@@ -33,7 +33,7 @@
 	static {
 		try {
 			Properties props = new Properties();
-			try (InputStream is = Version.class.getResourceAsStream("version.properties")) {
+			try (InputStream is = OmVersion.class.getResourceAsStream("version.properties")) {
 				props.load(is);
 			}
 			version = props.getProperty("version");
@@ -44,7 +44,7 @@
 		}
 	}
 
-	private Version() {}
+	private OmVersion() {}
 
 	public static String getVersion() {
 		return version;
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
index 7a7b85e..6c7821e 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
@@ -222,13 +222,13 @@
 	@Override
 	public String toString() {
 		if (icsCalendar == null) {
-			return null;
+			return "";
 		}
 		try {
 			return new String(toByteArray(), UTF_8);
 		} catch (IOException e) {
 			log.error("Unexpected error", e);
 		}
-		return null;
+		return "";
 	}
 }
diff --git a/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestVersion.java b/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestVersion.java
index bffb226..19b2236 100644
--- a/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestVersion.java
+++ b/openmeetings-util/src/test/java/org/apache/openmeetings/util/TestVersion.java
@@ -18,10 +18,10 @@
  */
 package org.apache.openmeetings.util;
 
-import static org.apache.openmeetings.util.Version.getBuildDate;
-import static org.apache.openmeetings.util.Version.getRevision;
-import static org.apache.openmeetings.util.Version.getVersion;
-import static org.apache.openmeetings.util.Version.logOMStarted;
+import static org.apache.openmeetings.util.OmVersion.getBuildDate;
+import static org.apache.openmeetings.util.OmVersion.getRevision;
+import static org.apache.openmeetings.util.OmVersion.getVersion;
+import static org.apache.openmeetings.util.OmVersion.logOMStarted;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
index 21384a0..3ad9f25 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
@@ -45,7 +45,7 @@
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer list;
 	final Select2MultiChoice<Group> groups = new Select2MultiChoice<>("groups"
-			, new CollectionModel<>(new ArrayList<Group>())
+			, new CollectionModel<>(new ArrayList<>())
 			, new GroupChoiceProvider());
 
 	@SpringBean
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 4dbb3b8..d88080b 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
@@ -70,7 +70,7 @@
 import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.openmeetings.util.Version;
+import org.apache.openmeetings.util.OmVersion;
 import org.apache.openmeetings.util.ws.IClusterWsMessage;
 import org.apache.openmeetings.web.admin.backup.BackupUploadResourceReference;
 import org.apache.openmeetings.web.common.PingResourceReference;
@@ -235,8 +235,8 @@
 			@Override
 			public void memberRemoved(MembershipEvent evt) {
 				//server down, need to remove all online clients, process persistent addresses
-				String serverId = evt.getMember().getAttribute(NAME_ATTR_KEY);
-				cm.serverRemoved(serverId);
+				String downId = evt.getMember().getAttribute(NAME_ATTR_KEY);
+				cm.serverRemoved(downId);
 				updateJpaAddresses();
 			}
 
@@ -251,8 +251,8 @@
 					if (evt.getMember().getUuid().equals(m.getUuid())) {
 						continue;
 					}
-					String serverId = m.getAttribute(NAME_ATTR_KEY);
-					names.add(serverId);
+					String duplicateId = m.getAttribute(NAME_ATTR_KEY);
+					names.add(duplicateId);
 				}
 				String newServerId = evt.getMember().getAttribute(NAME_ATTR_KEY);
 				log.warn("Name added: {}", newServerId);
@@ -360,7 +360,7 @@
 			// Init properties
 			updateJpaAddresses();
 			setExtProcessTtl(cfgDao.getInt(CONFIG_EXT_PROCESS_TTL, getExtProcessTtl()));
-			Version.logOMStarted();
+			OmVersion.logOMStarted();
 			recordingDao.resetProcessingStatus(); //we are starting so all processing recordings are now errors
 			userManager.initHttpClient();
 			setInitComplete(true);
@@ -660,7 +660,7 @@
 		IBootstrapSettings settings = Bootstrap.getSettings(this);
 		settings.setThemeProvider(theme == null ? new NoopThemeProvider()
 				: new BootswatchThemeProvider(theme));
-		if (WebSession.exists()) {
+		if (Session.exists()) {
 			settings.getActiveThemeProvider().setActiveTheme(theme == null
 					? settings.getThemeProvider().defaultTheme()
 					: settings.getThemeProvider().byName(theme.name()));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index 4521346..2f51ea4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -107,14 +107,10 @@
 		onlineServers.putAll(servers());
 		map().addEntryListener(new ClientListener(), true);
 		rooms().addEntryListener(new RoomListener(), true);
-		servers().addEntryListener(new EntryUpdatedListener<String, ServerInfo>() {
-
-			@Override
-			public void entryUpdated(EntryEvent<String, ServerInfo> event) {
-				log.debug("Cluster:: Server was updated {} -> {}", event.getKey(), event.getValue());
-				onlineServers.put(event.getKey(), event.getValue());
-			}
-		}, true);
+		servers().addEntryListener((EntryUpdatedListener<String, ServerInfo>)(event -> {
+			log.debug("Cluster:: Server was updated {} -> {}", event.getKey(), event.getValue());
+			onlineServers.put(event.getKey(), event.getValue());
+		}), true);
 	}
 
 	public void add(Client c) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
index de66cf5..6745a5c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
@@ -103,7 +103,7 @@
 	private ChatPanel chat;
 	private MessageDialog newMessage;
 	private UserInfoDialog userInfo;
-	private BasePanel panel;
+	private BasePanel curPanel;
 	private InviteUserToRoomDialog inviteUser;
 
 	@SpringBean
@@ -119,9 +119,9 @@
 		this(id, null);
 	}
 
-	public MainPanel(String id, BasePanel panel) {
+	public MainPanel(String id, BasePanel curPanel) {
 		super(id);
-		this.panel = panel;
+		this.curPanel = curPanel;
 		setAuto(true);
 		setOutputMarkupId(true);
 		setOutputMarkupPlaceholderTag(true);
@@ -161,8 +161,8 @@
 
 			@Override
 			protected void onConnect(WebSocketRequestHandler handler) {
-				if (panel != null) {
-					updateContents(panel, handler);
+				if (curPanel != null) {
+					updateContents(curPanel, handler);
 				}
 			}
 
@@ -191,7 +191,7 @@
 		});
 		menu = new MenuPanel("menu", getMainMenu());
 		add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
-		add(contents.add(getClient() == null || panel == null ? empty : panel).setOutputMarkupId(true).setMarkupId("contents"));
+		add(contents.add(getClient() == null || curPanel == null ? empty : curPanel).setOutputMarkupId(true).setMarkupId("contents"));
 		topControls.add(menu.setVisible(false), topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
 		final AboutDialog about = new AboutDialog("aboutDialog");
 		topLinks.add(new AjaxLink<Void>("about") {
@@ -419,7 +419,7 @@
 			if (getClient() != null) {
 				updateContents(npanel, handler);
 			} else {
-				this.panel = npanel;
+				this.curPanel = npanel;
 			}
 			if (updateFragment) {
 				UrlFragment uf = new UrlFragment(handler);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationHelper.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationHelper.java
index 1cf1644..62a481d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationHelper.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationHelper.java
@@ -24,6 +24,8 @@
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
 
 public class ConfirmationHelper {
+	private ConfirmationHelper() {}
+
 	public static ConfirmationBehavior newOkCancelConfirm(Component c, String title) {
 		return new ConfirmationBehavior(newOkCancelConfirmCfg(c, title));
 	}
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 ca75d1c..e507ac4 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
@@ -178,48 +178,6 @@
 		}
 	}
 
-	private CharSequence getItemStyle() {
-		final BaseFileItem f = (BaseFileItem)getDefaultModelObject();
-		boolean open = State.EXPANDED == treePanel.tree.getState(f);
-		StringBuilder style = new StringBuilder("big om-icon ");
-		if (f.getId() == null) {
-			style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my " : "public ");
-		} else {
-			if (BaseFileItem.Type.FOLDER != f.getType() && !f.exists()) {
-				style.append("broken ");
-			}
-			switch(f.getType()) {
-				case FOLDER:
-					style.append(CSS_CLASS_FILE).append(open ? "folder-open " : "folder ");
-					break;
-				case IMAGE:
-					style.append(CSS_CLASS_FILE).append("image ");
-					break;
-				case POLL_CHART:
-					style.append(CSS_CLASS_FILE).append("chart ");
-					break;
-				case WML_FILE:
-					style.append(CSS_CLASS_FILE).append("wml ");
-					break;
-				case VIDEO:
-				case RECORDING:
-					setVideoStyle(f, style);
-					break;
-				case PRESENTATION:
-					style.append(CSS_CLASS_FILE).append("doc ");
-					break;
-				default:
-					break;
-			}
-		}
-		if (treePanel.isSelected(f)) {
-			style.append("active ");
-		}
-		String cls = f instanceof Recording ? "recorditem " : "fileitem ";
-		style.append(f.isReadOnly() ? "readonlyitem " : cls);
-		return style;
-	}
-
 	private void setVideoStyle(final BaseFileItem f, StringBuilder style) {
 		style.append("recording ");
 		if (f instanceof Recording) {
@@ -284,6 +242,48 @@
 	private class StyleBehavior extends Behavior {
 		private static final long serialVersionUID = 1L;
 
+		private CharSequence getItemStyle() {
+			final BaseFileItem f = (BaseFileItem)getDefaultModelObject();
+			boolean open = State.EXPANDED == treePanel.tree.getState(f);
+			StringBuilder style = new StringBuilder("big om-icon ");
+			if (f.getId() == null) {
+				style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my " : "public ");
+			} else {
+				if (BaseFileItem.Type.FOLDER != f.getType() && !f.exists()) {
+					style.append("broken ");
+				}
+				switch(f.getType()) {
+					case FOLDER:
+						style.append(CSS_CLASS_FILE).append(open ? "folder-open " : "folder ");
+						break;
+					case IMAGE:
+						style.append(CSS_CLASS_FILE).append("image ");
+						break;
+					case POLL_CHART:
+						style.append(CSS_CLASS_FILE).append("chart ");
+						break;
+					case WML_FILE:
+						style.append(CSS_CLASS_FILE).append("wml ");
+						break;
+					case VIDEO:
+					case RECORDING:
+						setVideoStyle(f, style);
+						break;
+					case PRESENTATION:
+						style.append(CSS_CLASS_FILE).append("doc ");
+						break;
+					default:
+						break;
+				}
+			}
+			if (treePanel.isSelected(f)) {
+				style.append("active ");
+			}
+			String cls = f instanceof Recording ? "recorditem " : "fileitem ";
+			style.append(f.isReadOnly() ? "readonlyitem " : cls);
+			return style;
+		}
+
 		@Override
 		public void onComponentTag(Component component, ComponentTag tag) {
 			tag.put(ATTR_CLASS, getItemStyle());
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
index 1007482..e67e6de 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
@@ -42,7 +42,7 @@
 	private final String action;
 	protected final WebMarkupContainer form = new WebMarkupContainer("form");
 
-	public UploadForm(String id, String action) {
+	protected UploadForm(String id, String action) {
 		super(id);
 		this.action = action;
 		setRenderBodyOnly(true);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
index f8a62ff..cb2d55d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
@@ -63,7 +63,7 @@
 	@SpringBean
 	private ClientManager cm;
 
-	public UploadResourceReference(Class<?> scope, String name) {
+	protected UploadResourceReference(Class<?> scope, String name) {
 		super(scope, name);
 		Injector.get().inject(this);
 	}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
index cc62fba..4ab1905 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
@@ -33,7 +33,7 @@
 
 	@Override
 	public boolean isRtl() {
-		return Application.isInstalled() ? WebSession.get().isRtlLocale() : false;
+		return Application.isInstalled() && WebSession.get().isRtlLocale();
 	}
 
 	@Override
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 ee2be61..53a2044 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
@@ -141,54 +141,6 @@
 		this.s = s;
 	}
 
-	/**
-	 * reset a username by a given mail oder login by sending a mail to the
-	 * registered EMail-Address
-	 *
-	 * @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) {
-		try {
-			log.debug("resetUser {}", email);
-
-			// check if Mail given
-			if (!Strings.isEmpty(email)) {
-				User us = userDao.getByEmail(email);
-				if (us != null) {
-					sendHashByUser(us);
-					return true;
-				}
-			} else if (!Strings.isEmpty(username)) {
-				User us = userDao.getByLogin(username, User.Type.USER, null);
-				if (us != null) {
-					sendHashByUser(us);
-					return true;
-				}
-			}
-		} catch (Exception e) {
-			log.error("[resetUser]", e);
-		}
-		return false;
-	}
-
-	private void sendHashByUser(User us) {
-		log.debug("User: {}", us.getLogin());
-		us.setResethash(randomUUID().toString());
-		us.setResetDate(new Date());
-		userDao.update(us, null);
-		String resetLink = urlForPage(ResetPage.class
-				, new PageParameters().add("hash", us.getResethash())
-				, getBaseUrl());
-
-		String email = us.getAddress().getEmail();
-
-		String template = ResetPasswordTemplate.getEmail(resetLink);
-
-		mailHandler.send(email, Application.getString("517"), template); // Application should be used here to fill placeholder
-	}
-
 	private class ForgetPasswordForm extends Form<String> {
 		private static final long serialVersionUID = 1L;
 
@@ -269,5 +221,53 @@
 			wasReset = true;
 			ForgetPasswordDialog.this.close(target);
 		}
+
+		/**
+		 * reset a username by a given mail oder login by sending a mail to the
+		 * registered EMail-Address
+		 *
+		 * @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) {
+			try {
+				log.debug("resetUser {}", email);
+
+				// check if Mail given
+				if (!Strings.isEmpty(email)) {
+					User us = userDao.getByEmail(email);
+					if (us != null) {
+						sendHashByUser(us);
+						return true;
+					}
+				} else if (!Strings.isEmpty(username)) {
+					User us = userDao.getByLogin(username, User.Type.USER, null);
+					if (us != null) {
+						sendHashByUser(us);
+						return true;
+					}
+				}
+			} catch (Exception e) {
+				log.error("[resetUser]", e);
+			}
+			return false;
+		}
+
+		private void sendHashByUser(User us) {
+			log.debug("User: {}", us.getLogin());
+			us.setResethash(randomUUID().toString());
+			us.setResetDate(new Date());
+			userDao.update(us, null);
+			String resetLink = urlForPage(ResetPage.class
+					, new PageParameters().add("hash", us.getResethash())
+					, getBaseUrl());
+
+			String email = us.getAddress().getEmail();
+
+			String template = ResetPasswordTemplate.getEmail(resetLink);
+
+			mailHandler.send(email, Application.getString("517"), template); // Application should be used here to fill placeholder
+		}
 	}
 }
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index 865e228..46ae43e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -770,8 +770,6 @@
 					target.add(container.replace(new ErrorMessagePanel("status", getString("install.wizard.install.failed"), th))
 						, desc.setVisible(false)
 						);
-				} else {
-					//onComplete(target);
 				}
 				super.onPostProcessTarget(target);
 			}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 0e84051..df46801 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -192,6 +192,15 @@
 			wb.update(target);
 		}
 
+		private CharSequence sendClientsOnInit() {
+			Client c = getClient();
+			StringBuilder res = new StringBuilder();
+			if (c.hasRight(Room.Right.MODERATOR) || !r.isHidden(RoomElement.USER_COUNT)) {
+				res.append(createAddClientJs(c));
+			}
+			return res;
+		}
+
 		private void initVideos(AjaxRequestTarget target) {
 			StringBuilder sb = new StringBuilder();
 			JSONArray streams = new JSONArray();
@@ -886,15 +895,6 @@
 				.append(");");
 	}
 
-	private CharSequence sendClientsOnInit() {
-		Client c = getClient();
-		StringBuilder res = new StringBuilder();
-		if (c.hasRight(Room.Right.MODERATOR) || !r.isHidden(RoomElement.USER_COUNT)) {
-			res.append(createAddClientJs(c));
-		}
-		return res;
-	}
-
 	private CharSequence sendClientsOnUpdate() {
 		Client c = getClient();
 		StringBuilder res = new StringBuilder();
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 bdc567f..ccc9bf0 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
@@ -63,7 +63,7 @@
 	private static final FastDateFormat df = FastDateFormat.getInstance("HH:mm:ss");
 	private final Map<String, Activity> activities = new LinkedHashMap<>();
 	private final RoomPanel room;
-	private final AbstractDefaultAjaxBehavior action = new AbstractDefaultAjaxBehavior() {
+	private final AbstractDefaultAjaxBehavior actionBehavior = new AbstractDefaultAjaxBehavior() {
 		private static final long serialVersionUID = 1L;
 
 		private TextRoomMessage getRemoveMsg(String id) {
@@ -155,7 +155,7 @@
 		setVisible(!room.getRoom().isHidden(RoomElement.ACTIVITIES));
 		setOutputMarkupPlaceholderTag(true);
 		setMarkupId(id);
-		add(action);
+		add(actionBehavior);
 	}
 
 	private boolean shouldSkip(final boolean self, final Activity a) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/AboutDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/AboutDialog.java
index 69666c8..28548cd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/AboutDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/AboutDialog.java
@@ -19,9 +19,9 @@
 package org.apache.openmeetings.web.user;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getApplicationName;
-import static org.apache.openmeetings.util.Version.getBuildDate;
-import static org.apache.openmeetings.util.Version.getRevision;
-import static org.apache.openmeetings.util.Version.getVersion;
+import static org.apache.openmeetings.util.OmVersion.getBuildDate;
+import static org.apache.openmeetings.util.OmVersion.getRevision;
+import static org.apache.openmeetings.util.OmVersion.getVersion;
 
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.ResourceModel;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
index 2057020..6c37b0f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
@@ -36,7 +36,6 @@
 		<form class="main-form" wicket:id="form">
 			<div id="calendar" wicket:id="calendar"></div>
 			<br/>
-			<!-- div wicket:id="feedback"></div -->
 		</form>
 	</div>
 	<div wicket:id="calendarAppointment" class="appointment">[appointment]</div>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
index 5a14902..03e8074 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
@@ -48,11 +48,11 @@
 
 public class RecordingsPanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
+	private static final String recordingInviteDialogId = "recordingInviteDialog";
 	private final VideoPlayer video = new VideoPlayer("video");
 	private final VideoInfo info = new VideoInfo("info");
 	private FileTreePanel fileTree;
 	private InvitationDialog invite;
-	private final static String recordingInviteDialogId = "recordingInviteDialog";
 	private RecordingInvitationForm rif = new RecordingInvitationForm("form", recordingInviteDialogId);
 
 	@SpringBean
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
index 845181b..1527116 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
@@ -34,7 +34,7 @@
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dto.basic.Health;
 import org.apache.openmeetings.db.dto.basic.Info;
-import org.apache.openmeetings.util.Version;
+import org.apache.openmeetings.util.OmVersion;
 import org.apache.openmeetings.webservice.schema.HealthWrapper;
 import org.apache.openmeetings.webservice.schema.InfoWrapper;
 import org.springframework.stereotype.Service;
@@ -107,8 +107,8 @@
 	public String getManifest() {
 		URI omPath = getWebappPath();
 		return new JSONObject()
-				.put("name", getApplicationName() + " " + Version.getVersion())
-				.put("short_name", getApplicationName() + " " + Version.getVersion())
+				.put("name", getApplicationName() + " " + OmVersion.getVersion())
+				.put("short_name", getApplicationName() + " " + OmVersion.getVersion())
 				.put("description", "Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools.")
 				.put("start_url",  omPath.resolve("?pwa=true"))
 				.put("scope", "/")