{
final ReportJob job = getJob();
synchronized (job)
{
// set up the scene
final PageState state = getPhysicalPageState(page);
final ReportTargetState targetState = state.getTargetState();
final GraphicsOutputProcessor outputProcessor = getGraphicsProcessor();
outputProcessor.setPageCursor(state.getPageCursor());
final QueryPhysicalPageInterceptor interceptor =
new QueryPhysicalPageInterceptor(outputProcessor.getPhysicalPage(page));
outputProcessor.setInterceptor(interceptor);
final LibLayoutReportTarget target =
(LibLayoutReportTarget) targetState.restore(outputProcessor);
LayoutController position = state.getLayoutController();
// we have the data and we have our position inside the report.
// lets generate something ...
while (position.isAdvanceable())
{