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