From 697905cbf3b6fc1d8f22322a4f403b4abe2f0c0a Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Mon, 07 Dec 2015 18:09:26 -0500 Subject: [PATCH] fix for #967 filestore menu for all users --- src/main/java/com/gitblit/servlet/RawServlet.java | 25 ++++++++----------------- 1 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/RawServlet.java b/src/main/java/com/gitblit/servlet/RawServlet.java index 09f9f8a..81793bc 100644 --- a/src/main/java/com/gitblit/servlet/RawServlet.java +++ b/src/main/java/com/gitblit/servlet/RawServlet.java @@ -166,23 +166,14 @@ } // determine repository and resource from url - String repository = ""; + String repository = path; Repository r = null; - int offset = 0; - while (r == null) { - int slash = path.indexOf('/', offset); - if (slash == -1) { - repository = path; - } else { - repository = path.substring(0, slash); - } - offset = ( slash + 1 ); + int terminator = repository.length(); + do { + repository = repository.substring(0, terminator); r = repositoryManager.getRepository(repository, false); - if (repository.equals(path)) { - // either only repository in url or no repository found - break; - } - } + terminator = repository.lastIndexOf('/'); + } while (r == null && terminator > -1 ); ServletContext context = request.getSession().getServletContext(); @@ -242,7 +233,7 @@ try { String ext = StringUtils.getFileExtension(file).toLowerCase(); - String contentType = quickContentTypes.get(ext); + String contentType = file.charAt(0) == '.' ? "text/plain" : quickContentTypes.get(ext); if (contentType == null) { List<String> exts = runtimeManager.getSettings().getStrings(Keys.web.prettyPrintExtensions); @@ -468,7 +459,7 @@ served = true; } } finally { - tw.release(); + tw.close(); rw.dispose(); } -- Gitblit v1.9.1