use of spark.HaltException in project spark by perwendel.
the class MatcherFilter method doFilter.
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
// handle static resources
boolean consumedByStaticFile = staticFiles.consume(httpRequest, httpResponse);
if (consumedByStaticFile) {
return;
}
String method = getHttpMethodFrom(httpRequest);
String httpMethodStr = method.toLowerCase();
String uri = httpRequest.getRequestURI();
String acceptType = httpRequest.getHeader(ACCEPT_TYPE_REQUEST_MIME_HEADER);
Body body = Body.create();
RequestWrapper requestWrapper = RequestWrapper.create();
ResponseWrapper responseWrapper = ResponseWrapper.create();
Response response = RequestResponseFactory.create(httpResponse);
HttpMethod httpMethod = HttpMethod.get(httpMethodStr);
RouteContext context = RouteContext.create().withMatcher(routeMatcher).withHttpRequest(httpRequest).withUri(uri).withAcceptType(acceptType).withBody(body).withRequestWrapper(requestWrapper).withResponseWrapper(responseWrapper).withResponse(response).withHttpMethod(httpMethod);
try {
try {
BeforeFilters.execute(context);
Routes.execute(context);
AfterFilters.execute(context);
} catch (HaltException halt) {
Halt.modify(httpResponse, body, halt);
} catch (Exception generalException) {
GeneralError.modify(httpRequest, httpResponse, body, requestWrapper, responseWrapper, generalException);
}
// If redirected and content is null set to empty string to not throw NotConsumedException
if (body.notSet() && responseWrapper.isRedirected()) {
body.set("");
}
if (body.notSet() && hasOtherHandlers) {
if (servletRequest instanceof HttpRequestWrapper) {
((HttpRequestWrapper) servletRequest).notConsumed(true);
return;
}
}
if (body.notSet() && !externalContainer) {
LOG.info("The requested route [{}] has not been mapped in Spark for {}: [{}]", uri, ACCEPT_TYPE_REQUEST_MIME_HEADER, acceptType);
httpResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
if (CustomErrorPages.existsFor(404)) {
requestWrapper.setDelegate(RequestResponseFactory.create(httpRequest));
responseWrapper.setDelegate(RequestResponseFactory.create(httpResponse));
body.set(CustomErrorPages.getFor(404, requestWrapper, responseWrapper));
} else {
body.set(String.format(CustomErrorPages.NOT_FOUND));
}
}
} finally {
try {
AfterAfterFilters.execute(context);
} catch (Exception generalException) {
GeneralError.modify(httpRequest, httpResponse, body, requestWrapper, responseWrapper, generalException);
}
}
if (body.isSet()) {
body.serializeTo(httpResponse, serializerChain, httpRequest);
} else if (chain != null) {
chain.doFilter(httpRequest, httpResponse);
}
}
use of spark.HaltException in project searchcode-server by boyter.
the class CodeRouteServiceTest method testGetCodeNoParams.
public void testGetCodeNoParams() {
CodeRouteService codeRouteService = new CodeRouteService();
Request request = Mockito.mock(Request.class);
Response response = Mockito.mock(Response.class);
try {
codeRouteService.getCode(request, response);
} catch (HaltException ex) {
}
verify(response, times(1)).redirect("/404/");
}
use of spark.HaltException in project searchcode-server by boyter.
the class CodeRouteServiceTest method testGetCodeWithParamsNoMatch.
public void testGetCodeWithParamsNoMatch() {
CodeRouteService codeRouteService = new CodeRouteService();
Request request = Mockito.mock(Request.class);
Response response = Mockito.mock(Response.class);
when(request.params(":codeid")).thenReturn("NOTHING-SHOULD-MATCH-THIS-EVER");
try {
codeRouteService.getCode(request, response);
} catch (HaltException ex) {
}
verify(response, times(1)).redirect("/404/");
}
use of spark.HaltException in project searchcode-server by boyter.
the class CodeRouteServiceTest method testGetProject.
public void testGetProject() {
CodeRouteService codeRouteService = new CodeRouteService();
Request request = Mockito.mock(Request.class);
Response response = Mockito.mock(Response.class);
try {
codeRouteService.getProject(request, response);
} catch (HaltException ex) {
}
verify(response, times(1)).redirect("/404/");
}
Aggregations