For a specific SOAP call error I have, the stream returned from WSClient#post is null, instead of (possibly) more info returned from the call.
Could be that I have things confused, and this is as designed, but here's what I know:
To get my specific error: pass an extension that contains a URL with an ampersand in it to ExtensionManager#registerExtension. (I think maybe I or vijava needs to HTML-encode that ampersand).
Issue seems to be that WSClient:420 ("postCon.getInputStream()") throws an error, but the call in the catch block ("postCon.getErrorStream()") returns null as well -- so null gets returned from post.
This causes WSClient to pass null to SAXReader#read at WSClient.java:170.
Passing null there causes a misleading error to be thrown from SAXReader#read (MalformedURLException) -- even though there's really no URL at that point. Note that the MalformedURLException doesn't have to do with the URL in my extension -- it's just that the SOAP response reader creates an URL for some reason (I think somewhere in dom4j --- sorry, I've forgotten from this morning). Could be that there really is no error stream -- but in that event, might be good to get some other error.
I'm using 2.0 beta 2 update 2.
Anywho, this is a low priority issue, just thought it would be good to know. Thanks!
Thanks a lot for reporting this and great analysis, Brian!
When the & is included in the request without being encoded first, it fails the server side xml parsing, therefore even the error stream is null. This is a very rare scenario. When it happens, a RemoteException is thrown. I agree it should be more specific to the nature of this error.
I agree it's a low priority issue, and will look into it later.