From 0b3214b6ec4dde9c9200b62df7158ae8b315e4da Mon Sep 17 00:00:00 2001 From: Patrick Valsecchi Date: Wed, 29 Mar 2017 11:00:41 +0200 Subject: [PATCH] createDataSource now default to no processor Was crashing if no processor was configured. --- .../processor/jasper/DataSourceProcessor.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/mapfish/print/processor/jasper/DataSourceProcessor.java b/core/src/main/java/org/mapfish/print/processor/jasper/DataSourceProcessor.java index becc48922d..6d19b9966c 100644 --- a/core/src/main/java/org/mapfish/print/processor/jasper/DataSourceProcessor.java +++ b/core/src/main/java/org/mapfish/print/processor/jasper/DataSourceProcessor.java @@ -25,11 +25,13 @@ import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import javax.annotation.PostConstruct; import static org.mapfish.print.attribute.DataSourceAttribute.DataSourceAttributeValue; @@ -83,6 +85,12 @@ public DataSourceProcessor() { super(Output.class); } + @PostConstruct + private void init() { + // default to no processors + this.processorGraph = this.processorGraphFactory.build(Collections.emptyList()); + } + /** * The path to the report template used to render each row of the data. This is only required if a subreport needs to be * compiled and is referenced in the containing report's detail section. @@ -202,10 +210,6 @@ private void addAttributes(@Nonnull final Template template, @Override protected void extraValidation(final List validationErrors, final Configuration configuration) { - if (this.processorGraph == null) { - validationErrors.add(new ConfigurationException("There are child processors for this processor")); - } - if (this.reportTemplate != null && this.reportKey == null || this.reportTemplate == null && this.reportKey != null) { validationErrors.add(new ConfigurationException("'reportKey' and 'reportTemplate' must either both be null or both" + " be non-null. reportKey: " + this.reportKey + @@ -215,9 +219,13 @@ protected void extraValidation(final List validationErrors, final Con attribute.validate(validationErrors, configuration); } - final Set> allProcessors = this.processorGraph.getAllProcessors(); - for (Processor processor : allProcessors) { - processor.validate(validationErrors, configuration); + if (this.processorGraph == null) { + validationErrors.add(new ConfigurationException("There are no child processors for this processor")); + } else { + final Set> allProcessors = this.processorGraph.getAllProcessors(); + for (Processor processor : allProcessors) { + processor.validate(validationErrors, configuration); + } } }