You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/01/27 11:04:44 UTC

svn commit: r1726989 - in /openmeetings/application: branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/ branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/ branches/3.1.x/open...

Author: solomax
Date: Wed Jan 27 10:04:44 2016
New Revision: 1726989

URL: http://svn.apache.org/viewvc?rev=1726989&view=rev
Log:
Issues reported by coverity are fixed

Modified:
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/EmoticonsManager.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ChatService.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/DownloadHandler.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java
    openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
    openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/stringhandlers/ChatString.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
    openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
    openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java
    openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/EmoticonsManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/EmoticonsManager.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/EmoticonsManager.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/EmoticonsManager.java Wed Jan 27 10:04:44 2016
@@ -18,13 +18,18 @@
  */
 package org.apache.openmeetings.core.data.whiteboard;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
-import java.util.LinkedList;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.stringhandlers.ChatString;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -41,36 +46,31 @@ import com.thoughtworks.xstream.io.xml.X
  * 
  */
 public class EmoticonsManager {
-
-	private static final Logger log = Red5LoggerFactory.getLogger(EmoticonsManager.class, OpenmeetingsVariables.webAppRootKey);
-	
-	private LinkedList<LinkedList<String>> emotfilesList = new LinkedList<LinkedList<String>>();
+	private static final Logger log = Red5LoggerFactory.getLogger(EmoticonsManager.class, webAppRootKey);
+	private List<List<String>> emotfilesList = new CopyOnWriteArrayList<>();
 
 	@SuppressWarnings("unchecked")
 	public void loadEmot(){
 		try {
+		    StringBuilder xmlString = new StringBuilder();
 			XStream xStream = new XStream(new XppDriver());
 			xStream.setMode(XStream.NO_REFERENCES);
-			BufferedReader reader = new BufferedReader(new FileReader(new File(OmFileHelper.getPublicEmotionsDir(), "emotes.xml")));
-		    String xmlString = "";
-		    while (reader.ready()) {
-		    	xmlString += reader.readLine();
-		    }
-		    reader.close();
-		    emotfilesList = ChatString.replaceAllRegExp((LinkedList<LinkedList<String>>) xStream.fromXML(xmlString));
+			try (InputStream is = new FileInputStream(new File(OmFileHelper.getPublicEmotionsDir(), "emotes.xml"));
+					BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+			{
+			    while (reader.ready()) {
+			    	xmlString.append(reader.readLine());
+			    }
+			}
+		    emotfilesList = new CopyOnWriteArrayList<>(ChatString.replaceAllRegExp((List<List<String>>) xStream.fromXML(xmlString.toString())));
 		    
 		    log.debug("##### loadEmot completed");
-		    
 		} catch (Exception err) {
 			log.error("[loadEmot]",err);
 		}
 	}
 	
-	public synchronized LinkedList<LinkedList<String>> getEmotfilesList() {
+	public List<List<String>> getEmotfilesList() {
 		return emotfilesList;
 	}
-	
-	public synchronized void setEmotfilesList(LinkedList<LinkedList<String>> emotfilesListNew) {
-		emotfilesList = emotfilesListNew;
-	}
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java Wed Jan 27 10:04:44 2016
@@ -18,16 +18,19 @@
  */
 package org.apache.openmeetings.core.documents;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 
 import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.dom4j.Element;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -36,41 +39,34 @@ import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.XppDriver;
 
 public class LibraryWmlLoader {
-	
-	private static final Logger log = Red5LoggerFactory.getLogger(LibraryWmlLoader.class, OpenmeetingsVariables.webAppRootKey);
-	
+	private static final Logger log = Red5LoggerFactory.getLogger(LibraryWmlLoader.class, webAppRootKey);
 	private static final String fileExt = ".wml";
 	
 	@SuppressWarnings({ "rawtypes" })
 	public ArrayList loadWmlFile(String fileName){
-		BufferedReader reader = null;
 		try {
 			String name = fileName;
 			if (!name.endsWith(fileExt)) {
 				name += fileExt;
 			}
-			File filepathComplete = new File(OmFileHelper.getUploadWmlDir(), name);
-			log.debug("filepathComplete: "+filepathComplete);
+			File file = new File(OmFileHelper.getUploadWmlDir(), name);
+			log.debug("filepathComplete: " + file);
 			
 			XStream xStream = new XStream(new XppDriver());
 			xStream.setMode(XStream.NO_REFERENCES);
 			
-			reader = new BufferedReader(new FileReader(filepathComplete));
-		    ArrayList lMapList = (ArrayList) xStream.fromXML(reader);
-			
-			return lMapList;
+			try (InputStream is = new FileInputStream(file);
+					BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+			{
+				ArrayList lMapList = (ArrayList) xStream.fromXML(reader);
+				
+				return lMapList;
+			}
 		} catch (Exception err){
 			log.error("loadWmlFile",err);
-		} finally {
-			if (reader != null) {
-			    try {
-					reader.close();
-				} catch (IOException e) {}
-			}
 		}
 		
 		return null;
-		
 	}
 	
 	/**

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ChatService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ChatService.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ChatService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ChatService.java Wed Jan 27 10:04:44 2016
@@ -21,18 +21,18 @@ package org.apache.openmeetings.core.rem
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.openmeetings.core.data.whiteboard.EmoticonsManager;
+import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.core.remote.util.SessionVariablesUtil;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
-import org.apache.openmeetings.core.remote.util.SessionVariablesUtil;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.stringhandlers.ChatString;
 import org.red5.logging.Red5LoggerFactory;
@@ -65,7 +65,7 @@ public class ChatService implements IPen
 	//number of items in the chat room history
 	private static final int chatRoomHistory = 50;
 	
-	private static LinkedHashMap<Long,List<HashMap<String,Object>>> myChats = new LinkedHashMap<Long,List<HashMap<String,Object>>>();
+	private static Map<Long,List<Map<String,Object>>> myChats = new LinkedHashMap<Long,List<Map<String,Object>>>();
 	
 	private String parseDateAsTimeString() {
 		Calendar cal=Calendar.getInstance();
@@ -130,15 +130,15 @@ public class ChatService implements IPen
 			// adding delimiter space, cause otherwise an emoticon in the last
 			// string would not be found
 			String messageText = messageMap.get(4) + " ";
-			LinkedList<String[]> parsedStringObjects = ChatString.parseChatString(messageText, emoticonsManager.getEmotfilesList(), room.getAllowFontStyles());
+			List<String[]> parsedStringObjects = ChatString.parseChatString(messageText, emoticonsManager.getEmotfilesList(), room.getAllowFontStyles());
 			// log.error("parsedStringObjects"+parsedStringObjects.size());
 			log.debug("size:" + messageMap.size());
 			messageMap.add(parsedStringObjects);
 			newMessage = messageMap;			
 
 			boolean needModeration = Boolean.valueOf("" + messageMap.get(9));
-			List<HashMap<String, Object>> myChatList = myChats.get(roomId);
-			if (myChatList == null) myChatList = new LinkedList<HashMap<String, Object>>();
+			List<Map<String, Object>> myChatList = myChats.get(roomId);
+			if (myChatList == null) myChatList = new LinkedList<Map<String, Object>>();
 			
 			HashMap<String, Object> hsm = new HashMap<String, Object>();
 			hsm.put("message", newMessage);
@@ -183,7 +183,7 @@ public class ChatService implements IPen
 						if (rcl.isScreenClient()) {
     						continue;
     					}
-						if (needModeration && Boolean.TRUE != rcl.getIsMod() && Boolean.TRUE != rcl.getIsSuperModerator()) {
+						if (needModeration && !rcl.getIsMod() && !Boolean.TRUE.equals(rcl.getIsSuperModerator())) {
 							continue;
 						}
 						((IServiceCapableConnection) conn).invoke("sendVarsToMessageWithClient",new Object[] { hsm }, this);
@@ -218,7 +218,7 @@ public class ChatService implements IPen
 			String messageText = messageMap.get(4).toString() + " ";
 			// add server time
 			messageMap.set(1, parseDateAsTimeString());
-			LinkedList<String[]> parsedStringObjects = ChatString.parseChatString(messageText, emoticonsManager.getEmotfilesList(), room.getAllowFontStyles());
+			List<String[]> parsedStringObjects = ChatString.parseChatString(messageText, emoticonsManager.getEmotfilesList(), room.getAllowFontStyles());
 			// log.error("parsedStringObjects"+parsedStringObjects.size());
 			log.debug("size:" + messageMap.size());
 			messageMap.add(parsedStringObjects);
@@ -255,7 +255,7 @@ public class ChatService implements IPen
 		return 1;
 	}
 
-	public List<HashMap<String,Object>> clearChat() {
+	public List<Map<String,Object>> clearChat() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			Client currentClient = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
@@ -264,8 +264,8 @@ public class ChatService implements IPen
 			Long chatroom = room_id;
 			log.debug("### GET CHATROOM: "+chatroom);
 			
-			List<HashMap<String,Object>> myChatList = myChats.get(chatroom);
-			myChatList = new LinkedList<HashMap<String,Object>>();
+			List<Map<String,Object>> myChatList = myChats.get(chatroom);
+			myChatList = new LinkedList<Map<String,Object>>();
 			
 			myChats.put(chatroom,myChatList);
 			
@@ -281,7 +281,7 @@ public class ChatService implements IPen
 		}
 	}
 	
-	public List<HashMap<String,Object>> getRoomChatHistory() {
+	public List<Map<String,Object>> getRoomChatHistory() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			Client currentClient = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
@@ -289,12 +289,12 @@ public class ChatService implements IPen
 			
 			log.debug("GET CHATROOM: " + roomId);
 			
-			List<HashMap<String,Object>> myChatList = myChats.get(roomId);
-			if (myChatList==null) myChatList = new LinkedList<HashMap<String,Object>>();
+			List<Map<String,Object>> myChatList = myChats.get(roomId);
+			if (myChatList==null) myChatList = new LinkedList<Map<String,Object>>();
 			
 			if (!currentClient.getIsMod() && !currentClient.getIsSuperModerator()) {
 				//current user is not moderator, chat history need to be filtered
-				List<HashMap<String,Object>> tmpChatList = new LinkedList<HashMap<String,Object>>(myChatList);
+				List<Map<String,Object>> tmpChatList = new LinkedList<Map<String,Object>>(myChatList);
 				for (int i = tmpChatList.size() - 1; i > -1; --i) {
 					@SuppressWarnings("rawtypes")
 					List msgList = (List)tmpChatList.get(i).get("message");
@@ -318,14 +318,13 @@ public class ChatService implements IPen
 	 * @param room_id
 	 * @return - chat history of the room given, null in case of exception
 	 */
-	public List<HashMap<String,Object>> getRoomChatHistoryByString(Long room_id) {
+	public List<Map<String,Object>> getRoomChatHistoryByString(Long room_id) {
 		try {
-			
 			Long chatroom = room_id;
 			log.debug("GET CHATROOM: "+chatroom);
 			
-			List<HashMap<String,Object>> myChatList = myChats.get(chatroom);
-			if (myChatList==null) myChatList = new LinkedList<HashMap<String,Object>>();	
+			List<Map<String,Object>> myChatList = myChats.get(chatroom);
+			if (myChatList==null) myChatList = new LinkedList<Map<String,Object>>();	
 			
 			return myChatList;
 		} catch (Exception err) {
@@ -339,13 +338,12 @@ public class ChatService implements IPen
 		log.error("resultReceived ChatService "+arg0);
 	}
 	
-	public LinkedList<LinkedList<String>> getAllPublicEmoticons(){
+	public List<List<String>> getAllPublicEmoticons(){
 		try {
-			LinkedList<LinkedList<String>> publicemotes = new LinkedList<LinkedList<String>>();
-			LinkedList<LinkedList<String>> allEmotes = emoticonsManager.getEmotfilesList();
-			for (Iterator<LinkedList<String>> iter = allEmotes.iterator();iter.hasNext();){
-				LinkedList<String> emot = iter.next();
-				LinkedList<String> emotPub = new LinkedList<String>();
+			List<List<String>> publicemotes = new LinkedList<List<String>>();
+			List<List<String>> allEmotes = emoticonsManager.getEmotfilesList();
+			for (List<String> emot : allEmotes){
+				List<String> emotPub = new LinkedList<>();
 				if (emot.get((emot.size()-1)).equals("y")){
 					emotPub.add(emot.get(0));
 					emotPub.add(emot.get(1).replace("\\", ""));

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Wed Jan 27 10:04:44 2016
@@ -239,6 +239,10 @@ public class MainService implements IPen
 			log.debug("swfURL " + clientURL);
 
 			SOAPLogin soapLogin = soapLoginDao.get(secureHash);
+			if (soapLogin == null) {
+				log.warn("Unable to find login by hash: {}" + secureHash);
+				return -1L;
+			}
 
 			if (soapLogin.isUsed()) {
 				if (soapLogin.getAllowSameURLMultipleTimes()) {

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java Wed Jan 27 10:04:44 2016
@@ -149,7 +149,7 @@ public class WhiteBoardService implement
 	 * @param canDraw
 	 * @return null in case of success, false otherwise
 	 */
-	public Boolean setCanDraw(String SID, String publicSID, boolean canDraw) {
+	public boolean setCanDraw(String SID, String publicSID, boolean canDraw) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
@@ -158,7 +158,6 @@ public class WhiteBoardService implement
 			Long users_id = sessiondataDao.checkSession(SID);
 
 			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
-
 				if (currentClient.getIsMod()) {
 					Client rcl = sessionManager.getClientByPublicSID(publicSID, null);
 
@@ -170,20 +169,17 @@ public class WhiteBoardService implement
 						newMessage.put(0, "updateDrawStatus");
 						newMessage.put(1, rcl);
 						scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanDraw]", err);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean setCanShare(String SID, String publicSID, boolean canShare) {
+	public boolean setCanShare(String SID, String publicSID, boolean canShare) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
@@ -203,20 +199,17 @@ public class WhiteBoardService implement
 						newMessage.put(0, "updateDrawStatus");
 						newMessage.put(1, rcl);
 						scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanShare]", err);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean setCanRemote(String SID, String publicSID, boolean canRemote) {
+	public boolean setCanRemote(String SID, String publicSID, boolean canRemote) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
@@ -236,20 +229,17 @@ public class WhiteBoardService implement
 						newMessage.put(0, "updateDrawStatus");
 						newMessage.put(1, rcl);
 						scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanDraw]", err);
 		}
-		return null;
+		return false;
 	}
 
-    public Boolean setCanGiveAudio(String SID, String publicSID, boolean canGiveAudio) {
+    public boolean setCanGiveAudio(String SID, String publicSID, boolean canGiveAudio) {
 		try {
             log.debug("[setCanGiveAudio] " + SID + ", " + publicSID + ", " + canGiveAudio);
 			IConnection current = Red5.getConnectionLocal();
@@ -270,17 +260,14 @@ public class WhiteBoardService implement
 				        newMessage.put(0, "updateGiveAudioStatus");
 				        newMessage.put(1, rcl);
 				        scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanGiveAudio]", err);
 		}
-		return null;
+		return false;
 	}
 
 	public WhiteboardSyncLockObject startNewSyncprocess() {
@@ -503,26 +490,29 @@ public class WhiteBoardService implement
 			Cliparts cl = new Cliparts();
 			cl.setFolderName("general");
 
-			String[] files_general = clipart_dir.list(getFilesOnly);
 			Comparator<String> comparator = ComparatorUtils.naturalComparator();
-			Arrays.sort(files_general, comparator);
-
-			cl.setGeneralList(files_general);
+			String[] files_general = clipart_dir.list(getFilesOnly);
+			if (files_general != null) {
+				Arrays.sort(files_general, comparator);
+				cl.setGeneralList(files_general);
+			}
 			cl.setSubCategories(new LinkedList<Cliparts>());
 
-			for (File dir : clipart_dir.listFiles(getDirectoriesOnly)) {
-				Cliparts cl_sub = new Cliparts();
-				cl_sub.setFolderName("math");
-				String[] files = dir.list(getFilesOnly);
-				if (files != null) {
-					Arrays.sort(files, comparator);
-					cl_sub.setGeneralList(files);
-					cl.getSubCategories().add(cl_sub);
+			File[] dirs = clipart_dir.listFiles(getDirectoriesOnly);
+			if (dirs != null) {
+				for (File dir : dirs) {
+					Cliparts cl_sub = new Cliparts();
+					cl_sub.setFolderName("math");
+					String[] files = dir.list(getFilesOnly);
+					if (files != null) {
+						Arrays.sort(files, comparator);
+						cl_sub.setGeneralList(files);
+						cl.getSubCategories().add(cl_sub);
+					}
 				}
 			}
 
 			return cl;
-
 		} catch (Exception err) {
 			log.error("[getClipArtIcons]", err);
 		}

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Wed Jan 27 10:04:44 2016
@@ -172,6 +172,10 @@ public class ScopeApplicationAdapter ext
 		Client rcm = sessionManager.addClientListItem(conn.getClient().getId(),
 				conn.getScope().getName(), conn.getRemotePort(),
 				conn.getRemoteAddress(), swfURL, null);
+		if (rcm == null) {
+			log.warn("Failed to create Client on room connect");
+			return false;
+		}
 		
 		SessionVariablesUtil.initClient(conn.getClient(), rcm.getPublicSID());
 		//TODO add similar code for other connections, merge with above block
@@ -182,14 +186,16 @@ public class ScopeApplicationAdapter ext
 			rcm.setScreenClient(true);
 			SessionVariablesUtil.setIsScreenClient(conn.getClient());
 			
-			rcm.setUserId(((Integer)map.get("userId")).longValue());
+			rcm.setUserId((Long)map.get("userId"));
 			SessionVariablesUtil.setUserId(conn.getClient(), rcm.getUserId());
 
 			rcm.setStreamPublishName(parentSid);
-			User u = userDao.get(rcm.getUserId() < 0 ? -rcm.getUserId() : rcm.getUserId());
-			rcm.setUsername(u.getLogin());
-			rcm.setFirstname(u.getFirstname());
-			rcm.setLastname(u.getLastname());
+			User u = userDao.get(rcm.getUserId() != null && rcm.getUserId() < 0 ? -rcm.getUserId() : rcm.getUserId());
+			if (u != null) {
+				rcm.setUsername(u.getLogin());
+				rcm.setFirstname(u.getFirstname());
+				rcm.setLastname(u.getLastname());
+			}
 			log.debug("publishName :: " + rcm.getStreamPublishName());
 			sessionManager.updateClientByStreamId(streamId, rcm, false, null);
 		}
@@ -950,8 +956,11 @@ public class ScopeApplicationAdapter ext
 	 */
 	public synchronized Long applyForModeration(String publicSID) {
 		try {
-
 			Client currentClient = sessionManager.getClientByPublicSID(publicSID, null);
+			if (currentClient == null) {
+				log.warn("Unable to find client by publicSID: {}", publicSID);
+				return -1L;
+			}
 
 			List<Client> currentModList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId());
 
@@ -963,7 +972,6 @@ public class ScopeApplicationAdapter ext
 
 				return room.isModerated() ? 3L : 1L;
 			}
-
 		} catch (Exception err) {
 			log.error("[applyForModeration]", err);
 		}

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java Wed Jan 27 10:04:44 2016
@@ -21,12 +21,17 @@ package org.apache.openmeetings.core.ser
 import javax.servlet.ServletContext;
 
 import org.apache.openmeetings.util.InitializationContainer;
+import org.springframework.web.context.WebApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 
 public class BeanUtil {
 	public <T> T getBean(Class<T> beanClass, ServletContext ctx) throws ServerNotInitializedException {
 		if (InitializationContainer.initComplete) {
-			return WebApplicationContextUtils.getWebApplicationContext(ctx).getBean(beanClass);
+			WebApplicationContext wc = WebApplicationContextUtils.getWebApplicationContext(ctx);
+			if (wc == null) {
+				throw new ServerNotInitializedException("Server not yet initialized (context is null), retry in couple of seconds");
+			}
+			return wc.getBean(beanClass);
 		} else {
 			throw new ServerNotInitializedException("Server not yet initialized, retry in couple of seconds");
 		}

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/DownloadHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/DownloadHandler.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/DownloadHandler.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/DownloadHandler.java Wed Jan 27 10:04:44 2016
@@ -211,11 +211,7 @@ public class DownloadHandler extends Bas
 					log.debug("full_path: " + full_path);
 
 					if (!full_path.exists() || !full_path.canRead()) {
-						if (!full_path.canRead()) {
-							log.debug("DownloadHandler: The request DEFAULT-file does not exist / has already been deleted");
-						} else {
-							log.debug("DownloadHandler: The request DEFAULT-file does not exist / has already been deleted");
-						}
+						log.debug("DownloadHandler: The request DEFAULT-file does not exist / has already been deleted");
 						// no file to handle abort processing
 						return;
 					}

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java Wed Jan 27 10:04:44 2016
@@ -67,7 +67,7 @@ public class NetworkTestingController {
         TestType testType = this.getTypeByString(typeStr);
 
         // choose data to send
-        byte[] data = null;
+        byte[] data = new byte[0];
         switch (testType) {
             case UNKNOWN:
                 return;

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java Wed Jan 27 10:04:44 2016
@@ -58,7 +58,6 @@ public class SessiondataDao {
 	 */
 	public Sessiondata startsession() {
 		try {
-
 			log.debug("startsession :: startsession");
 
 			long thistime = new Date().getTime();
@@ -139,7 +138,7 @@ public class SessiondataDao {
 	 * @param SID
 	 * @param userId
 	 */
-	public Boolean updateUser(String SID, long userId) {
+	public boolean updateUser(String SID, long userId) {
 		try {
 			log.debug("updateUser User: " + userId + " || " + SID);
 
@@ -172,7 +171,7 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUser]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
 	public boolean updateUser(String SID, long userId, boolean permanent, Long languageId) {
@@ -212,7 +211,7 @@ public class SessiondataDao {
 		return false;
 	}
 
-	public Boolean updateUserGroup(String SID, Long groupId) {
+	public boolean updateUserGroup(String SID, Long groupId) {
 		try {
 			log.debug("updateUserGroup User: " + groupId + " || " + SID);
 			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID);
@@ -244,10 +243,10 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUser]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean updateUserWithoutSession(String SID, Long userId) {
+	public boolean updateUserWithoutSession(String SID, Long userId) {
 		try {
 			log.debug("updateUser User: " + userId + " || " + SID);
 			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID);
@@ -279,10 +278,10 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUser]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean updateUserRemoteSession(String SID, String sessionXml) {
+	public boolean updateUserRemoteSession(String SID, String sessionXml) {
 		try {
 			log.debug("updateUser User SID: " + SID);
 
@@ -310,7 +309,7 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUserRemoteSession]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
 	/**
@@ -387,18 +386,19 @@ public class SessiondataDao {
 			for (Client rcl : sessionManager.getClientListByRoom(roomId)) {
 				String aux = rcl.getSwfurl();
 
+				//FIXME TODO this need to be refactored !
 				int init_pos = aux.indexOf("sid=") + 4;
 				int end_pos = init_pos + 32;
-				if (end_pos > aux.length())
+				if (end_pos > aux.length()) {
 					end_pos = aux.length();
+				}
 				String SID = aux.substring(init_pos, end_pos);
 
 				Sessiondata sData = getSessionByHash(SID);
-
-				sData = em.find(Sessiondata.class, sData.getId());
-				em.remove(sData);
+				if (sData != null) {
+					em.remove(sData);
+				}
 			}
-
 		} catch (Exception err) {
 			log.error("clearSessionByRoomId", err);
 		}

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Wed Jan 27 10:04:44 2016
@@ -236,11 +236,11 @@ public class UserDao implements IDataPro
 	// sebawagner, 01.10.2012
 	public User update(User user, String password, long updatedBy) throws NoSuchAlgorithmException, UnsupportedEncodingException {
 		User u = update(user, updatedBy);
-		if (password != null && !password.isEmpty()) {
+		if (u != null && password != null && !password.isEmpty()) {
 			//OpenJPA is not allowing to set fields not being fetched before
 			User u1 = get(u.getId(), true);
 			u1.updatePassword(cfgDao, password);
-			update(u1, updatedBy);
+			u = update(u1, updatedBy);
 		}
 		return u;
 	}
@@ -365,7 +365,7 @@ public class UserDao implements IDataPro
 			u = em.createNamedQuery("getUserByLogin", User.class)
 					.setParameter("login", login)
 					.setParameter("type", type)
-					.setParameter("domainId", domainId == null ? 0 : domainId)
+					.setParameter("domainId", domainId == null ? 0L : domainId)
 					.getSingleResult();
 		} catch (NoResultException ex) {
 		}
@@ -382,7 +382,7 @@ public class UserDao implements IDataPro
 			u = em.createNamedQuery("getUserByEmail", User.class)
 					.setParameter("email", email)
 					.setParameter("type", type)
-					.setParameter("domainId", domainId == null ? 0 : domainId)
+					.setParameter("domainId", domainId == null ? 0L : domainId)
 					.getSingleResult();
 		} catch (NoResultException ex) {
 		}

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java Wed Jan 27 10:04:44 2016
@@ -21,12 +21,10 @@ package org.apache.openmeetings.db.util;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.Calendar;
-import java.util.Date;
 import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,7 +50,6 @@ public class TimezoneUtil {
 	 */
 
 	public TimeZone getTimeZone(String timeZoneId) {
-
 		if (timeZoneId == null || timeZoneId.equals("")) {
 			return getDefaultTimeZone();
 		}
@@ -66,7 +63,6 @@ public class TimezoneUtil {
 	 * @return The current server configured time zone in the table configuration key: "default.timezone"
 	 */
 	public TimeZone getDefaultTimeZone() {
-
 		String defaultTzName = configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin");
 
 		TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(defaultTzName);
@@ -88,7 +84,6 @@ public class TimezoneUtil {
 	 * @return
 	 */
 	public TimeZone getTimeZone(User user) {
-
 		if (user != null && user.getTimeZoneId() != null) {
 
 			TimeZone timeZone = TimeZone.getTimeZone(user.getTimeZoneId());
@@ -98,43 +93,13 @@ public class TimezoneUtil {
 			}
 
 		}
-
 		// if user has not time zone get one from the server configuration
 		return getDefaultTimeZone();
 	}
 
-	/**
-	 * We ignore the fact that a Date Object is always in UTC internally and treat it as if it contains only dd.mm.yyyy
-	 * HH:mm:ss. We need to do this cause we cannot trust the Date Object send from the client. We have the timeZone
-	 * information additional to the Date, so we use it to transform it now to a Calendar Object.
-	 * 
-	 * @param dateTime
-	 * @param timezone
-	 * @return
-	 */
-	public static Calendar getCalendarInTimezone(String dateTimeStr, TimeZone timezone) {
-
-		Date dateTime = CalendarPatterns.parseImportDate(dateTimeStr);
-
-		Calendar calOrig = Calendar.getInstance();
-		calOrig.setTime(dateTime);
-
-		Calendar cal = Calendar.getInstance(timezone);
-		cal.set(Calendar.YEAR, calOrig.get(Calendar.YEAR));
-		cal.set(Calendar.MONTH, calOrig.get(Calendar.MONTH));
-		cal.set(Calendar.DATE, calOrig.get(Calendar.DATE));
-		cal.set(Calendar.HOUR_OF_DAY, calOrig.get(Calendar.HOUR_OF_DAY));
-		cal.set(Calendar.MINUTE, calOrig.get(Calendar.MINUTE));
-		cal.set(Calendar.SECOND, calOrig.get(Calendar.SECOND));
-		cal.set(Calendar.MILLISECOND, 0);
-
-		return cal;
-	}
-
 	public static long _getOffset(TimeZone timezone) {
 		Calendar cal = Calendar.getInstance();
 		cal.setTimeZone(timezone);
 		return cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET);
 	}
-
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java Wed Jan 27 10:04:44 2016
@@ -28,6 +28,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.Date;
 import java.util.Map;
 import java.util.TimeZone;
@@ -533,7 +534,7 @@ public class Admin {
 		ConfigurationDao cfgDao = getApplicationContext(ctxName).getBean(ConfigurationDao.class);
 		if (invalidPassword(cfg.password, cfgDao)) {
 			System.out.print("Please enter password for the user '" + cfg.username + "':");
-			cfg.password = new BufferedReader(new InputStreamReader(System.in)).readLine();
+			cfg.password = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8)).readLine();
 			if (invalidPassword(cfg.password, cfgDao)) {
 				System.out.println("Password was not provided, or too short, should be at least " + getMinPasswdLength(cfgDao) + " character long.");
 				System.exit(1);

Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java Wed Jan 27 10:04:44 2016
@@ -18,7 +18,10 @@
  */
 package org.apache.openmeetings.installation;
 
-import java.io.FileWriter;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.openmeetings.util.OmFileHelper;
 import org.dom4j.Document;
@@ -38,9 +41,11 @@ public class InstallationDocumentHandler
 		step.addElement("stepnumber").addText(stepNo.toString());
 		step.addElement("stepname").addText("Step " + stepNo);
 
-		XMLWriter writer = new XMLWriter(new FileWriter(OmFileHelper.getInstallFile()));
-		writer.write(document);
-		writer.close();
+		try (OutputStream os = new FileOutputStream(OmFileHelper.getInstallFile())) {
+			XMLWriter writer = new XMLWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8));
+			writer.write(document);
+			writer.close();
+		}
 	}
 
 	public static int getCurrentStepNumber() throws Exception {

Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java Wed Jan 27 10:04:44 2016
@@ -117,6 +117,9 @@ public class IcalHandler {
 		TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
 		
 		TimeZone timeZone = registry.getTimeZone(javaTzId);
+		if (timeZone == null) {
+			throw new Exception("Unable to get time zone by id provided: " + javaTzId);
+		}
 
 		DateTime start = new DateTime(startDate);
 		start.setTimeZone(timeZone);

Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/stringhandlers/ChatString.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/stringhandlers/ChatString.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/stringhandlers/ChatString.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/stringhandlers/ChatString.java Wed Jan 27 10:04:44 2016
@@ -20,8 +20,8 @@ package org.apache.openmeetings.util.str
 
 import java.text.CharacterIterator;
 import java.text.StringCharacterIterator;
-import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -41,9 +41,9 @@ public class ChatString {
 		return result;
 	}
 	
-	public static LinkedList<String[]> parseChatString(String message, LinkedList<LinkedList<String>> emotFiles, boolean allowHTML) {
+	public static List<String[]> parseChatString(String message, List<List<String>> emotFiles, boolean allowHTML) {
 		try {
-			LinkedList<String[]> list = new LinkedList<String[]>();
+			List<String[]> list = new LinkedList<>();
 
 			// log.debug("this.link(message) "+this.link(message));
 
@@ -53,17 +53,15 @@ public class ChatString {
 			String[] messageStr = { "text", message };
 			list.add(messageStr);
 
-			for (LinkedList<String> emot : emotFiles) {
+			for (List<String> emot : emotFiles) {
 				// log.error("CHECK EMOT: "+ emot.get(0) + emot.get(1) +
 				// emot.size());
-				list = splitStr(list, emot.get(0), emot.get(1),
-						emot.get(emot.size() - 2));
+				list = splitStr(list, emot.get(0), emot.get(1), emot.get(emot.size() - 2));
 
 				if (emot.size() > 4) {
 					// log.error("CHECK EMOT ASIAN: "+ emot.get(0) + emot.get(2)
 					// + emot.size());
-					list = splitStr(list, emot.get(0), emot.get(2),
-							emot.get(emot.size() - 2));
+					list = splitStr(list, emot.get(0), emot.get(2), emot.get(emot.size() - 2));
 				}
 			}
 
@@ -82,14 +80,10 @@ public class ChatString {
 		return null;
 	}
 
-	private static LinkedList<String[]> splitStr(LinkedList<String[]> list,
-			String image, String regexp, String spaces) {
+	private static List<String[]> splitStr(List<String[]> list, String image, String regexp, String spaces) {
+		List<String[]> newList = new LinkedList<>();
 
-		LinkedList<String[]> newList = new LinkedList<String[]>();
-
-		for (Iterator<String[]> iter = list.iterator(); iter.hasNext();) {
-
-			String[] messageObj = iter.next();
+		for (String[] messageObj : list) {
 			String messageTye = messageObj[0];
 
 			if (messageTye.equals("text")) {
@@ -101,8 +95,7 @@ public class ChatString {
 					String[] textA = { "text", newStr[k] };
 					newList.add(textA);
 					if (k + 1 != newStr.length) {
-						String[] imageA = { "image", image, spaces,
-								regexp.replace("\\", "") };
+						String[] imageA = { "image", image, spaces, regexp.replace("\\", "") };
 						newList.add(imageA);
 					}
 				}
@@ -116,10 +109,10 @@ public class ChatString {
 		return newList;
 	}
 
-	public static LinkedList<LinkedList<String>> replaceAllRegExp(LinkedList<LinkedList<String>> emotFiles) {
-		LinkedList<LinkedList<String>> emotfilesListNew = new LinkedList<LinkedList<String>>();
+	public static List<List<String>> replaceAllRegExp(List<List<String>> emotFiles) {
+		List<List<String>> emotfilesListNew = new LinkedList<List<String>>();
 		try {
-			for (LinkedList<String> emot : emotFiles) {
+			for (List<String> emot : emotFiles) {
 				// log.error("FILE: "+emot.get(0));
 				String westernMeaning = checkforRegex(emot.get(1));
 				emot.set(1, westernMeaning);

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java Wed Jan 27 10:04:44 2016
@@ -18,16 +18,19 @@
  */
 package org.apache.openmeetings.core.documents;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 
 import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.dom4j.Element;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -36,41 +39,34 @@ import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.XppDriver;
 
 public class LibraryWmlLoader {
-	
-	private static final Logger log = Red5LoggerFactory.getLogger(LibraryWmlLoader.class, OpenmeetingsVariables.webAppRootKey);
-	
+	private static final Logger log = Red5LoggerFactory.getLogger(LibraryWmlLoader.class, webAppRootKey);
 	private static final String fileExt = ".wml";
 	
 	@SuppressWarnings({ "rawtypes" })
 	public ArrayList loadWmlFile(String fileName){
-		BufferedReader reader = null;
 		try {
 			String name = fileName;
 			if (!name.endsWith(fileExt)) {
 				name += fileExt;
 			}
-			File filepathComplete = new File(OmFileHelper.getUploadWmlDir(), name);
-			log.debug("filepathComplete: "+filepathComplete);
+			File file = new File(OmFileHelper.getUploadWmlDir(), name);
+			log.debug("filepathComplete: " + file);
 			
 			XStream xStream = new XStream(new XppDriver());
 			xStream.setMode(XStream.NO_REFERENCES);
 			
-			reader = new BufferedReader(new FileReader(filepathComplete));
-		    ArrayList lMapList = (ArrayList) xStream.fromXML(reader);
-			
-			return lMapList;
+			try (InputStream is = new FileInputStream(file);
+					BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+			{
+				ArrayList lMapList = (ArrayList) xStream.fromXML(reader);
+				
+				return lMapList;
+			}
 		} catch (Exception err){
 			log.error("loadWmlFile",err);
-		} finally {
-			if (reader != null) {
-			    try {
-					reader.close();
-				} catch (IOException e) {}
-			}
 		}
 		
 		return null;
-		
 	}
 	
 	/**

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Wed Jan 27 10:04:44 2016
@@ -141,6 +141,10 @@ public class MainService implements IPen
 			log.debug("swfURL " + clientURL);
 
 			SOAPLogin soapLogin = soapLoginDao.get(secureHash);
+			if (soapLogin == null) {
+				log.warn("Unable to find login by hash: {}" + secureHash);
+				return -1L;
+			}
 
 			if (soapLogin.isUsed()) {
 				if (soapLogin.getAllowSameURLMultipleTimes()) {

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java Wed Jan 27 10:04:44 2016
@@ -149,7 +149,7 @@ public class WhiteBoardService implement
 	 * @param canDraw
 	 * @return null in case of success, false otherwise
 	 */
-	public Boolean setCanDraw(String SID, String publicSID, boolean canDraw) {
+	public boolean setCanDraw(String SID, String publicSID, boolean canDraw) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
@@ -158,7 +158,6 @@ public class WhiteBoardService implement
 			Long users_id = sessiondataDao.checkSession(SID);
 
 			if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
-
 				if (currentClient.getIsMod()) {
 					Client rcl = sessionManager.getClientByPublicSID(publicSID, null);
 
@@ -170,20 +169,17 @@ public class WhiteBoardService implement
 						newMessage.put(0, "updateDrawStatus");
 						newMessage.put(1, rcl);
 						scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanDraw]", err);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean setCanShare(String SID, String publicSID, boolean canShare) {
+	public boolean setCanShare(String SID, String publicSID, boolean canShare) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
@@ -203,20 +199,17 @@ public class WhiteBoardService implement
 						newMessage.put(0, "updateDrawStatus");
 						newMessage.put(1, rcl);
 						scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanShare]", err);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean setCanRemote(String SID, String publicSID, boolean canRemote) {
+	public boolean setCanRemote(String SID, String publicSID, boolean canRemote) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
@@ -236,20 +229,17 @@ public class WhiteBoardService implement
 						newMessage.put(0, "updateDrawStatus");
 						newMessage.put(1, rcl);
 						scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanDraw]", err);
 		}
-		return null;
+		return false;
 	}
 
-    public Boolean setCanGiveAudio(String SID, String publicSID, boolean canGiveAudio) {
+    public boolean setCanGiveAudio(String SID, String publicSID, boolean canGiveAudio) {
 		try {
             log.debug("[setCanGiveAudio] " + SID + ", " + publicSID + ", " + canGiveAudio);
 			IConnection current = Red5.getConnectionLocal();
@@ -270,17 +260,14 @@ public class WhiteBoardService implement
 				        newMessage.put(0, "updateGiveAudioStatus");
 				        newMessage.put(1, rcl);
 				        scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true);
-					} else {
-						return false;
+						return true;
 					}
-				} else {
-					return false;
 				}
 			}
 		} catch (Exception err) {
 			log.error("[setCanGiveAudio]", err);
 		}
-		return null;
+		return false;
 	}
 
 	public WhiteboardSyncLockObject startNewSyncprocess() {
@@ -503,26 +490,29 @@ public class WhiteBoardService implement
 			Cliparts cl = new Cliparts();
 			cl.setFolderName("general");
 
-			String[] files_general = clipart_dir.list(getFilesOnly);
 			Comparator<String> comparator = ComparatorUtils.naturalComparator();
-			Arrays.sort(files_general, comparator);
-
-			cl.setGeneralList(files_general);
+			String[] files_general = clipart_dir.list(getFilesOnly);
+			if (files_general != null) {
+				Arrays.sort(files_general, comparator);
+				cl.setGeneralList(files_general);
+			}
 			cl.setSubCategories(new LinkedList<Cliparts>());
 
-			for (File dir : clipart_dir.listFiles(getDirectoriesOnly)) {
-				Cliparts cl_sub = new Cliparts();
-				cl_sub.setFolderName("math");
-				String[] files = dir.list(getFilesOnly);
-				if (files != null) {
-					Arrays.sort(files, comparator);
-					cl_sub.setGeneralList(files);
-					cl.getSubCategories().add(cl_sub);
+			File[] dirs = clipart_dir.listFiles(getDirectoriesOnly);
+			if (dirs != null) {
+				for (File dir : dirs) {
+					Cliparts cl_sub = new Cliparts();
+					cl_sub.setFolderName("math");
+					String[] files = dir.list(getFilesOnly);
+					if (files != null) {
+						Arrays.sort(files, comparator);
+						cl_sub.setGeneralList(files);
+						cl.getSubCategories().add(cl_sub);
+					}
 				}
 			}
 
 			return cl;
-
 		} catch (Exception err) {
 			log.error("[getClipArtIcons]", err);
 		}

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Wed Jan 27 10:04:44 2016
@@ -163,6 +163,10 @@ public class ScopeApplicationAdapter ext
 		Client rcm = sessionManager.addClientListItem(conn.getClient().getId(),
 				conn.getScope().getName(), conn.getRemotePort(),
 				conn.getRemoteAddress(), swfURL, null);
+		if (rcm == null) {
+			log.warn("Failed to create Client on room connect");
+			return false;
+		}
 		
 		SessionVariablesUtil.initClient(conn.getClient(), rcm.getPublicSID());
 		//TODO add similar code for other connections, merge with above block
@@ -173,14 +177,16 @@ public class ScopeApplicationAdapter ext
 			rcm.setScreenClient(true);
 			SessionVariablesUtil.setIsScreenClient(conn.getClient());
 			
-			rcm.setUserId(((Integer)map.get("userId")).longValue());
+			rcm.setUserId((Long)map.get("userId"));
 			SessionVariablesUtil.setUserId(conn.getClient(), rcm.getUserId());
 
 			rcm.setStreamPublishName(parentSid);
-			User u = userDao.get(rcm.getUserId() < 0 ? -rcm.getUserId() : rcm.getUserId());
-			rcm.setUsername(u.getLogin());
-			rcm.setFirstname(u.getFirstname());
-			rcm.setLastname(u.getLastname());
+			User u = userDao.get(rcm.getUserId() != null && rcm.getUserId() < 0 ? -rcm.getUserId() : rcm.getUserId());
+			if (u != null) {
+				rcm.setUsername(u.getLogin());
+				rcm.setFirstname(u.getFirstname());
+				rcm.setLastname(u.getLastname());
+			}
 			log.debug("publishName :: " + rcm.getStreamPublishName());
 			sessionManager.updateClientByStreamId(streamId, rcm, false, null);
 		}
@@ -941,8 +947,11 @@ public class ScopeApplicationAdapter ext
 	 */
 	public synchronized Long applyForModeration(String publicSID) {
 		try {
-
 			Client currentClient = sessionManager.getClientByPublicSID(publicSID, null);
+			if (currentClient == null) {
+				log.warn("Unable to find client by publicSID: {}", publicSID);
+				return -1L;
+			}
 
 			List<Client> currentModList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId());
 
@@ -954,7 +963,6 @@ public class ScopeApplicationAdapter ext
 
 				return room.isModerated() ? 3L : 1L;
 			}
-
 		} catch (Exception err) {
 			log.error("[applyForModeration]", err);
 		}

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/BeanUtil.java Wed Jan 27 10:04:44 2016
@@ -21,12 +21,17 @@ package org.apache.openmeetings.core.ser
 import javax.servlet.ServletContext;
 
 import org.apache.openmeetings.util.InitializationContainer;
+import org.springframework.web.context.WebApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 
 public class BeanUtil {
 	public <T> T getBean(Class<T> beanClass, ServletContext ctx) throws ServerNotInitializedException {
 		if (InitializationContainer.initComplete) {
-			return WebApplicationContextUtils.getWebApplicationContext(ctx).getBean(beanClass);
+			WebApplicationContext wc = WebApplicationContextUtils.getWebApplicationContext(ctx);
+			if (wc == null) {
+				throw new ServerNotInitializedException("Server not yet initialized (context is null), retry in couple of seconds");
+			}
+			return wc.getBean(beanClass);
 		} else {
 			throw new ServerNotInitializedException("Server not yet initialized, retry in couple of seconds");
 		}

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/NetworkTestingController.java Wed Jan 27 10:04:44 2016
@@ -67,7 +67,7 @@ public class NetworkTestingController {
         TestType testType = this.getTypeByString(typeStr);
 
         // choose data to send
-        byte[] data = null;
+        byte[] data = new byte[0];
         switch (testType) {
             case UNKNOWN:
                 return;

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java Wed Jan 27 10:04:44 2016
@@ -58,7 +58,6 @@ public class SessiondataDao {
 	 */
 	public Sessiondata startsession() {
 		try {
-
 			log.debug("startsession :: startsession");
 
 			long thistime = new Date().getTime();
@@ -139,7 +138,7 @@ public class SessiondataDao {
 	 * @param SID
 	 * @param userId
 	 */
-	public Boolean updateUser(String SID, long userId) {
+	public boolean updateUser(String SID, long userId) {
 		try {
 			log.debug("updateUser User: " + userId + " || " + SID);
 
@@ -172,7 +171,7 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUser]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
 	public boolean updateUser(String SID, long userId, boolean permanent, Long languageId) {
@@ -212,7 +211,7 @@ public class SessiondataDao {
 		return false;
 	}
 
-	public Boolean updateUserGroup(String SID, Long groupId) {
+	public boolean updateUserGroup(String SID, Long groupId) {
 		try {
 			log.debug("updateUserGroup User: " + groupId + " || " + SID);
 			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID);
@@ -244,10 +243,10 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUser]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean updateUserWithoutSession(String SID, Long userId) {
+	public boolean updateUserWithoutSession(String SID, Long userId) {
 		try {
 			log.debug("updateUser User: " + userId + " || " + SID);
 			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID);
@@ -279,10 +278,10 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUser]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
-	public Boolean updateUserRemoteSession(String SID, String sessionXml) {
+	public boolean updateUserRemoteSession(String SID, String sessionXml) {
 		try {
 			log.debug("updateUser User SID: " + SID);
 
@@ -310,7 +309,7 @@ public class SessiondataDao {
 		} catch (Exception ex2) {
 			log.error("[updateUserRemoteSession]: ", ex2);
 		}
-		return null;
+		return false;
 	}
 
 	/**
@@ -387,18 +386,19 @@ public class SessiondataDao {
 			for (Client rcl : sessionManager.getClientListByRoom(roomId)) {
 				String aux = rcl.getSwfurl();
 
+				//FIXME TODO this need to be refactored !
 				int init_pos = aux.indexOf("sid=") + 4;
 				int end_pos = init_pos + 32;
-				if (end_pos > aux.length())
+				if (end_pos > aux.length()) {
 					end_pos = aux.length();
+				}
 				String SID = aux.substring(init_pos, end_pos);
 
 				Sessiondata sData = getSessionByHash(SID);
-
-				sData = em.find(Sessiondata.class, sData.getId());
-				em.remove(sData);
+				if (sData != null) {
+					em.remove(sData);
+				}
 			}
-
 		} catch (Exception err) {
 			log.error("clearSessionByRoomId", err);
 		}

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Wed Jan 27 10:04:44 2016
@@ -236,11 +236,11 @@ public class UserDao implements IDataPro
 	// sebawagner, 01.10.2012
 	public User update(User user, String password, long updatedBy) throws NoSuchAlgorithmException, UnsupportedEncodingException {
 		User u = update(user, updatedBy);
-		if (password != null && !password.isEmpty()) {
+		if (u != null && password != null && !password.isEmpty()) {
 			//OpenJPA is not allowing to set fields not being fetched before
 			User u1 = get(u.getId(), true);
 			u1.updatePassword(cfgDao, password);
-			update(u1, updatedBy);
+			u = update(u1, updatedBy);
 		}
 		return u;
 	}
@@ -365,7 +365,7 @@ public class UserDao implements IDataPro
 			u = em.createNamedQuery("getUserByLogin", User.class)
 					.setParameter("login", login)
 					.setParameter("type", type)
-					.setParameter("domainId", domainId == null ? 0 : domainId)
+					.setParameter("domainId", domainId == null ? 0L : domainId)
 					.getSingleResult();
 		} catch (NoResultException ex) {
 		}
@@ -382,7 +382,7 @@ public class UserDao implements IDataPro
 			u = em.createNamedQuery("getUserByEmail", User.class)
 					.setParameter("email", email)
 					.setParameter("type", type)
-					.setParameter("domainId", domainId == null ? 0 : domainId)
+					.setParameter("domainId", domainId == null ? 0L : domainId)
 					.getSingleResult();
 		} catch (NoResultException ex) {
 		}

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java Wed Jan 27 10:04:44 2016
@@ -21,12 +21,10 @@ package org.apache.openmeetings.db.util;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.Calendar;
-import java.util.Date;
 import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.util.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,7 +50,6 @@ public class TimezoneUtil {
 	 */
 
 	public TimeZone getTimeZone(String timeZoneId) {
-
 		if (timeZoneId == null || timeZoneId.equals("")) {
 			return getDefaultTimeZone();
 		}
@@ -66,7 +63,6 @@ public class TimezoneUtil {
 	 * @return The current server configured time zone in the table configuration key: "default.timezone"
 	 */
 	public TimeZone getDefaultTimeZone() {
-
 		String defaultTzName = configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin");
 
 		TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(defaultTzName);
@@ -88,7 +84,6 @@ public class TimezoneUtil {
 	 * @return
 	 */
 	public TimeZone getTimeZone(User user) {
-
 		if (user != null && user.getTimeZoneId() != null) {
 
 			TimeZone timeZone = TimeZone.getTimeZone(user.getTimeZoneId());
@@ -98,43 +93,13 @@ public class TimezoneUtil {
 			}
 
 		}
-
 		// if user has not time zone get one from the server configuration
 		return getDefaultTimeZone();
 	}
 
-	/**
-	 * We ignore the fact that a Date Object is always in UTC internally and treat it as if it contains only dd.mm.yyyy
-	 * HH:mm:ss. We need to do this cause we cannot trust the Date Object send from the client. We have the timeZone
-	 * information additional to the Date, so we use it to transform it now to a Calendar Object.
-	 * 
-	 * @param dateTime
-	 * @param timezone
-	 * @return
-	 */
-	public static Calendar getCalendarInTimezone(String dateTimeStr, TimeZone timezone) {
-
-		Date dateTime = CalendarPatterns.parseImportDate(dateTimeStr);
-
-		Calendar calOrig = Calendar.getInstance();
-		calOrig.setTime(dateTime);
-
-		Calendar cal = Calendar.getInstance(timezone);
-		cal.set(Calendar.YEAR, calOrig.get(Calendar.YEAR));
-		cal.set(Calendar.MONTH, calOrig.get(Calendar.MONTH));
-		cal.set(Calendar.DATE, calOrig.get(Calendar.DATE));
-		cal.set(Calendar.HOUR_OF_DAY, calOrig.get(Calendar.HOUR_OF_DAY));
-		cal.set(Calendar.MINUTE, calOrig.get(Calendar.MINUTE));
-		cal.set(Calendar.SECOND, calOrig.get(Calendar.SECOND));
-		cal.set(Calendar.MILLISECOND, 0);
-
-		return cal;
-	}
-
 	public static long _getOffset(TimeZone timezone) {
 		Calendar cal = Calendar.getInstance();
 		cal.setTimeZone(timezone);
 		return cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET);
 	}
-
 }

Modified: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java (original)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java Wed Jan 27 10:04:44 2016
@@ -28,6 +28,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.Date;
 import java.util.Map;
 import java.util.TimeZone;
@@ -533,7 +534,7 @@ public class Admin {
 		ConfigurationDao cfgDao = getApplicationContext(ctxName).getBean(ConfigurationDao.class);
 		if (invalidPassword(cfg.password, cfgDao)) {
 			System.out.print("Please enter password for the user '" + cfg.username + "':");
-			cfg.password = new BufferedReader(new InputStreamReader(System.in)).readLine();
+			cfg.password = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8)).readLine();
 			if (invalidPassword(cfg.password, cfgDao)) {
 				System.out.println("Password was not provided, or too short, should be at least " + getMinPasswdLength(cfgDao) + " character long.");
 				System.exit(1);

Modified: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java (original)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java Wed Jan 27 10:04:44 2016
@@ -18,7 +18,10 @@
  */
 package org.apache.openmeetings.installation;
 
-import java.io.FileWriter;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.openmeetings.util.OmFileHelper;
 import org.dom4j.Document;
@@ -38,9 +41,11 @@ public class InstallationDocumentHandler
 		step.addElement("stepnumber").addText(stepNo.toString());
 		step.addElement("stepname").addText("Step " + stepNo);
 
-		XMLWriter writer = new XMLWriter(new FileWriter(OmFileHelper.getInstallFile()));
-		writer.write(document);
-		writer.close();
+		try (OutputStream os = new FileOutputStream(OmFileHelper.getInstallFile())) {
+			XMLWriter writer = new XMLWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8));
+			writer.write(document);
+			writer.close();
+		}
 	}
 
 	public static int getCurrentStepNumber() throws Exception {

Modified: openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java?rev=1726989&r1=1726988&r2=1726989&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java (original)
+++ openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java Wed Jan 27 10:04:44 2016
@@ -117,6 +117,9 @@ public class IcalHandler {
 		TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
 		
 		TimeZone timeZone = registry.getTimeZone(javaTzId);
+		if (timeZone == null) {
+			throw new Exception("Unable to get time zone by id provided: " + javaTzId);
+		}
 
 		DateTime start = new DateTime(startDate);
 		start.setTimeZone(timeZone);