title: ContainerRequestContext abortWith() does not abort
body: <p>This is my authentication filter:</p>
  
  <pre><code>@Secured
  @Provider
  @Priority(Priorities.AUTHENTICATION)
  public class SecuredFilter implements ContainerRequestFilter {
  
      @Override
      public void filter(ContainerRequestContext requestContext) {
  
          String authorizationHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
          if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
               requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build());
          }
  
          String token = authorizationHeader.substring("Bearer".length()).trim();
          // [...]
          }
  }
  </code></pre>
  
  <p><strong>Why does it not abort and send back the response when the header is missing ?</strong>
  Right now I get an obvious NPE at authorizationHeader.substring ...</p>
  
  <p>The <a href="http://docs.oracle.com/javaee/7/api/javax/ws/rs/container/ContainerRequestContext.html#abortWith-javax.ws.rs.core.Response-" rel="nofollow noreferrer">documentation</a> says:</p>
  
  <blockquote>
    <p>void abortWith(Response response) </p>
    
    <p>Abort the filter chain with a
    response. This method breaks the filter chain processing and returns
    the provided response back to the client. The provided response goes
    through the chain of applicable response filters. Parameters: response
    - response to be sent back to the client. </p>
  </blockquote>
  
  <p>What am I missing ?</p>