It's pretty common for a report to show multiple views of the same data (tables and charts, with the data sliced or presented in different ways). If the query to extract the data is expensive, the JRXML file itself should provide a way to reuse the same values. The workaround presented in this article requires creating custom Java code to serve as a data cache for each case where this is used. That's not a scalable or easy-to-use approach. A better system would allow the report designer to mark data set values as invariant for the life of the report.