mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
do not expose IOException
This commit is contained in:
@@ -47,7 +47,7 @@ public class WebResourceServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
|
||||||
String uri = normalizeUri(request);
|
String uri = normalizeUri(request);
|
||||||
|
|
||||||
LOG.trace("try to load {}", uri);
|
LOG.trace("try to load {}", uri);
|
||||||
@@ -55,7 +55,16 @@ public class WebResourceServlet extends HttpServlet {
|
|||||||
if (url != null) {
|
if (url != null) {
|
||||||
serveResource(response, url);
|
serveResource(response, url);
|
||||||
} else {
|
} else {
|
||||||
|
dispatch(request, response, uri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dispatch(HttpServletRequest request, HttpServletResponse response, String uri) {
|
||||||
|
try {
|
||||||
pushStateDispatcher.dispatch(request, response, uri);
|
pushStateDispatcher.dispatch(request, response, uri);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
LOG.error("failed to dispatch: " + uri, ex);
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -105,6 +105,14 @@ public class WebResourceServletTest {
|
|||||||
verify(response).setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
verify(response).setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDoGetWithDispatcherException() throws IOException {
|
||||||
|
when(request.getRequestURI()).thenReturn("/scm/awesome.jpg");
|
||||||
|
doThrow(IOException.class).when(pushStateDispatcher).dispatch(request, response, "/awesome.jpg");
|
||||||
|
servlet.doGet(request, response);
|
||||||
|
verify(response).setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
private static class TestingOutputServletOutputStream extends ServletOutputStream {
|
private static class TestingOutputServletOutputStream extends ServletOutputStream {
|
||||||
|
|
||||||
private ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
private ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
||||||
|
|||||||
Reference in New Issue
Block a user