From: Sébastien Lesaint Date: Mon, 10 Jul 2017 14:15:19 +0000 (+0200) Subject: SONAR-9488 do not fail when reading file part fails X-Git-Tag: 6.6-RC1~862 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=10990f355eaf09bf8c4f65d8d94674d2558221f1;p=sonarqube.git SONAR-9488 do not fail when reading file part fails --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java b/server/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java index 5308d825f1c..5c0afa73a14 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java @@ -29,6 +29,7 @@ import javax.annotation.CheckForNull; import javax.servlet.http.HttpServletRequest; import org.sonar.api.server.ws.internal.PartImpl; import org.sonar.api.server.ws.internal.ValidatingRequest; +import org.sonar.api.utils.log.Loggers; import org.sonarqube.ws.MediaTypes; import static com.google.common.base.MoreObjects.firstNonNull; @@ -99,7 +100,8 @@ public class ServletRequest extends ValidatingRequest { } return new PartImpl(part.getInputStream(), part.getSubmittedFileName()); } catch (Exception e) { - throw new IllegalStateException("Can't read file part", e); + Loggers.get(ServletRequest.class).warn("Can't read file part for parameter " + key, e); + return null; } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/ws/ServletRequestTest.java b/server/sonar-server/src/test/java/org/sonar/server/ws/ServletRequestTest.java index 429ddcd8a25..4fc4a5c8c08 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ws/ServletRequestTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ws/ServletRequestTest.java @@ -156,7 +156,7 @@ public class ServletRequestTest { } @Test - public void throw_ISE_when_invalid_part() throws Exception { + public void returns_null_when_invalid_part() throws Exception { when(source.getContentType()).thenReturn("multipart/form-data"); InputStream file = mock(InputStream.class); Part part = mock(Part.class); @@ -164,10 +164,7 @@ public class ServletRequestTest { when(part.getInputStream()).thenReturn(file); doThrow(IllegalArgumentException.class).when(source).getPart("param1"); - expectedException.expect(IllegalStateException.class); - expectedException.expectMessage("Can't read file part"); - - underTest.readInputStreamParam("param1"); + assertThat(underTest.readInputStreamParam("param1")).isNull(); } @Test