[ 
https://issues.apache.org/jira/browse/SANDESHA2-147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Gatford resolved SANDESHA2-147.
--------------------------------------

    Resolution: Fixed

Fixed in revision 653809, thanks

> java.lang.IllegalStateException: Response already committed  (during 
> SequenceAcknowledgement)
> ---------------------------------------------------------------------------------------------
>
>                 Key: SANDESHA2-147
>                 URL: https://issues.apache.org/jira/browse/SANDESHA2-147
>             Project: Sandesha2
>          Issue Type: Bug
>    Affects Versions: 1.3
>         Environment: Fedora Core 7 
>            Reporter: Enric Jaen
>
> When Sandesha2 receives an RM request with an AckRequested  header block, the 
>  AckRequestedProcessor.processAckRequestedHeader invokes the  
> AxisEngine.send() and then tries to set setResponseWritten(true), but here 
> comes the problem, as it doesn't find the  RequestResponseTransport, so it 
> cannot put setResponseWritten to true.
> As a consequence, later on the SequenceProcessor wrongly thinks that the 
> AckResp has not been sent and sends it again the AckResp doing sendAckNow() , 
> throwing an:
> org.apache.axis2.AxisFault: Sandesha2 got an exception when processing an in 
> message: java.lang.IllegalStateException: Response already committed.
> I think that the problem is that normally the "In" MessageContext inside 
> RequestResponseTransport is set after the Dispatch phase (specificaly in  
> checkPostConditions), but the    AckRequestedProcessor handler is executed 
> *before* finishing the Dispatch phase, so the "in" MessageContext has not 
> been set yet.
> I solved this issue by changing the following line of code in 
> AckRequestedProcessor.processAckRequestedHeader():
> TransportUtils.setResponseWritten(ackMsgCtx, true);  
> to:
> TransportUtils.setResponseWritten(rmMsgCtx.getMessageContext(), true);  
> and it works. Notice that I changed ackMsgCtx (which is an OutOnly message) 
> to rmMsgCtx (which is an InOut message)
> Cheers,
> /Enric

-- 
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