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

svn commit: r1760260 - in /openmeetings/application: branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/ branches/3.2.x/openmeetings-db...

Author: solomax
Date: Sun Sep 11 16:22:08 2016
New Revision: 1760260

URL: http://svn.apache.org/viewvc?rev=1760260&view=rev
Log:
[OPENMEETINGS-1457] WB is partially fixed, WB video storing is changed

Modified:
    openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
    openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
    openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java

Modified: openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Sun Sep 11 16:22:08 2016
@@ -89,10 +89,6 @@ public class FlvExplorerConverter extend
 			returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + f.getId(), argv_previewFLV));
 
 			fileDao.update(f);
-
-			for (ConverterProcessResult returnMap : returnLog) {
-				fileLogDao.add(returnMap.getProcess(), null, returnMap);
-			}
 		} catch (Exception err) {
 			log.error("[convertToFLV]", err);
 			returnLog.add(new ConverterProcessResult("convertToMP4", err.getMessage(), err));

Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java Sun Sep 11 16:22:08 2016
@@ -96,6 +96,11 @@ public class WhiteboardObject {
 		zIndex = 1;
 	}
 
+	//getter is required, otherwise roomItems are not available in red5
+	public Map<String, List<Object>> getRoomItems() {
+		return roomItems;
+	}
+
 	public void add(String oid, List<Object> actionObject) {
 		Object type = actionObject.size() > 0 ? actionObject.get(0) : "";
 		if (actionObject.size() > 8 && ("swf".equals(type) || "image".equals(type) || "flv".equals(type))) {

Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java Sun Sep 11 16:22:08 2016
@@ -112,20 +112,19 @@ public class FileExplorerItem extends Fi
 	@Override
 	protected File internalGetFile(String ext) {
 		File f = null;
+		File d = new File(OmFileHelper.getUploadFilesDir(), getHash());
 		switch (getType()) {
 			case WmlFile:
 				f = new File(OmFileHelper.getUploadWmlDir(), String.format("%s.%s", getHash(), ext == null ? EXTENSION_WML : ext));
 				break;
 			case Image:
-				f = new File(OmFileHelper.getUploadFilesDir(), String.format("%s.%s", getHash(), ext == null ? EXTENSION_JPG : ext));
+				f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_JPG : ext));
 				break;
 			case Video:
-				f = new File(OmFileHelper.getStreamsHibernateDir(), String.format("%s%s.%s", WB_VIDEO_FILE_PREFIX, getId(), ext == null ? EXTENSION_MP4 : ext));
+				f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_MP4 : ext));
 				break;
-			case Presentation: {
-					File d = new File(OmFileHelper.getUploadFilesDir(), getHash());
-					f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_SWF : ext));
-				}
+			case Presentation:
+				f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_SWF : ext));
 				break;
 			case PollChart:
 			case Folder:

