taskFuture.cancel(true);
Thread.currentThread().interrupt();
throw new CancellationException();
}
JasperFillManager fillManager = getJasperFillManager(config);
checkRequiredValues(config, values, template.getReportTemplate());
final JasperPrint print;
if (template.getJdbcUrl() != null) {
Connection connection;
if (template.getJdbcUser() != null) {
connection = DriverManager.getConnection(template.getJdbcUrl(), template.getJdbcUser(), template.getJdbcPassword());
} else {
connection = DriverManager.getConnection(template.getJdbcUrl());
}
print = fillManager.fill(
jasperTemplateBuild.getAbsolutePath(),
values.asMap(),
connection);
} else {
JRDataSource dataSource;
if (template.getTableDataKey() != null) {
final Object dataSourceObj = values.getObject(template.getTableDataKey(), Object.class);
if (dataSourceObj instanceof JRDataSource) {
dataSource = (JRDataSource) dataSourceObj;
} else if (dataSourceObj instanceof Iterable) {
Iterable sourceObj = (Iterable) dataSourceObj;
dataSource = toJRDataSource(sourceObj.iterator());
} else if (dataSourceObj instanceof Iterator) {
Iterator sourceObj = (Iterator) dataSourceObj;
dataSource = toJRDataSource(sourceObj);
} else if (dataSourceObj.getClass().isArray()) {
Object[] sourceObj = (Object[]) dataSourceObj;
dataSource = toJRDataSource(Arrays.asList(sourceObj).iterator());
} else {
throw new AssertionError("Objects of type: " + dataSourceObj.getClass() + " cannot be converted to a row in a " +
"JRDataSource");
}
} else {
dataSource = new JREmptyDataSource();
}
checkRequiredFields(config, dataSource, template.getReportTemplate());
print = fillManager.fill(
jasperTemplateBuild.getAbsolutePath(),
values.asMap(),
dataSource);
}
print.setProperty(Renderable.PROPERTY_IMAGE_DPI, String.valueOf(Math.round(maxDpi[0])));