FIX: Support path-based project names. Allow to correctly manage a hierarchy path project name in the request URI. Previously only the last part of the URI request after the forward slash was taken into account; this was breaking in case of path-based project names. Example: myprojects/project1 as project name => generated a "cannot open repository" in branch-network. Change-Id: Iec94112b9a807bea4661ea7a1f7a7ca88e80e18b Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/JsonService.java b/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/JsonService.java index 282e12e..8f64110 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/JsonService.java +++ b/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/JsonService.java
@@ -58,9 +58,19 @@ } protected String getProjectName(HttpServletRequest req) { + String servletPath = req.getServletPath(); String reqURI = req.getRequestURI(); - String[] reqParts = reqURI.split("/"); - return reqParts[reqParts.length-1]; - } + int servletPathPos = reqURI.indexOf(servletPath); + String projectName = + reqURI.substring(servletPathPos + servletPath.length()); + if (projectName.startsWith("/")) { + projectName = projectName.substring(1); + } + if (projectName.endsWith("/")) { + projectName = projectName.substring(0, projectName.length() - 1); + } + + return projectName; + } }