Я тестирую Chart Theme
с сообщением Джаспера. Почему я получаю IndexOutOfBoundsException
, когда использую тему eye.candy.sixties
? Другие темы в порядке (например: эгейской, по умолчанию, ....)Почему Jasper Chart Theme throw java.lang.IndexOutOfBoundsException: Индекс: 7, Размер: 7?
BarChartTest.java
public class BarChartTest {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
String templateFile = "resources/bar.jrxml";
DataBeanList dataBeanList = new DataBeanList();
ArrayList<DataBean> dataList = dataBeanList.getDataBeanList();
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(dataList);
Map parameters = new HashMap();
try {
JasperDesign design = JRXmlLoader.load(templateFile);
JasperReport report = JasperCompileManager.compileReport(design);
JasperPrint print = JasperFillManager.fillReport(report, parameters, beanColDataSource);
JasperExportManager.exportReportToPdfFile(print, "D:/temp/bar_chart.pdf");
} catch (JRException e) {
e.printStackTrace();
}
}
}
bar.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="jasper_report_template" pageWidth="595" pageHeight="860" columnWidth="515" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50" uuid="843cea12-1b23-4ff8-ae94-48b1850662ef">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<field name="subjectName" class="java.lang.String"/>
<field name="marks" class="java.lang.Integer"/>
<variable name="countNumber" class="java.lang.Integer" calculation="Count">
<variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
</variable>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="35" splitType="Stretch"/>
</title>
<pageHeader>
<band height="200">
<barChart>
<chart evaluationTime="Report" theme="eye.candy.sixties">
<reportElement uuid="5133611e-49a1-4e9a-b4e5-8eff4e29c61b" x="0" y="0" width="515" height="200"/>
<box>
<pen lineWidth="1.0"/>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<chartTitle position="Top">
<titleExpression><![CDATA["My First JR Bar Chart"]]></titleExpression>
</chartTitle>
<chartSubtitle/>
<chartLegend/>
</chart>
<categoryDataset>
<categorySeries>
<seriesExpression><![CDATA[$F{subjectName}]]></seriesExpression>
<categoryExpression><![CDATA[$F{subjectName}]]></categoryExpression>
<valueExpression><![CDATA[$F{marks}]]></valueExpression>
</categorySeries>
</categoryDataset>
<barPlot isShowTickMarks="false">
<plot/>
<itemLabel/>
<categoryAxisFormat>
<axisFormat/>
</categoryAxisFormat>
<valueAxisFormat>
<axisFormat/>
</valueAxisFormat>
</barPlot>
</barChart>
</band>
</pageHeader>
</jasperReport>
StackTrace
WARNING: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
Sep 22, 2014 5:47:16 PM net.sf.jasperreports.engine.component.ComponentsEnvironment findBundles
WARNING: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
Sep 22, 2014 5:47:16 PM net.sf.jasperreports.engine.component.ComponentsEnvironment findBundles
WARNING: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 7, Size: 7
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at net.sf.jasperreports.chartthemes.spring.EyeCandySixtiesChartTheme.createBarChart(EyeCandySixtiesChartTheme.java:296)
at net.sf.jasperreports.chartthemes.spring.GenericChartTheme.createChart(GenericChartTheme.java:266)
at net.sf.jasperreports.engine.fill.JRFillChart.evaluateChart(JRFillChart.java:844)
at net.sf.jasperreports.engine.fill.JRFillChart.evaluateRenderer(JRFillChart.java:809)
at net.sf.jasperreports.engine.fill.JRFillChart.resolveElement(JRFillChart.java:1385)
at net.sf.jasperreports.engine.fill.JRFillElement.performDelayedEvaluation(JRFillElement.java:983)
at net.sf.jasperreports.engine.fill.JRFillElement.resolveElement(JRFillElement.java:1085)
at net.sf.jasperreports.engine.fill.ElementEvaluationAction.execute(JRBaseFiller.java:2486)
at net.sf.jasperreports.engine.fill.JRBaseFiller.resolveBoundElements(JRBaseFiller.java:1646)
at net.sf.jasperreports.engine.fill.JRBaseFiller.resolveReportBoundElements(JRBaseFiller.java:1673)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1087)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:329)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:159)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:963)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:892)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:114)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:668)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:984)
at com.mutu.chart.test.BarChartTest.main(BarChartTest.java:34)
Lib
jasperreports-chart-themes-4.0.2.jar
jasperreports-5.6.1.jar
jasperreports-applet-5.6.1.jar
jasperreports-fonts-5.6.1.jar
jasperreports-javaflow-5.6.1.jar
...other necessary jar files