Why does passing a document through a socket sometimes hang the parser?
The problem is that several XML parsers close the input stream when they read EOF (-1). This is true of Xerces, which is JDOM’s default parser. It is also true of Crimson. Unfortunately, closing a SocketInputStream closes the underlying SocketImpl, setting the file descriptor to null. The socket’s output stream is useless after this, so your application will be unable to send a response.