[ 
https://issues.apache.org/jira/browse/SYNAPSE-493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659189#action_12659189
 ] 

Amila Chinthaka Suriarachchi commented on SYNAPSE-493:
------------------------------------------------------

I went through the doc and found this,

/**
     * Pause execution and wait for a response message to be ready.  This will
     * typically be called by the transport after a message has been paused and
     * will cause the transport to block until a response message is ready to be
     * returned.  This is required to enable RM for in-out MEPs over a
     * request/response transport; without it the message would be paused and 
the
     * transport would simply ack the request.
     *
     * @throws InterruptedException
     */
    public void awaitResponse() throws InterruptedException, AxisFault;

This means the transport has to set the it to wait state if AxisEngine returns 
a SUSPEND. But for Annonymous case the response message is send using the same 
thread and it returns only after response message is sent.

Seems like a problem with sandesha2 and I'll send a note there.

> Synapse sets the HttpCoreRequestResponseTransport status value to INITIAL
> -------------------------------------------------------------------------
>
>                 Key: SYNAPSE-493
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-493
>             Project: Synapse
>          Issue Type: Bug
>            Reporter: Amila Chinthaka Suriarachchi
>         Attachments: patch.txt
>
>
> ServletRequestResponseTransport and SimpleHTTPRequestResponseTranspor set 
> this value to WAITING.
> This gives a problem with sandesah2. Sandesha2 has this code.
> if((toEPR==null || toEPR.hasAnonymousAddress()) &&
>                          (makeConnection == null || 
> !makeConnection.booleanValue()) &&
>                          (t == null || 
> !t.getStatus().equals(RequestResponseTransportStatus.WAITING))) {
>                               
>                               // Mark this sender bean so that we know that 
> the transport is unavailable, if the
>                               // bean is still stored.
>                               SenderBean bean = 
> senderBeanMgr.retrieve(senderBean.getMessageID());
>                               if(bean != null && bean.isTransportAvailable()) 
> {
>                                       bean.setTransportAvailable(false);
>                                       senderBeanMgr.update(bean);
>                               }
>                               
>                               // Commit the update
>                               if(transaction != null && 
> transaction.isActive()) transaction.commit();
>                               transaction = null;
>                               
>                               if (log.isDebugEnabled())
>                                       log.debug("Exit: SenderWorker::run, no 
> response transport for anonymous message");
>                               return;
>                       }
> it does not send the response back if the status of the 
> RequestResponseTransport is WAITING. 
> Setting this initial value to WAITING makes the Sandesha2 works with the 
> synapse.
> is it possible to change this initial value to WAITING?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to