[
https://issues.apache.org/jira/browse/CXF-5374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13812876#comment-13812876
]
Sridhar Jonnalagadda commented on CXF-5374:
-------------------------------------------
I configured a Provider and this is my class:
@Component("serverBusy")
public class ServerBusy implements ExceptionMapper<TaskRejectedException> {
@Override
public Response toResponse(final TaskRejectedException exception){
return Response.status(Response.Status.SERVICE_UNAVAILABLE).build();
}
}
Spring Config:
<task:executor id="workerPool" pool-size="10" queue-capacity="50"/>
<jaxrs:server id="restContainer" address="/" >
<jaxrs:executor>
<ref bean="workerPool"/>
</jaxrs:executor>
<jaxrs:providers>
<ref bean="serverBusy"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref bean="tokenService" />
</jaxrs:serviceBeans>
</jaxrs:server>
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/*Context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
Sinnpet from Spring ThreadPoolTaskExecutor:
public void execute(Runnable task) {
Executor executor = getThreadPoolExecutor();
try {
executor.execute(task);
}
catch (RejectedExecutionException ex) {
throw new TaskRejectedException("Executor [" + executor
+ "] did not accept task: " + task, ex);
}
}
CXF 2.7.7 code : org.apache.cxf.interceptor.ServiceInvokerInterceptor
Line 106: executor.execute(o); receives TaskRejectedException from Spring. On
the response I'm expecting the response to be 503. but I see stack trace.
> Rejected Execution from ThreadPool
> ----------------------------------
>
> Key: CXF-5374
> URL: https://issues.apache.org/jira/browse/CXF-5374
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 2.7.7
> Reporter: Sridhar Jonnalagadda
> Priority: Critical
>
> When RejectedExecutionException is thrown then it the exception mapper for
> converting into 503 error. This is because handleFault is much below in the
> stack calls.
--
This message was sent by Atlassian JIRA
(v6.1#6144)