We already have separate JasperPrint objects for each thread. Also tried with both - first with same shared JasperReport object and then with separate one JasperReport object per thread. Both ways we are seeing this issue. The issue is not about of getting records/pages from 2 different thread execution messed up with each other. It is happening with in a single JasperPrint page, the data records are now not in the accurate order. As an example, if there are 3 lists designed sequentially on the page - list A, list B, list C. Now for a single case, data should come up in the order - records of List A , followed by records of list B, followed by records of List C, but it is appearing in the order in one of the case - some records of List B, some records of List A, (again) remaining records of List B, so on..