[ 
https://issues.apache.org/jira/browse/CXF-5373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13825346#comment-13825346
 ] 

Sergey Beryozkin commented on CXF-5373:
---------------------------------------

All the fixes are on the trunk, we need to decide if it can go to 2.7.x as the 
changes may be a bit sensitive.
Sridhar, I guess you can avoid introducing another thread-pool into the flow 
when dealing with the AsyncResponses and manage the container level pools 
instead, this still has to work though, the question is whether we can merge it 
back to 2.7.x or not

Sergey

> Issue resolving AsynchResponse
> ------------------------------
>
>                 Key: CXF-5373
>                 URL: https://issues.apache.org/jira/browse/CXF-5373
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.7.7
>            Reporter: Sridhar Jonnalagadda
>         Attachments: sampleCXF.zip
>
>
> Spring config
>  <task:executor id="servicePool" pool-size="1" 
> queue-capacity="${aw.concurrentUsers.download:5000}"/>
> JAX-RS server config
>    <jaxrs:server id="restContainer"  address="/" >
>          <jaxrs:executor>
>              <ref bean="servicePool"/>
>          </jaxrs:executor>
>         <jaxrs:serviceBeans>
>             <ref bean="tokenService" />
>         </jaxrs:serviceBeans>
>     </jaxrs:server>
> Java End-Point
>     @POST
>     @Path("/createToken/{fileName}")
>     @Produces(MediaType.APPLICATION_FORM_URLENCODED)
>     
> //http://localhost:8000/contentGateway/integrationServices/tokenService/createToken/{fileName}
>     public void createToken(@PathParam("fileName")final String fileName, 
> final AsyncResponse asyncResponse){
>        validateInput(fileName);
>        final String randomUUID = UUID.randomUUID().toString();
>        this.tokenRepository.storeToken(randomUUID.toString(),fileName);
>         asyncResponse.resume(randomUUID); 
>        
>     }
> JAXRSUtils.java : 766- 767
>          if (parameterClass == AsyncResponse.class) {
>                 return new AsyncResponseImpl(message);
>             }
> AsyncResponseImpl 53 - 59
>     public AsyncResponseImpl(Message inMessage) {
>         inMessage.put(AsyncResponse.class, this);
>         inMessage.getExchange().put(ContinuationCallback.class, this);
>         this.inMessage = inMessage;
>         
>         initContinuation();
>     }
> Line: 55
> inMessage.getExchange().put(ContinuationCallback.class, this);
> JAXRSInvoker.java : Line 86
>  AsyncResponse asyncResp = exchange.get(AsyncResponse.class);
> Will always yield null, Since when setting the key will be for 
> ContinuationCallback and when retrieving it will be for AsyncResponse



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to