Issue Details (XML | Word | Printable)

Key: WODEN-159
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: John Kaputin
Reporter: Lawrence Mandel
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Woden

InterfaceImpl.getAllInterfaceOperations and getAllInterfaceFaults are not quite recursive

Created: 02/May/07 07:53 PM   Updated: 13/Feb/08 09:12 PM
Return to search
Component/s: Parser
Affects Version/s: M7a
Fix Version/s: M8

Time Tracking:
Not Specified

Resolution Date: 02/Aug/07 12:17 PM


 Description  « Hide
Jacek Kopecky <jacek.kopecky@deri.org> reported the following Woden bug on the W3C mailing list. See http://lists.w3.org/Archives/Public/www-ws-desc/2007May/0001.html.

InterfaceImpl.getAllInterfaceOperations and getAllInterfaceFaults are
not quite recursive, they only go one level of interface extension deep.
This manifests in the flickr test-suite WSDL file when trying to access
the InterfaceOperation of the BindingOperation for
"flickr.groups.pools.add" - the method getInterfaceOperation() returns
null because the actual operation is too deep in the hierarchy of
extended interfaces.

Fix: in both InterfaceImpl.getDerivedInterface*, change getInterface* to
getAllInterface* - this can get into an infinite loop if a circular
interface extension is not detected as an error first.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Lawrence Mandel added a comment - 03/May/07 03:48 AM
Further info from Jacek. See http://lists.w3.org/Archives/Public/www-ws-desc/2007May/0007.html.

The fix for 3 (159) is easy - in both InterfaceImpl.getDerivedInterface*
methods, change getInterface* to getAllInterface* - but this can get
into an infinite loop if a circular interface extension is not detected
as an error first, which I haven't checked. The WSDL 2.0 test case
FlickrHTTP-1G has enough interface extension to trigger this.

John Kaputin added a comment - 02/Aug/07 12:07 PM
The recursion through the interface extension tree has been fixed via JIRA WODEN-172. A further fix will be applied to InterfaceImpl to detect the circular interface reference and avoid an infinite loop when processing interface operations and faults. I have also created a new testcase, Interface-6B, and will contribute this to the W3C WSDL 2.0 test suite.

John Kaputin added a comment - 02/Aug/07 12:17 PM
r562092
Fix to detect circular reference and avoid infinite loop.

Arthur Ryman added a comment - 13/Feb/08 09:12 PM
John, I committed the test case to the W3C test suite.
See http://www.w3.org/Bugs/Public/show_bug.cgi?id=5477