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

Ben Reif updated AXIS2-4551:
----------------------------

    Description: 
AxisOperationFactory.getAxisOperation(int mepURI) returns the wrong 
AxisOperation instance for the ROBUST_IN_ONLY MEP. The code returns an 
InOutAxisOperation from this:

case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
     abOpdesc = new InOutAxisOperation();
     abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
      break;
}

There should be a coresponding RobustInOnlyAxisOperation that it returns like 
this:

case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
     abOpdesc = new RobustInOnlyAxisOperation();
     abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
      break;
}

This causes issues because it adds an out AxisMessage to the operation and also 
generates an <output> in the WSDL operations. This in-turn causes other code to 
think that it's a Request-Response style service and you get exceptions when no 
response comes back, like "The input stream for an incoming message is null".

On the same note, AxisOperationFactory.getAxisOperationDescription(String 
mepURI)  also needs to be fixed for Robust-Out-Only and Robust-In-Only MEPs

else if (WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ||
             WSDL20_2006Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ||
             WSDL20_2004_Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI)) {
     abOpdesc = new RobustOutOnlyAxisOperation();
     abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY);
} else if (WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI) ||
               WSDL20_2006Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI) ||
               WSDL20_2004_Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI)) {
     abOpdesc = new RobustInOnlyAxisOperation();
     abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
}

  was:
AxisOperationFactory.getAxisOperation(int mepURI) returns the wrong 
AxisOperation instance for the ROBUST_IN_ONLY MEP. The code returns an 
InOutAxisOperation from this:

case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
     abOpdesc = new InOutAxisOperation();
     abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
      break;
}

There should be a coresponding RobustInOnlyAxisOperation that it returns like 
this:

case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
     abOpdesc = new RobustInOnlyAxisOperation();
     abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
      break;
}

This causes issues because it adds an out AxisMessage to the operation and also 
generates an <output> in the WSDL operations. This in-turn causes other code to 
think that it's a Request-Response style service and you get exceptions when no 
response comes back, like "The input stream for an incoming message is null".

On the same note, AxisOperationFactory.getAxisOperationDescription(String 
mepURI)  also needs to be fixed for Robust-Out-Only and Robust-In-Only MEPs

else if (WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ||
                WSDL20_2006Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ||
                WSDL20_2004_Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI)) {
        abOpdesc = new RobustOutOnlyAxisOperation();
        
abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY);
} else if (WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI) ||
                WSDL20_2006Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI) ||
                WSDL20_2004_Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI)) {
        abOpdesc = new RobustInOnlyAxisOperation();
        
abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
}


> AxisOperationFactory.getAxisOperation(int mepURI) returns the wrong 
> AxisOperation instance for http://www.w3.org/ns/wsdl/robust-in-only MEPs
> --------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4551
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4551
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: codegen, deployment, wsdl
>    Affects Versions: 1.4
>            Reporter: Ben Reif
>
> AxisOperationFactory.getAxisOperation(int mepURI) returns the wrong 
> AxisOperation instance for the ROBUST_IN_ONLY MEP. The code returns an 
> InOutAxisOperation from this:
> case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
>      abOpdesc = new InOutAxisOperation();
>      
> abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
>       break;
> }
> There should be a coresponding RobustInOnlyAxisOperation that it returns like 
> this:
> case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
>      abOpdesc = new RobustInOnlyAxisOperation();
>      
> abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
>       break;
> }
> This causes issues because it adds an out AxisMessage to the operation and 
> also generates an <output> in the WSDL operations. This in-turn causes other 
> code to think that it's a Request-Response style service and you get 
> exceptions when no response comes back, like "The input stream for an 
> incoming message is null".
> On the same note, AxisOperationFactory.getAxisOperationDescription(String 
> mepURI)  also needs to be fixed for Robust-Out-Only and Robust-In-Only MEPs
> else if (WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ||
>              WSDL20_2006Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI) ||
>              WSDL20_2004_Constants.MEP_URI_ROBUST_OUT_ONLY.equals(mepURI)) {
>      abOpdesc = new RobustOutOnlyAxisOperation();
>      
> abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY);
> } else if (WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI) ||
>                WSDL20_2006Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI) ||
>                WSDL20_2004_Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI)) {
>      abOpdesc = new RobustInOnlyAxisOperation();
>      
> abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
> }

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

Reply via email to