From 79cad53bba094cffa1d25581edbf4972a5158cd4 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 29 Nov 2013 11:03:01 -0500
Subject: [PATCH] Update to Moxie 0.9.1

---
 src/main/java/com/gitblit/DownloadZipServlet.java |   39 +++++++++++++++++++++------------------
 1 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/gitblit/DownloadZipServlet.java b/src/main/java/com/gitblit/DownloadZipServlet.java
index 8a4a710..82846da 100644
--- a/src/main/java/com/gitblit/DownloadZipServlet.java
+++ b/src/main/java/com/gitblit/DownloadZipServlet.java
@@ -16,7 +16,6 @@
 package com.gitblit;
 
 import java.io.IOException;
-import java.net.SocketException;
 import java.text.MessageFormat;
 import java.text.ParseException;
 import java.util.Date;
@@ -30,6 +29,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.gitblit.manager.IRepositoryManager;
+import com.gitblit.manager.IRuntimeManager;
 import com.gitblit.utils.CompressionUtils;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.MarkdownUtils;
@@ -38,25 +39,25 @@
 /**
  * Streams out a zip file from the specified repository for any tree path at any
  * revision.
- * 
+ *
  * @author James Moger
- * 
+ *
  */
 public class DownloadZipServlet extends HttpServlet {
 
 	private static final long serialVersionUID = 1L;
 
 	private transient Logger logger = LoggerFactory.getLogger(DownloadZipServlet.class);
-	
+
 	public static enum Format {
 		zip(".zip"), tar(".tar"), gz(".tar.gz"), xz(".tar.xz"), bzip2(".tar.bzip2");
-		
+
 		public final String extension;
-		
+
 		Format(String ext) {
 			this.extension = ext;
 		}
-		
+
 		public static Format fromName(String name) {
 			for (Format format : values()) {
 				if (format.name().equalsIgnoreCase(name)) {
@@ -73,7 +74,7 @@
 
 	/**
 	 * Returns an url to this servlet for the specified parameters.
-	 * 
+	 *
 	 * @param baseURL
 	 * @param repository
 	 * @param objectId
@@ -93,7 +94,7 @@
 
 	/**
 	 * Creates a zip stream from the repository of the requested data.
-	 * 
+	 *
 	 * @param request
 	 * @param response
 	 * @throws javax.servlet.ServletException
@@ -102,12 +103,13 @@
 	private void processRequest(javax.servlet.http.HttpServletRequest request,
 			javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException,
 			java.io.IOException {
-		if (!GitBlit.getBoolean(Keys.web.allowZipDownloads, true)) {
+		IStoredSettings settings = GitBlit.getManager(IRuntimeManager.class).getSettings();
+		if (!settings.getBoolean(Keys.web.allowZipDownloads, true)) {
 			logger.warn("Zip downloads are disabled");
 			response.sendError(HttpServletResponse.SC_FORBIDDEN);
 			return;
 		}
-		
+
 		Format format = Format.zip;
 		String repository = request.getParameter("r");
 		String basePath = request.getParameter("p");
@@ -116,7 +118,7 @@
 		if (!StringUtils.isEmpty(f)) {
 			format = Format.fromName(f);
 		}
-		
+
 		try {
 			String name = repository;
 			if (name.indexOf('/') > -1) {
@@ -130,10 +132,11 @@
 			if (!StringUtils.isEmpty(objectId)) {
 				name += "-" + objectId;
 			}
-						
-			Repository r = GitBlit.self().getRepository(repository);
+
+			IRepositoryManager repositoryManager = GitBlit.getManager(IRepositoryManager.class);
+			Repository r = repositoryManager.getRepository(repository);
 			if (r == null) {
-				if (GitBlit.self().isCollectingGarbage(repository)) {
+				if (repositoryManager.isCollectingGarbage(repository)) {
 					error(response, MessageFormat.format("# Error\nGitblit is busy collecting garbage in {0}", repository));
 					return;
 				} else {
@@ -175,14 +178,14 @@
 					CompressionUtils.bzip2(r, basePath, objectId, response.getOutputStream());
 					break;
 				}
-				
+
 				response.flushBuffer();
-			} catch (SocketException t) {
+			} catch (IOException t) {
 				String message = t.getMessage() == null ? "" : t.getMessage().toLowerCase();
 				if (message.contains("reset") || message.contains("broken pipe")) {
 					logger.error("Client aborted zip download: " + message);
 				} else {
-					logger.error("Failed to write attachment to client", t);	
+					logger.error("Failed to write attachment to client", t);
 				}
 			} catch (Throwable t) {
 				logger.error("Failed to write attachment to client", t);

--
Gitblit v1.9.1