From feb8b6e8df497f80b0c294c2222d730d2e1b9f21 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 30 Aug 2012 11:41:50 +0200
Subject: [PATCH] OO-332: fix double import with import references without
 asking, fix export of portfolio

---
 .../org/olat/course/repository/ImportCourseController.java   | 3 ++-
 .../java/org/olat/portfolio/manager/EPXStreamHandler.java    | 5 +----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/olat/course/repository/ImportCourseController.java b/src/main/java/org/olat/course/repository/ImportCourseController.java
index bce11399723..6aee8b5d420 100644
--- a/src/main/java/org/olat/course/repository/ImportCourseController.java
+++ b/src/main/java/org/olat/course/repository/ImportCourseController.java
@@ -249,6 +249,7 @@ public class ImportCourseController extends BasicController implements IAddContr
 				logError("Directory "+exportDir.getAbsolutePath()+" not found", new FileNotFoundException());
 			}
 			// collect all nodes
+			nodeList.clear();
 			collectNodesAsList((CourseEditorTreeNode)course.getEditorTreeModel().getRootNode(), nodeList);
 			nodeListPos = 0;
 			boolean finished = processNodeList(ureq);
@@ -397,7 +398,7 @@ public class ImportCourseController extends BasicController implements IAddContr
 	 */
 	private boolean processNodeList(UserRequest ureq) {
 		while (nodeListPos < nodeList.size()) {
-			CourseEditorTreeNode nextNode = (CourseEditorTreeNode)nodeList.get(nodeListPos);
+			CourseEditorTreeNode nextNode = nodeList.get(nodeListPos);
 			nodeListPos++;
 			Controller ctrl = nextNode.getCourseNode().importNode(getExportDataDir(course), course, false, ureq, getWindowControl());
 			if (ctrl != null) {
diff --git a/src/main/java/org/olat/portfolio/manager/EPXStreamHandler.java b/src/main/java/org/olat/portfolio/manager/EPXStreamHandler.java
index 5b52f067608..c5cfd1956a2 100644
--- a/src/main/java/org/olat/portfolio/manager/EPXStreamHandler.java
+++ b/src/main/java/org/olat/portfolio/manager/EPXStreamHandler.java
@@ -126,21 +126,18 @@ public class EPXStreamHandler {
 	
 	public static final InputStream toStream(PortfolioStructure structure)
 	throws IOException {
-		String xmlStructure = myStream.toXML(structure);
 		try {
 			//prepare a zip
 			ByteArrayOutputStream out = new ByteArrayOutputStream();
 			ZipOutputStream zipOut = new ZipOutputStream(out);
 			zipOut.putNextEntry(new ZipEntry("map.xml"));
-			InputStream in = new ByteArrayInputStream(xmlStructure.getBytes("UTF8"));
-			IOUtils.copy(in, out);
+			myStream.toXML(structure, zipOut);
 			zipOut.closeEntry();
 			zipOut.close();
 			
 			//prepare media resource
 			byte[] outArray = out.toByteArray();
 			IOUtils.closeQuietly(out);
-			IOUtils.closeQuietly(in);
 			return new ByteArrayInputStream(outArray);
 		} catch (IOException e) {
 			log.error("Cannot export this map: " + structure, e);
-- 
GitLab