Logically, if the
servlet is sending the correct content, the fault must lie on the client side. Doubling the size sounds like the client side is appending to the existing file.
If this was my problem I would examine a doubled file with a programmer's editor capable of displaying hex, particularly at the point where the file is supposed to end.
What is this supposed to do:
Bill