Modified: openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java Sun Sep 11 16:22:08 2016
@@ -37,7 +37,7 @@ import org.slf4j.Logger;
 public class ConverterProcessResultList {
 	private static final Logger log = getLogger(ConverterProcessResultList.class, webAppRootKey);
 
-	private Map<String, ConverterProcessResult> jobslist = new LinkedHashMap<>();
+	private Map<String, ConverterProcessResult> jobs = new LinkedHashMap<>();
 
 	private Long fileItemId;
 	private String completeName;
@@ -59,11 +59,11 @@ public class ConverterProcessResultList
 	}
 
 	public ConverterProcessResult addItem(String name, ConverterProcessResult processResult) {
-		if (jobslist.containsKey(name)) {
+		if (jobs.containsKey(name)) {
 			log.error("Duplicate key in jobslist");
 			return null;
 		}
-		return jobslist.put(name, processResult);
+		return jobs.put(name, processResult);
 	}
 
 	/**
@@ -72,7 +72,7 @@ public class ConverterProcessResultList
 	 * @return
 	 */
 	public boolean hasError() {
-		for (Entry<String, ConverterProcessResult> entry : jobslist.entrySet()) {
+		for (Entry<String, ConverterProcessResult> entry : jobs.entrySet()) {
 			if (!entry.getValue().isOk()) {
 				return true;
 			}
@@ -87,7 +87,7 @@ public class ConverterProcessResultList
 	 */
 	public String getLogMessage() {
 		StringBuilder logMessage = new StringBuilder();
-		for (Entry<String, ConverterProcessResult> entry : jobslist.entrySet()) {
+		for (Entry<String, ConverterProcessResult> entry : jobs.entrySet()) {
 			logMessage.append("key: ");
 			logMessage.append(entry.getKey());
 			logMessage.append("\r\n");
@@ -97,7 +97,10 @@ public class ConverterProcessResultList
 	}
 
 	public int size() {
-		return jobslist.size();
+		return jobs.size();
 	}
 
+	public Map<String, ConverterProcessResult> getJobs() {
+		return jobs;
+	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Sun Sep 11 16:22:08 2016
@@ -25,11 +25,10 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_PUBLIC;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
@@ -73,12 +72,7 @@ public class RoomMenuPanel extends Panel
 	private final MenuPanel menuPanel;
 	private final StartSharingButton shareBtn;
 	private final Label roomName;
-	private static ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() {
-		@Override
-		protected DateFormat initialValue() {
-			return new SimpleDateFormat("dd.MM.yyyy HH:mm");
-		};
-	};
+	private static final FastDateFormat df = FastDateFormat.getInstance("dd.MM.yyyy HH:mm");
 	private final OmButton askBtn = new OmButton("ask") {
 		private static final long serialVersionUID = 1L;
 		{
@@ -291,7 +285,7 @@ public class RoomMenuPanel extends Panel
 			org.apache.openmeetings.db.entity.room.Client recUser = sessMngr.getClientByPublicSID(room.getRecordingUser(), null); //TODO check server
 			if (recUser != null) {
 				roomTitle.append(String.format("%s %s %s %s %s", getString("419")
-						, recUser.getUsername(), recUser.getFirstname(), recUser.getLastname(), df.get().format(recUser.getConnectedSince())));
+						, recUser.getUsername(), recUser.getFirstname(), recUser.getLastname(), df.format(recUser.getConnectedSince())));
 				roomClass.append(" screen");
 			}
 			org.apache.openmeetings.db.entity.room.Client pubUser = sessMngr.getClientByPublicSID(room.getPublishingUser(), null); //TODO check server
@@ -336,9 +330,10 @@ public class RoomMenuPanel extends Panel
 	}
 	
 	public static void roomExit(Client c, boolean broadcast) {
+		Long roomId = c.getRoomId();
 		removeUserFromRoom(c);
-		if (broadcast) {
-			RoomPanel.broadcast(new RoomMessage(c.getRoomId(), c.getUserId(), RoomMessage.Type.roomExit));
+		if (broadcast && roomId != null) {
+			RoomPanel.broadcast(new RoomMessage(roomId, c.getUserId(), RoomMessage.Type.roomExit));
 		}
 	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java Sun Sep 11 16:22:08 2016
@@ -24,12 +24,15 @@ import static org.apache.openmeetings.we
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map.Entry;
 
 import org.apache.openmeetings.core.data.file.FileProcessor;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.util.StoredFile;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.room.RoomPanel;
@@ -194,9 +197,12 @@ public class UploadDialog extends Abstra
 			f.setInsertedBy(getUserId());
 			
 			try {
-				ConverterProcessResultList result = getBean(FileProcessor.class).processFile(getUserId(), f, fu.getInputStream());
+				ConverterProcessResultList logs = getBean(FileProcessor.class).processFile(getUserId(), f, fu.getInputStream());
+				for (Entry<String, ConverterProcessResult> entry : logs.getJobs().entrySet()) {
+					getBean(FileItemLogDao.class).add(entry.getValue().getProcess(), f, entry.getValue());
+				}
 				room.getSidebar().updateFiles(target);
-				if (result.hasError()) {
+				if (logs.hasError()) {
 					form.error(getString("convert.errors.file"));
 					onError(target);
 				} else {

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Sun Sep 11 16:22:08 2016
@@ -89,10 +89,6 @@ public class FlvExplorerConverter extend
 			returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + f.getId(), argv_previewFLV));
 
 			fileDao.update(f);
-
-			for (ConverterProcessResult returnMap : returnLog) {
-				fileLogDao.add(returnMap.getProcess(), null, returnMap);
-			}
 		} catch (Exception err) {
 			log.error("[convertToFLV]", err);
 			returnLog.add(new ConverterProcessResult("convertToMP4", err.getMessage(), err));

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java Sun Sep 11 16:22:08 2016
@@ -96,6 +96,11 @@ public class WhiteboardObject {
 		zIndex = 1;
 	}
 
+	//getter is required, otherwise roomItems are not available in red5
+	public Map<String, List<Object>> getRoomItems() {
+		return roomItems;
+	}
+
 	public void add(String oid, List<Object> actionObject) {
 		Object type = actionObject.size() > 0 ? actionObject.get(0) : "";
 		if (actionObject.size() > 8 && ("swf".equals(type) || "image".equals(type) || "flv".equals(type))) {

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java Sun Sep 11 16:22:08 2016
@@ -112,20 +112,19 @@ public class FileExplorerItem extends Fi
 	@Override
 	protected File internalGetFile(String ext) {
 		File f = null;
+		File d = new File(OmFileHelper.getUploadFilesDir(), getHash());
 		switch (getType()) {
 			case WmlFile:
 				f = new File(OmFileHelper.getUploadWmlDir(), String.format("%s.%s", getHash(), ext == null ? EXTENSION_WML : ext));
 				break;
 			case Image:
-				f = new File(OmFileHelper.getUploadFilesDir(), String.format("%s.%s", getHash(), ext == null ? EXTENSION_JPG : ext));
+				f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_JPG : ext));
 				break;
 			case Video:
-				f = new File(OmFileHelper.getStreamsHibernateDir(), String.format("%s%s.%s", WB_VIDEO_FILE_PREFIX, getId(), ext == null ? EXTENSION_MP4 : ext));
+				f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_MP4 : ext));
 				break;
-			case Presentation: {
-					File d = new File(OmFileHelper.getUploadFilesDir(), getHash());
-					f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_SWF : ext));
-				}
+			case Presentation:
+				f = new File(d, String.format("%s.%s", getHash(), ext == null ? EXTENSION_SWF : ext));
 				break;
 			case PollChart:
 			case Folder:

Modified: openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java (original)
+++ openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java Sun Sep 11 16:22:08 2016
@@ -37,7 +37,7 @@ import org.slf4j.Logger;
 public class ConverterProcessResultList {
 	private static final Logger log = getLogger(ConverterProcessResultList.class, webAppRootKey);
 
-	private Map<String, ConverterProcessResult> jobslist = new LinkedHashMap<>();
+	private Map<String, ConverterProcessResult> jobs = new LinkedHashMap<>();
 
 	private Long fileItemId;
 	private String completeName;
@@ -59,11 +59,11 @@ public class ConverterProcessResultList
 	}
 
 	public ConverterProcessResult addItem(String name, ConverterProcessResult processResult) {
-		if (jobslist.containsKey(name)) {
+		if (jobs.containsKey(name)) {
 			log.error("Duplicate key in jobslist");
 			return null;
 		}
-		return jobslist.put(name, processResult);
+		return jobs.put(name, processResult);
 	}
 
 	/**
@@ -72,7 +72,7 @@ public class ConverterProcessResultList
 	 * @return
 	 */
 	public boolean hasError() {
-		for (Entry<String, ConverterProcessResult> entry : jobslist.entrySet()) {
+		for (Entry<String, ConverterProcessResult> entry : jobs.entrySet()) {
 			if (!entry.getValue().isOk()) {
 				return true;
 			}
@@ -87,7 +87,7 @@ public class ConverterProcessResultList
 	 */
 	public String getLogMessage() {
 		StringBuilder logMessage = new StringBuilder();
-		for (Entry<String, ConverterProcessResult> entry : jobslist.entrySet()) {
+		for (Entry<String, ConverterProcessResult> entry : jobs.entrySet()) {
 			logMessage.append("key: ");
 			logMessage.append(entry.getKey());
 			logMessage.append("\r\n");
@@ -97,7 +97,10 @@ public class ConverterProcessResultList
 	}
 
 	public int size() {
-		return jobslist.size();
+		return jobs.size();
 	}
 
+	public Map<String, ConverterProcessResult> getJobs() {
+		return jobs;
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Sun Sep 11 16:22:08 2016
@@ -25,11 +25,10 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_PUBLIC;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
@@ -73,12 +72,7 @@ public class RoomMenuPanel extends Panel
 	private final MenuPanel menuPanel;
 	private final StartSharingButton shareBtn;
 	private final Label roomName;
-	private static ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() {
-		@Override
-		protected DateFormat initialValue() {
-			return new SimpleDateFormat("dd.MM.yyyy HH:mm");
-		};
-	};
+	private static final FastDateFormat df = FastDateFormat.getInstance("dd.MM.yyyy HH:mm");
 	private final OmButton askBtn = new OmButton("ask") {
 		private static final long serialVersionUID = 1L;
 		{
@@ -291,7 +285,7 @@ public class RoomMenuPanel extends Panel
 			org.apache.openmeetings.db.entity.room.Client recUser = sessMngr.getClientByPublicSID(room.getRecordingUser(), null); //TODO check server
 			if (recUser != null) {
 				roomTitle.append(String.format("%s %s %s %s %s", getString("419")
-						, recUser.getUsername(), recUser.getFirstname(), recUser.getLastname(), df.get().format(recUser.getConnectedSince())));
+						, recUser.getUsername(), recUser.getFirstname(), recUser.getLastname(), df.format(recUser.getConnectedSince())));
 				roomClass.append(" screen");
 			}
 			org.apache.openmeetings.db.entity.room.Client pubUser = sessMngr.getClientByPublicSID(room.getPublishingUser(), null); //TODO check server
@@ -336,9 +330,10 @@ public class RoomMenuPanel extends Panel
 	}
 	
 	public static void roomExit(Client c, boolean broadcast) {
+		Long roomId = c.getRoomId();
 		removeUserFromRoom(c);
-		if (broadcast) {
-			RoomPanel.broadcast(new RoomMessage(c.getRoomId(), c.getUserId(), RoomMessage.Type.roomExit));
+		if (broadcast && roomId != null) {
+			RoomPanel.broadcast(new RoomMessage(roomId, c.getUserId(), RoomMessage.Type.roomExit));
 		}
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java?rev=1760260&r1=1760259&r2=1760260&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java Sun Sep 11 16:22:08 2016
@@ -24,12 +24,15 @@ import static org.apache.openmeetings.we
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map.Entry;
 
 import org.apache.openmeetings.core.data.file.FileProcessor;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.util.StoredFile;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.room.RoomPanel;
@@ -194,9 +197,12 @@ public class UploadDialog extends Abstra
 			f.setInsertedBy(getUserId());
 			
 			try {
-				ConverterProcessResultList result = getBean(FileProcessor.class).processFile(getUserId(), f, fu.getInputStream());
+				ConverterProcessResultList logs = getBean(FileProcessor.class).processFile(getUserId(), f, fu.getInputStream());
+				for (Entry<String, ConverterProcessResult> entry : logs.getJobs().entrySet()) {
+					getBean(FileItemLogDao.class).add(entry.getValue().getProcess(), f, entry.getValue());
+				}
 				room.getSidebar().updateFiles(target);
-				if (result.hasError()) {
+				if (logs.hasError()) {
 					form.error(getString("convert.errors.file"));
 					onError(target);
 				} else {