changeset 9:bf930a206bff

pdb file content streaming
author Evgeniy.Koshkin
date Thu, 25 Jul 2013 16:17:46 +0400
parents 3be628a8ec52
children a9e69fd3914d
files server/src/jetbrains/buildServer/symbols/DownloadSymbolFilesController.java
diffstat 1 files changed, 13 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/server/src/jetbrains/buildServer/symbols/DownloadSymbolFilesController.java	Thu Jul 25 14:27:48 2013 +0400
+++ b/server/src/jetbrains/buildServer/symbols/DownloadSymbolFilesController.java	Thu Jul 25 16:17:46 2013 +0400
@@ -7,18 +7,18 @@
 import jetbrains.buildServer.serverSide.artifacts.BuildArtifactsViewMode;
 import jetbrains.buildServer.serverSide.metadata.BuildMetadataEntry;
 import jetbrains.buildServer.serverSide.metadata.MetadataStorage;
+import jetbrains.buildServer.util.FileUtil;
 import jetbrains.buildServer.web.openapi.WebControllerManager;
 import jetbrains.buildServer.web.util.WebUtil;
-import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
 import org.apache.log4j.Logger;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.springframework.web.servlet.ModelAndView;
 
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.BufferedOutputStream;
+import java.io.InputStream;
 import java.util.Iterator;
 import java.util.Map;
 
@@ -70,10 +70,18 @@
       WebUtil.notFound(request, response, "Symbol file not found", null);
       return null;
     }
-    final ServletOutputStream out = response.getOutputStream();
-    final ZipArchiveOutputStream output = new ZipArchiveOutputStream(new BufferedOutputStream(out));
-    output.setEncoding(null);
 
+    BufferedOutputStream output = new BufferedOutputStream(response.getOutputStream());
+    try {
+      InputStream input = buildArtifact.getInputStream();
+      try {
+        FileUtil.copyStreams(input, output);
+      } finally {
+        FileUtil.close(input);
+      }
+    } finally {
+      FileUtil.close(output);
+    }
 
     return null;
   }