We compile with JasperCompileManager.compileReportToFile You misunderstood the problem. We are not compiling reports eachtime for every request, we have to do that only if the PDF comes out empty with no reason (sometimes after 100 times, sometimes after 1000 prints of that file). It also does not happen with the same reports. I could say it happens random, but on a aplication with over 1000 reports it's almost not possible to recognise or to catch the problem when it happens because no error is visible.