You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by vd...@apache.org on 2016/11/03 06:30:46 UTC

svn commit: r1767822 - /openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java

Author: vdegtyarev
Date: Thu Nov  3 06:30:45 2016
New Revision: 1767822

URL: http://svn.apache.org/viewvc?rev=1767822&view=rev
Log:
OPENMEETINGS-1499 is fixed. BackupImport works as expected under OS Windows.

Modified:
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java

Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1767822&r1=1767821&r2=1767822&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java Thu Nov  3 06:30:45 2016
@@ -697,14 +697,16 @@ public class BackupImport {
 				throw new Exception(msg);
 			}
 		} else {
-			InputNode root = NodeBuilder.read(new FileInputStream(xml));
-			InputNode listNode = root.getNext();
-			if (listNodeName.equals(listNode.getName())) {
-				InputNode item = listNode.getNext();
-				while (item != null) {
-					T o = ser.read(clazz, item, false);
-					list.add(o);
-					item = listNode.getNext();
+			try (InputStream rootIs = new FileInputStream(xml)) {
+				InputNode root = NodeBuilder.read(rootIs);
+				InputNode listNode = root.getNext();
+				if (listNodeName.equals(listNode.getName())) {
+					InputNode item = listNode.getNext();
+					while (item != null) {
+						T o = ser.read(clazz, item, false);
+						list.add(o);
+						item = listNode.getNext();
+					}
 				}
 			}
 		}
@@ -738,66 +740,68 @@ public class BackupImport {
 			matcher.bind(Integer.class, IntegerTransform.class);
 			registry.bind(Date.class, DateConverter.class);
 			
-			InputNode root = NodeBuilder.read(new FileInputStream(xml));
-			InputNode root1 = NodeBuilder.read(new FileInputStream(xml)); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-			InputNode listNode = root.getNext();
-			InputNode listNode1 = root1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-			if (listNodeName.equals(listNode.getName())) {
-				InputNode item = listNode.getNext();
-				InputNode item1 = listNode1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-				while (item != null) {
-					FileExplorerItem f = ser.read(FileExplorerItem.class, item, false);
-					
-					boolean isFolder = false, isImage = false, isVideo = false, isPresentation = false, isStoredWmlFile = false, isChart = false;
-					//HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-					do {
-						if ("isChart".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isChart = true;
-						}
-						if ("isImage".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isImage = true;
-						}
-						if ("isVideo".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isVideo = true;
-						}
-						if ("isRecording".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							log.warn("Recording is stored in FileExplorer Items");
-							isVideo = true;
-						}
-						if ("isPresentation".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isPresentation = true;
-						}
-						if ("isStoredWmlFile".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isStoredWmlFile = true;
-						}
-						if ("isFolder".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isFolder = true;
-						}
-						item1 = listNode1.getNext(); //HACK to handle Address inside user
-					} while (item1 != null && !"fileExplorerItem".equals(item1.getName()));
-					
-					if (f.getType() == null) {
-						if (isChart) {
-							f.setType(FileItem.Type.PollChart);
-						}
-						if (isImage) {
-							f.setType(FileItem.Type.Image);
-						}
-						if (isVideo) {
-							f.setType(FileItem.Type.Video);
-						}
-						if (isPresentation) {
-							f.setType(FileItem.Type.Presentation);
-						}
-						if (isStoredWmlFile) {
-							f.setType(FileItem.Type.WmlFile);
-						}
-						if (isFolder) {
-							f.setType(FileItem.Type.Folder);
+			try (InputStream rootIs1 = new FileInputStream(xml); InputStream rootIs2 = new FileInputStream(xml);) {
+				InputNode root = NodeBuilder.read(rootIs1);
+				InputNode root1 = NodeBuilder.read(rootIs2); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
+				InputNode listNode = root.getNext();
+				InputNode listNode1 = root1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
+				if (listNodeName.equals(listNode.getName())) {
+					InputNode item = listNode.getNext();
+					InputNode item1 = listNode1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
+					while (item != null) {
+						FileExplorerItem f = ser.read(FileExplorerItem.class, item, false);
+						
+						boolean isFolder = false, isImage = false, isVideo = false, isPresentation = false, isStoredWmlFile = false, isChart = false;
+						//HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
+						do {
+							if ("isChart".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isChart = true;
+							}
+							if ("isImage".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isImage = true;
+							}
+							if ("isVideo".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isVideo = true;
+							}
+							if ("isRecording".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								log.warn("Recording is stored in FileExplorer Items");
+								isVideo = true;
+							}
+							if ("isPresentation".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isPresentation = true;
+							}
+							if ("isStoredWmlFile".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isStoredWmlFile = true;
+							}
+							if ("isFolder".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isFolder = true;
+							}
+							item1 = listNode1.getNext(); //HACK to handle Address inside user
+						} while (item1 != null && !"fileExplorerItem".equals(item1.getName()));
+						
+						if (f.getType() == null) {
+							if (isChart) {
+								f.setType(FileItem.Type.PollChart);
+							}
+							if (isImage) {
+								f.setType(FileItem.Type.Image);
+							}
+							if (isVideo) {
+								f.setType(FileItem.Type.Video);
+							}
+							if (isPresentation) {
+								f.setType(FileItem.Type.Presentation);
+							}
+							if (isStoredWmlFile) {
+								f.setType(FileItem.Type.WmlFile);
+							}
+							if (isFolder) {
+								f.setType(FileItem.Type.Folder);
+							}
 						}
+						list.add(f);
+						item = listNode.getNext();
 					}
-					list.add(f);
-					item = listNode.getNext();
 				}
 			}
 		}
@@ -819,30 +823,32 @@ public class BackupImport {
 			registry.bind(Date.class, DateConverter.class);
 			registry.bind(Recording.Status.class, RecordingStatusConverter.class);
 			
-			InputNode root = NodeBuilder.read(new FileInputStream(xml));
-			InputNode root1 = NodeBuilder.read(new FileInputStream(xml)); //HACK to handle old isFolder
-			InputNode listNode = root.getNext();
-			InputNode listNode1 = root1.getNext(); //HACK to handle old isFolder
-			if (listNodeName.equals(listNode.getName())) {
-				InputNode item = listNode.getNext();
-				InputNode item1 = listNode1.getNext(); //HACK to handle old isFolder
-				while (item != null) {
-					Recording r = ser.read(Recording.class, item, false);
-					
-					boolean isFolder = false;
-					//HACK to handle old isFolder
-					do {
-						if ("isFolder".equals(item1.getName()) && "true".equals(item1.getValue())) {
-							isFolder = true;
+			try (InputStream rootIs1 = new FileInputStream(xml); InputStream rootIs2 = new FileInputStream(xml);) {
+				InputNode root = NodeBuilder.read(rootIs1);
+				InputNode root1 = NodeBuilder.read(rootIs2); //HACK to handle old isFolder
+				InputNode listNode = root.getNext();
+				InputNode listNode1 = root1.getNext(); //HACK to handle old isFolder
+				if (listNodeName.equals(listNode.getName())) {
+					InputNode item = listNode.getNext();
+					InputNode item1 = listNode1.getNext(); //HACK to handle old isFolder
+					while (item != null) {
+						Recording r = ser.read(Recording.class, item, false);
+						
+						boolean isFolder = false;
+						//HACK to handle old isFolder
+						do {
+							if ("isFolder".equals(item1.getName()) && "true".equals(item1.getValue())) {
+								isFolder = true;
+							}
+							item1 = listNode1.getNext(); //HACK to handle Address inside user
+						} while (item1 != null && !"flvrecording".equals(item1.getName()));
+						
+						if (r.getType() == null) {
+							r.setType(isFolder ? FileItem.Type.Folder : FileItem.Type.Recording);
 						}
-						item1 = listNode1.getNext(); //HACK to handle Address inside user
-					} while (item1 != null && !"flvrecording".equals(item1.getName()));
-					
-					if (r.getType() == null) {
-						r.setType(isFolder ? FileItem.Type.Folder : FileItem.Type.Recording);
+						list.add(r);
+						item = listNode.getNext();
 					}
-					list.add(r);
-					item = listNode.getNext();
 				}
 			}
 		}