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);


Reply via email to