Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id ABA7A2009F8 for ; Fri, 3 Jun 2016 18:09:01 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id AA692160A3B; Fri, 3 Jun 2016 16:09:01 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 003A2160A55 for ; Fri, 3 Jun 2016 18:09:00 +0200 (CEST) Received: (qmail 71318 invoked by uid 500); 3 Jun 2016 16:08:59 -0000 Mailing-List: contact issues-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list issues@cxf.apache.org Received: (qmail 71108 invoked by uid 99); 3 Jun 2016 16:08:59 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Jun 2016 16:08:59 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 6BC232C1F69 for ; Fri, 3 Jun 2016 16:08:59 +0000 (UTC) Date: Fri, 3 Jun 2016 16:08:59 +0000 (UTC) From: "Florian Diebold (JIRA)" To: issues@cxf.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CXF-6929) Request hangs when using JAX-RS AsyncResponse and Exception mapper MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 03 Jun 2016 16:09:01 -0000 [ https://issues.apache.org/jira/browse/CXF-6929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15314329#comment-15314329 ] Florian Diebold commented on CXF-6929: -------------------------------------- I can setAsyncSupported(true) on the ServletHolder, but that doesn't change anything. > Request hangs when using JAX-RS AsyncResponse and Exception mapper > ------------------------------------------------------------------ > > Key: CXF-6929 > URL: https://issues.apache.org/jira/browse/CXF-6929 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 3.1.1, 3.1.6 > Reporter: Florian Diebold > > I have a JAX-RS resource which takes an AsyncResponse, but immediately throws an exception before returning from the function. If the exception is then mapped by an ExceptionMapper, the response seems to be never sent, and the request hangs (stays suspended forever). Am I doing something wrong? > Example code: > {code} > import javax.ws.rs.GET; > import javax.ws.rs.Path; > import javax.ws.rs.Produces; > import javax.ws.rs.container.AsyncResponse; > import javax.ws.rs.container.Suspended; > import javax.ws.rs.core.Response; > import javax.ws.rs.ext.ExceptionMapper; > import org.apache.commons.lang.NotImplementedException; > import org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet; > import org.eclipse.jetty.server.Connector; > import org.eclipse.jetty.server.Server; > import org.eclipse.jetty.server.ServerConnector; > import org.eclipse.jetty.servlet.ServletContextHandler; > import org.eclipse.jetty.servlet.ServletHolder; > public class ServerDemo2 { > public static void main( final String[] args ) throws Exception { > final Server server = new Server(); > final ServerConnector connector = new ServerConnector( server ); > connector.setHost( "localhost" ); > connector.setPort( 8888 ); > server.setConnectors( new Connector[] { connector } ); > final ServletContextHandler handler = new ServletContextHandler(); > final ServletHolder holder = new ServletHolder( CXFNonSpringJaxrsServlet.class ); > holder.setInitParameter( "jaxrs.serviceClasses", Resource.class.getName() ); > holder.setInitParameter( "jaxrs.providers", Mapper.class.getName() ); > handler.addServlet( holder, "/*" ); > server.setHandler( handler ); > server.start(); > System.in.read(); > server.stop(); > } > public static class Mapper implements ExceptionMapper { > @Override > public Response toResponse( final NotImplementedException exception ) { > exception.printStackTrace(); > return Response.ok().build(); > } > } > @Path( "/" ) > public static class Resource { > @GET > @Path( "/foo" ) > @Produces( "text/plain" ) > public void foo( @Suspended final AsyncResponse response ) { > throw new NotImplementedException( "foo" ); > } > @GET > @Path( "/bar" ) > @Produces( "text/plain" ) > public void bar( @Suspended final AsyncResponse response ) { > throw new RuntimeException( "bar" ); > } > } > } > {code} > curl localhost:8888/foo hangs forever; curl localhost:8888/bar does not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)