changeset 66:cee56ab3c315

fixed "java.lang.StringIndexOutOfBoundsException: String index out of range: -2" while processing requests on url's with double slaches (e.g. '/app/symbols//index2.txt')
author Evgeniy.Koshkin
date Wed, 26 Feb 2014 17:25:53 +0400
parents 8fcb224ce394
children d5dcce1dae94 4cc2258653ad d15927dab809
files server-tests/src/DownloadSymbolsControllerTest.java server/src/jetbrains/buildServer/symbols/DownloadSymbolsController.java
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/server-tests/src/DownloadSymbolsControllerTest.java	Wed Feb 26 16:15:18 2014 +0400
+++ b/server-tests/src/DownloadSymbolsControllerTest.java	Wed Feb 26 17:25:53 2014 +0400
@@ -66,6 +66,13 @@
   }
 
   @Test
+  public void request_pdb_two_slashes_in_url() throws Exception {
+    myRequest.setRequestURI("mock", "/app/symbols//index2.txt'");
+    doGet();
+    assertEquals(HttpStatus.SC_NOT_FOUND, myResponse.getStatus());
+  }
+
+  @Test
   public void request_pdb_invalid_url() throws Exception {
     myRequest.setRequestURI("mock", "/app/symbols/foo");
     doGet();
--- a/server/src/jetbrains/buildServer/symbols/DownloadSymbolsController.java	Wed Feb 26 16:15:18 2014 +0400
+++ b/server/src/jetbrains/buildServer/symbols/DownloadSymbolsController.java	Wed Feb 26 17:25:53 2014 +0400
@@ -60,7 +60,7 @@
   @Nullable
   @Override
   protected ModelAndView doHandle(final @NotNull HttpServletRequest request, final @NotNull HttpServletResponse response) throws Exception {
-    final String requestURI = request.getRequestURI();
+    final String requestURI = request.getRequestURI().replace("//", "/");
 
     if(requestURI.endsWith(SymbolsConstants.APP_SYMBOLS)){
       response.sendError(HttpServletResponse.SC_OK, "TeamCity Symbol Server available");