wsdl2java generates incorrect callback handler methods in unpacked mode
-----------------------------------------------------------------------

                 Key: AXIS2-4110
                 URL: https://issues.apache.org/jira/browse/AXIS2-4110
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: codegen
    Affects Versions: 1.4, 1.4.1
            Reporter: Stefan Vladov
         Attachments: Test.wsdl, TestBinding.wsdl, TestPortType.wsdl

wsdl2java generates incorrect callback handlers in unpacked mode. The 
problematic code seems to be in the 
AxisServiceBasedMultiLanguageEmitter#emitStub(), namely:

                if (!codeGenConfiguration.isPackClasses()) {
                    // write the call back handlers
                    writeCallBackHandlers();
                }

Note that this is called before the local variable this.axisBinding is 
populated.
writeCallBackHandlers subsequently calls createDOMDocumentForCallbackHandler 
which on its side uses loadOperations(Document doc, Element rootElement, String 
mep). The latter one relies on the local axisBinding being already set to 
retrieve the binding operations using this.axisBinding.getChildren()
As a result the generated callback handler includes wrong methods.
To simulate the issue one could use the attached wsdl with the "-u" option. 
The issue seems to be introduces in the 590668 revision, commit comment says:

"use binding operation to get the polices. earlier it has assumed that the
binding Qname and the operation Qname should be equal. but this is not 
the case if there are in two different wsdl files."

A simple fix would be to move the already mentioned code in the 
AxisServiceBasedMultiLanguageEmitter#emitStub after the loop over the service 
endpoints. 


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