your patch prevents recursion from happening, but it doesnt fix the bug. Your nested value is empty because you return nothing from the function.

Actually in the current implementation recursion objects is not even possible i think. I am changing this to throw an exception.

Posted by Benjamin Eberlei (beberlei) on 2009-02-12T14:56:24.000+0000

Fix in trunk and merged back into 1.7 release branch.

Throw an Exception on possible infinite recursion now.

Posted by Quentin Zervaas (qzervaas) on 2009-02-12T15:00:21.000+0000

This doesn't really solve my issue... why should it not be possible to recurse into itself?

Can you not just change my implementation slightly to return "tns:$type" rather than just return?

Posted by Benjamin Eberlei (beberlei) on 2009-02-12T15:28:53.000+0000

well if you require recursion, then you might need to stop somewhere. but wsdl types are rather strict, so how would you do that? The current ArrayOfTypeComplex does not support minOccurs which is the only way to handle this situation according to http://stackoverflow.com/questions/148988/… (i couldnt find it in the XSD doc, its dull to read).

I will have to look into it for the future, but i can't support this right now because if have to test it further.

So long the infinite recursion protection will be added.

Would that be ok?

The problem with returning tns:$type is, it might be the wrong name.

Back to your recursive example, how does it "stop" when you return "tns:$type" anyways? Doesnt SOAP then require an infinite stream of objects in your definition?

Posted by Benjamin Eberlei (beberlei) on 2009-02-12T15:42:59.000+0000

closed the issue by fault, now resolved.

Posted by Quentin Zervaas (qzervaas) on 2009-02-12T15:45:56.000+0000

Fair enough. I thought you could effectively "end the recursion" by returning a null object.

Is it worth creating a new feature request in this tracker to support such functionality?