NoClassDefFoundError: Could not initialize class org.eclipse.birt.chart.device.svg.SVGRendererImpl

Options
David Pérez
edited February 11, 2022 in Analytics #1
<p>Hi,</p>
<p> </p>
<p>I have many servers, nearly identic theorically.</p>
<p>In one of them when running reports with Charts, I get this exception:</p>
<p> </p>
<p>java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.birt.chart.device.svg.SVGRendererImpl<br>
at java.lang.<span style="color:rgb(145,0,145);">Class</span>.forName0(Native Method) ~[na:1.7.0_75]<br>
at java.lang.<span style="color:rgb(145,0,145);">Class</span>.forName(<span style="color:rgb(145,0,145);">Class</span>.java:191) ~[na:1.7.0_75]<br>
at org.eclipse.birt.core.framework.jar.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:46) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.core.framework.eclipse.EclipseConfigurationElement.createExecutableExtension(EclipseConfigurationElement.java:35) ~[org.eclipse.birt.runtime-4.3.1.jar<br>
:na]<br>
at org.eclipse.birt.chart.util.PluginSettings.getPluginXmlObject(PluginSettings.java:1252) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.chart.util.PluginSettings.getDevice(PluginSettings.java:632) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.chart.api.ChartEngine.getRenderer(ChartEngine.java:119) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationBase.prepareDeviceRenderer(ChartReportItemPresentationBase.java:1222) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationBase.generateRenderObject(ChartReportItemPresentationBase.java:971) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationBase.onRowSets(ChartReportItemPresentationBase.java:904) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationProxy.onRowSets(ChartReportItemPresentationProxy.java:108) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.processExtendedContent(LocalizedContentVisitor.java:1074) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.localizeForeign(LocalizedContentVisitor.java:591) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.localize(LocalizedContentVisitor.java:176) ~[org.eclipse.birt.runtime-4.3.1.jar:na]<br>
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:37)</p>
<p> </p>
<p>More information:</p>
<ul><li>CentOS 6</li>
<li>Java 7</li>
<li>Birt <span style="color:#008000;font-weight:bold;">4.3.1</span></li>
</ul><p> </p>
<p> </p>
<p>After some <strong>research</strong>, I've seen this:</p>
<p> </p>
<p><a class="" href="https://parametrizacion.fccma.com/fccma/#ESC.51.1041@RAP_V01.ma_prc_efic_energ">http://stackoverflow.com/questions/7325579/java-lang-noclassdeffounderror-could-not-initialize-class-****</a></p&gt;
<p> </p>
<p>So, the error is due probably to a failing static constructor.</p>
<p> </p>
<p>I've identified 2 static constructors in class <span style="color:rgb(51,51,51);font-family:Arial, sans-serif;background-color:rgb(245,245,245);">G2dRendererBase, an ancestor of class </span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;">SVGRendererImpl:</span></p>
<p> </p>
<p>    <span style="color:rgb(0,0,145);">static</span></p>
<p>    {<br>
        <span style="color:rgb(145,0,145);">String</span>[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment( )<br>
                .getAvailableFontFamilyNames( );<br>
        sLocalFontFamilyNamesSet = <span style="color:rgb(0,0,145);">new</span> HashSet<<span style="color:rgb(145,0,145);">String</span>>( Arrays.asList( fonts ) );<br>
    }<br><br><span style="color:rgb(0,0,145);">    static</span><br>
    {<br>
        sLogicFontNameMap.put( FontUtil.LOGIC_FONT_FAMILY_SERIF, <span style="color:rgb(0,145,0);">"Serif"</span> ); <span style="color:rgb(128,128,128);">//$NON-NLS-1$</span><br>
        sLogicFontNameMap.put( FontUtil.LOGIC_FONT_FAMILY_SANS_SERIF,<br>
                <span style="color:rgb(0,145,0);">"SansSerif"</span> ); <span style="color:rgb(128,128,128);">//$NON-NLS-1$</span><br>
        sLogicFontNameMap.put( FontUtil.LOGIC_FONT_FAMILY_MONOSPACE,<br>
                <span style="color:rgb(0,145,0);">"Monospaced"</span> ); <span style="color:rgb(128,128,128);">//$NON-NLS-1$</span><br>
    }</p>
<p> </p>
<p>I think that it is failing:</p>
<ul><li>GraphicsEnvironment creation</li>
<li>Or listing fonts.</li>
</ul><p> </p>
<p> </p>
<p>I've also seen other people reporting a similar problem, but it provides me no clue:</p>
<p><a data-ipb='nomediaparse' href='https://www.eclipse.org/forums/index.php/t/968321/'>https://www.eclipse.org/forums/index.php/t/968321/</a></p&gt;
<p> </p>
<p>Thanks in advance for any help.</p>

Comments

  • <p>More information:</p>
    <p>I'm using OpenJDK, not Oracle JDK.</p>
  • Clement Wong
    Clement Wong E mod
    edited February 18, 2016 #3
    Options
    <p>How are you running these reports with charts?  In a Java app, or application server?  If app server, which one and version?</p>
    <p> </p>
    <p>I can try to replicate in my environment.</p>
    <p> </p>
    <p>What specific version of CentOS 6?  And is it 32-bit or 64-bit?</p>
    <p>What version of OpenJDK?  32-bit or 64-bit?  Also, it's JDK, and not JRE?</p>
    <p> </p>
    <p><em>I have many servers, nearly identic theorically.</em></p>
    <p> </p>
    <p>Have you compared the installed packages on the working ones with the non-working one?</p>
    <p> </p>
    <p>Is that the entire stack trace?</p>
    Warning No formatter is installed for the format ipb