[ http://issues.apache.org/jira/browse/XMLRPC-13?page=all ] Jochen Wiedmann closed XMLRPC-13: ---------------------------------
Resolution: Fixed Assign To: (was: rpc-dev mailing list) It is quite likely, that this problem no longer applies with versions 2 and 3. Consequently, I am closing the issue now. If required, please reopen. > Unexpected XML parser behavior > ------------------------------ > > Key: XMLRPC-13 > URL: http://issues.apache.org/jira/browse/XMLRPC-13 > Project: XML-RPC > Type: Bug > Components: Source > Versions: unspecified > Environment: Operating System: Windows NT/2K > Platform: PC > Reporter: Philippe Maseres > Attachments: Base64.patch, Base64Test.patch > > When bad requests are addressed to the XmlRpcServer, the XML parser produces > strange results. > Case 1 > ------ > The client sends a wellformed XML request which content is not a correct XML- > RPC call. > The parser seems not to detect the error, and the XmlRpcHandler is called > back > with data retained from a previous successful invocation (method name). When > this error occurs in the first request processing, the handler is called with > a > null reference... This seems to be a bad data state management in the > server's > shared workers. > Sample client code : > URL url = new URL(endpoint); > HttpURLConnection http = (HttpURLConnection) url.openConnection(); > http.setRequestMethod("POST"); > http.setDoOutput(true); > PrintWriter pw = new PrintWriter(http.getOutputStream()); > pw.print("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"); > pw.print("<a>hello</a>"); > pw.flush(); > Case 2 > ------ > The client request content is not XML at all. > The parser detects the invalid format, and sends back an XML-RPC fault > reporting the SAX exception. > Sample client code : > URL url = new URL(endpoint); > HttpURLConnection http = (HttpURLConnection) url.openConnection(); > http.setRequestMethod("POST"); > http.setDoOutput(true); > PrintWriter pw = new PrintWriter(http.getOutputStream()); > pw.print("Bye"); > pw.flush(); > I think these two cases should be handled both as a same invalid invocation. > The client seems not to use the XML-RPC protocol, for instance because of a > bad > url configuration, and i'm not sure answering an XML-RPC fault is the best > way. > I'd prefer the XmlRpcServer to throw a specific java exception, and thus give > the main program (in our case, servlets) a chance to handle the error at the > lower HTTP level. In deed, any IO exception during the XML/XML-RPC parsing > could also be processed this way. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira