DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15686>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15686

WDSL2java  - Accepting non-conforming <port> definitions

           Summary: WDSL2java  - Accepting non-conforming <port> definitions
           Product: Axis
           Version: current (nightly)
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: WSDL processing
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


***********************************
***   Description
***********************************

WDSL2java currently processes the following non-conforming WSDL documents 
without error message or warning:

1.) WSDL file with a <port> with missing 'name' attribute 
  Impact: Port has name "null" in generated code
  Spec: According to WSDL 1.1 (A.4.1), the name attribute is "required"
  Example: see Error-MissingPortName.wsdl in attached zip


2.) WSDL file with two ports with the same name in the same service.
  Impact: the second definition is "lost". This is probably a bug in
    WSDL4J (com.ibm.wsdl.xml.WSDLReaderImpl#parsePort()), not in Axis.
  Spec: According to WSDL 1.1, Sec 2.6 port names must be unique among all
    ports defined in the enclosing WSDL document.

  Example: see Error-DuplicatedPortNameInService.wsdl in attached zip

3.) WSDL file with two ports with the same name, defined in different
  services.
  Spec: According to WSDL 1.1, Sec 2.6 port names must be unique among all
    ports defined in the enclosing WSDL document.
  Example: see Error-DuplicatedPortNameInDifferentServices.wsdl


***********************************
***   Proposed solution
***********************************
The zip in the attachement contains a patch which solves cases (1) and (3).
It introduces an additional symbol table entry type -> 'PortEntry'
and checks for (1) and (3) in SymbolTable.java.

Case (2) could be fixed by either
- fixing WSDL4J
- creating a Axis specific WSDLReader inheriting from IBMs WSDLReaderImpl
  and fixing parsePort() and addPort()

Reply via email to