You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Eran Chinthaka (JIRA)" <ji...@apache.org> on 2006/02/24 10:54:40 UTC
[jira] Resolved: (AXIS2-462) AbstractInOutAsyncMessageReceiver : in
method invokeBusinessLogic, wrong parameter for engine.send(...)
[ http://issues.apache.org/jira/browse/AXIS2-462?page=all ]
Eran Chinthaka resolved AXIS2-462:
----------------------------------
Fix Version: 0.95
Resolution: Fixed
Fixed. Thanks for reporting this.
> AbstractInOutAsyncMessageReceiver : in method invokeBusinessLogic, wrong parameter for engine.send(...)
> -------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-462
> URL: http://issues.apache.org/jira/browse/AXIS2-462
> Project: Apache Axis 2.0 (Axis2)
> Type: Bug
> Components: core
> Versions: 0.94, 0.93
> Environment: All operating systems/plateforms
> Reporter: Jean-Sébastien Ricard
> Priority: Blocker
> Fix For: 0.95
>
> In the invokeBusinessLogic method, and particulary in the handleResult() method, when calling the engine.send(..) method, the incoming MessageContext is send (messageCtx) rather than result one (result).
> Here after the fixed source code :
> public abstract class AbstractInOutAsyncMessageReceiver extends AbstractMessageReceiver {
> protected Log log = LogFactory.getLog(getClass());
> public abstract void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage,
> ServerCallback callback)
> throws AxisFault;
> public final void receive(final MessageContext messageCtx) throws AxisFault {
> final ServerCallback callback = new ServerCallback() {
> public void handleResult(MessageContext result) throws AxisFault {
> AxisEngine engine =
> new AxisEngine(messageCtx.getOperationContext().getServiceContext()
> .getConfigurationContext());
>
> // BUG
> //engine.send(messageCtx);
> // FIXED
> engine.send(result);
>
> }
> public void handleFault(AxisFault fault) throws AxisFault {
> AxisEngine engine =
> new AxisEngine(messageCtx.getOperationContext().getServiceContext()
> .getConfigurationContext());
> MessageContext faultContext = engine.createFaultMessageContext(messageCtx, fault);
> engine.sendFault(faultContext);
> }
> };
> Runnable theadedTask = new Runnable() {
> public void run() {
> try {
> MessageContext newmsgCtx = Utils.createOutMessageContext(messageCtx);
> newmsgCtx.getOperationContext().addMessageContext(newmsgCtx);
> invokeBusinessLogic(messageCtx, newmsgCtx, callback);
> } catch (AxisFault e) {
> log.error(e);
> }
> }
> };
> messageCtx.getConfigurationContext().getThreadPool().execute(theadedTask);
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira