From 5e010729291f732d4f31cbf66649dbac1e795a59 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 27 Jul 2012 21:41:26 -0400 Subject: [PATCH] Fixes to relative path determination for symlinks (issue 116) --- src/com/gitblit/GitBlit.java | 38 +++++++++++++++++++++++++++++++++----- 1 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index f96340a..10b1253 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -58,6 +58,7 @@ import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.storage.file.WindowCache; import org.eclipse.jgit.storage.file.WindowCacheConfig; +import org.eclipse.jgit.transport.ServiceMayNotContinueException; import org.eclipse.jgit.transport.resolver.FileResolver; import org.eclipse.jgit.transport.resolver.RepositoryResolver; import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException; @@ -187,6 +188,15 @@ self().timezone = TimeZone.getTimeZone(tzid); } return self().timezone; + } + + /** + * Returns the user-defined blob encodings. + * + * @return an array of encodings, may be empty + */ + public static String [] getEncodings() { + return getStrings(Keys.web.blobEncodings).toArray(new String[0]); } @@ -503,9 +513,15 @@ userCookie = new Cookie(Constants.NAME, ""); } else { // set cookie for login - char[] cookie = userService.getCookie(user); - userCookie = new Cookie(Constants.NAME, new String(cookie)); - userCookie.setMaxAge(Integer.MAX_VALUE); + String cookie = userService.getCookie(user); + if (StringUtils.isEmpty(cookie)) { + // create empty cookie + userCookie = new Cookie(Constants.NAME, ""); + } else { + // create real cookie + userCookie = new Cookie(Constants.NAME, cookie); + userCookie.setMaxAge(Integer.MAX_VALUE); + } } userCookie.setPath("/"); response.addCookie(userCookie); @@ -763,6 +779,12 @@ + new File(repositoriesFolder, repositoryName).getAbsolutePath(), e); } } catch (ServiceNotEnabledException e) { + r = null; + if (logError) { + logger.error("GitBlit.getRepository(String) failed to find " + + new File(repositoriesFolder, repositoryName).getAbsolutePath(), e); + } + } catch (ServiceMayNotContinueException e) { r = null; if (logError) { logger.error("GitBlit.getRepository(String) failed to find " @@ -1072,6 +1094,8 @@ logger.error("Service not authorized", e); } catch (ServiceNotEnabledException e) { logger.error("Service not enabled", e); + } catch (ServiceMayNotContinueException e) { + logger.error("Service may not continue", e); } } @@ -1814,9 +1838,13 @@ // ensure that the current values are updated in the setting models for (String key : settings.getAllKeys(null)) { SettingModel setting = settingsModel.get(key); - if (setting != null) { - setting.currentValue = settings.getString(key, ""); + if (setting == null) { + // unreferenced setting, create a setting model + setting = new SettingModel(); + setting.name = key; + settingsModel.add(setting); } + setting.currentValue = settings.getString(key, ""); } settingsModel.pushScripts = getAllScripts(); return settingsModel; -- Gitblit v1.9.1