Java – “Premature end of file” error when Java read and writes XML data files


I have been using JDOM library to read and write XML files through Java Servlets.

Problem is that when I send many requests using AJAX to my servlets which read and write data in XML files, many times it fails displaying error: Premature end of file. How can I synchronize all these read/writes to files or is there any other way to prevent these problem? Let me know if more details are required.

Will use of threads do any good in this situation?

Thanks a lot!

Best Answer

Two possible solutions are:

  • Write your files to thename.xml.part and then once done/closed to a rename to thename.xml, which makes the write closer to being atomic -- the reader can't read it until it's surely done so long as it is looking for ".xml" files only.
  • or, use a Database, atomicity is what they do.