Your stacktrace is referencing to a broken pipe error (See the middle of the stacktrace), this is the main cause of your problem. Based on your stacktrace it seems your error occurs either while creating the xml or streaming it.
When searching for issues with broken pipe error messages I found this post: http://stackoverflow.com/questions/15785175/java-io-ioexception-broken-pipe which is explaining that it is often caused by a socket being closed while transmitting.
Could it be that the side that is assembling the xml takes a long time doing that? It could be that after X seconds of waiting the connection is closed because it was considered to have failed?
If what I am explaining is unlikely please provide additional information about which system is being called, what happens (high level), and how long the different actions are expected to take.