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