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
Component/s: Parser
Affects Version/s: M7a
Fix Version/s: M8

Time Tracking:
Not Specified

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


 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 made changes - 19/Jun/07 02:25 PM
Field Original Value New Value
Assignee John Kaputin [ jkaputin ]
John Kaputin made changes - 19/Jun/07 02:25 PM
Fix Version/s M8 [ 12312291 ]
John Kaputin made changes - 02/Aug/07 12:03 PM
Attachment Interface-6B.patch.txt [ 12363040 ]
John Kaputin made changes - 02/Aug/07 12:03 PM
Attachment Interface-6B.patch.txt [ 12363040 ]
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 made changes - 02/Aug/07 12:08 PM
Comment [ A new testcase for interface extension (assertion Interface-1009) which includes operations, faults and bindings, so any attempt to process these will result in an infinite loop if the circular reference is not correctly handled. Testcase to be contributed to W3C WSDL 2.0 test suite. ]
Repository Revision Date User Message
ASF #562092 Thu Aug 02 12:16:16 UTC 2007 jkaputin WODEN-159
Fix to detect a circular reference in interface
extension and avoid an infinite loop when processing
interface faults and operations.
Files Changed
MODIFY /incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceImpl.java

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

John Kaputin made changes - 02/Aug/07 12:17 PM
Status Open [ 1 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]
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