Jasper reports Jasper报告中的NullPointerException?

Jasper reports Jasper报告中的NullPointerException?,jasper-reports,Jasper Reports,当我使用jasper report(版本1.2.4)导出报告时,它抛出NPE。我在网上也找不到解决这个问题的办法。在这方面有人能帮我吗 如果我在报告中删除一个有问题的列并将其导出,它将正常导出。找不到该列的问题所在,因为它包含大量数据 非常感谢 将例外情况发布到下面: java.lang.NullPointerException| at java.awt.font.TextLayout.getBaselineFromGraphic(Unknown Source)| at java.awt.f

当我使用jasper report(版本1.2.4)导出报告时,它抛出NPE。我在网上也找不到解决这个问题的办法。在这方面有人能帮我吗

如果我在报告中删除一个有问题的列并将其导出,它将正常导出。找不到该列的问题所在,因为它包含大量数据

非常感谢

将例外情况发布到下面:

java.lang.NullPointerException|

at java.awt.font.TextLayout.getBaselineFromGraphic(Unknown Source)|

at java.awt.font.TextMeasurer.initAll(Unknown Source)|

at java.awt.font.TextMeasurer.<init>(Unknown Source)|

at java.awt.font.LineBreakMeasurer.<init>(Unknown Source)|

at java.awt.font.LineBreakMeasurer.<init>(Unknown Source)|

at net.sf.jasperreports.engine.fill.TextMeasurer.renderParagraph(TextMeasurer.java:259)|

at net.sf.jasperreports.engine.fill.TextMeasurer.measure(TextMeasurer.java:220)|

at net.sf.jasperreports.engine.fill.JRFillTextElement.chopTextElement(JRFillTextElement.java:528)|

at net.sf.jasperreports.engine.fill.JRFillTextField.prepare(JRFillTextField.java:501)|

at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:345)|

at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:311)|

at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:275)|

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1291)|

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631)|

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:248)|

at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:132)|

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:750)|

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)|

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)|

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
java.lang.NullPointerException|
位于java.awt.font.TextLayout.getBaselineFromGraphic(未知源)|
位于java.awt.font.TextMeasurer.initAll(未知源)|
位于java.awt.font.textmasurer。(未知源)|
位于java.awt.font.LineBreakMeasurer。(未知源)|
位于java.awt.font.LineBreakMeasurer。(未知源)|
位于net.sf.jasperreports.engine.fill.textmasurer.renderParagraph(textmasurer.java:259)|
位于net.sf.jasperreports.engine.fill.textmasurer.measure(textmasurer.java:220)|
位于net.sf.jasperreports.engine.fill.JRFillTextElement.chopTextElement(JRFillTextElement.java:528)|
net.sf.jasperreports.engine.fill.JRFillTextField.prepare(JRFillTextField.java:501)|
位于net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:345)|
位于net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:311)|
位于net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:275)|
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1291)|
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631)|
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:248)|
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:132)|
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:750)|
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)|
位于net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)|
位于net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)

这可能是(1)您正在使用的JRE版本中的错误,或者(2)线程错误。在我工作的一个项目中,堆栈跟踪中有相同的前五行。

使用纯JRE代码可以得到完全相同的错误,如下所示:

@Test
public void testText()
{
    String text = "\uFFFF\u0300";
    JTextArea textArea = new JTextArea(text);
    JOptionPane.showMessageDialog(null, textArea);
}

因此,我一直假设这是一个JRE错误,并已将其提交给Oracle。解决方法大概是剔除导致它的任何字符序列,但我显然不知道您输入的是什么。

我们也不能,因为我们不知道列是什么,它的类型是什么,或者。。。什么都行。你能把你的密码贴出来吗?您是否正在使用报表模板(
jrxml
file)?@DᴀᴠᴇNᴇᴡᴛᴏ该列只包含文件和文件夹名称。+ 1好抓取:-)你可以考虑添加bug /报告号,或者可能出现的字符序列。他们还没有给我一个bug号,我们发现的字符序列是在例子中。我不知道完整的字符序列发生在哪里。就像往常一样,Oracle只是跟进了一下,把我的错误报告扔在了地板上,从来没有确认过,也没有给我任何跟踪号来跟进。我在几年前也遇到了这个问题,但忘了提交错误报告。至少现在有一个(2014-03-20):