如何修复Jaspersoft studio插件中TraceGovernor导致的java.lang.NullPointe



我正在为Jaspersoft工作室编写最新的插件。插件在尝试打开报表预览时崩溃。(来自插件)java.lang.NullPoinpointerException的堆栈跟踪:

com.jaspersoft.studio.debug.TraceGovernor.setup(TraceGovernor.java:111)
com.jaspersoft.studio.debug.TraceGovernor.initMaps(TraceGovernor.java:118)
com.jaspersoft.studio.debug.TraceGovernor.beforeReportInit(TraceGovernor.java:162)
net.sf.jasperreports.engine.fill.JRFillDatasetScriptlet.beforeReportInit(JRFillDatasetScriptlet.java:74)
net.sf.jasperreports.engine.JRAbstractScriptlet.callBeforeReportInit(JRAbstractScriptlet.java:176)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:236)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:119)
java.lang.Thread.run(Thread.java:745)

堆栈跟踪中的非代码是我的。我认为它无法加载必要的类。(Jaspersoft工作室可以加载所有必要的库)有人知道吗,请用它做什么?非常感谢。


编辑

我发现,它是由Jaspersoft工作室中的这个属性引起的,这个属性加载扩展,也就是加载TraceGovernor。它用于调试报告,但与我的插件不兼容。

net.sf.jasperreports.extension.registry.factory.governor=com.jaspersoft.studio.debug.TraceGovernorExtensionsRegistryFactory

我已经通过从java包com.jaspersoft.studio_6.3.0.final.jarjasperreports_extension.properties中删除它解决了这个问题,但我想要一些非破坏性的方法,如何禁用这个扩展。

相关源代码位于:

http://anonsvn:anonsvn@code.jaspersoft.com/svn/reports/jaspersoftstudio/tags/6_3_0_final/com.jasperssoft.studio/src/com/jaspersoft/studio/debug/TraceGovernor.java

NPE似乎是TraceGovernor类中未初始化的jrConfig字段的结果,如果TraceGovernor的构造函数中ScriptletFactoryContext contextgetJasperReportsContext()返回instanceof JasperReportsConfiguration,则该字段将被初始化。

您可以签出并浏览存储库,以进一步调查NPE的原因。否则,我只能建议向JasperSoft提交一份错误报告。

相关内容

最新更新