Buggy code:
private void applyStyles ( Chart model , StyledComponent type , EObject component , IStyleProcessor externalProcessor ) { } private IStyle getMingledStyle ( Chart model , StyledComponent type , IStyleProcessor externalProcessor ) { } private StyledComponent getParentType ( StyledComponent type ) { } private boolean updateHierarchyStyle ( Chart model , StyledComponent type , IStyleProcessor processor , Generator . SimpleContainer currentContainer ) { } public List < String > getRowExpressions ( Chart cm ) throws ChartException { } public List < String > getRowExpressions ( Chart cm , IActionEvaluator iae , boolean needChangeValueExpr ) throws ChartException { } public List < String > getRowExpressions ( Chart cm , IActionEvaluator iae ) throws ChartException { } public void bindData ( ResultSet resultSet , Chart chart , RunTimeContext rtc ) throws ChartException { } public void bindData ( IDataRowExpressionEvaluator expressionEvaluator , Chart chart , RunTimeContext rtc ) throws ChartException { } public void bindData ( IDataRowExpressionEvaluator expressionEvaluator , IActionEvaluator iae , Chart chart , RunTimeContext rtc ) throws ChartException { } public RunTimeContext prepare ( Chart model , IExternalContext externalContext , IScriptClassLoader iscl , Locale locale ) throws ChartException { } public RunTimeContext prepare ( Chart model , IExternalContext externalContext , IScriptClassLoader iscl , ULocale locale ) throws ChartException { } public final GeneratedChartState build ( IDisplayServer ids , Chart cmRunTime , Scriptable scParent , Bounds bo , RunTimeContext rtc ) throws ChartException { } public final GeneratedChartState build ( IDisplayServer ids , Chart cmRunTime , Scriptable scParent , Bounds bo , RunTimeContext rtc , IStyleProcessor externalProcessor ) throws ChartException { } public final GeneratedChartState build ( IDisplayServer ids , Chart cmRunTime , Bounds bo , RunTimeContext rtc ) throws ChartException { } public final GeneratedChartState build ( IDisplayServer ids , Chart cmRunTime , Bounds bo , IExternalContext externalContext , RunTimeContext rtc ) throws ChartException { } public final GeneratedChartState build ( IDisplayServer ids , Chart cmRunTime , Bounds bo , IExternalContext externalContext , RunTimeContext rtc , IStyleProcessor externalProcessor ) throws ChartException { } public final void refresh ( GeneratedChartState gcs ) throws ChartException { } public final void render ( IDeviceRenderer idr , GeneratedChartState gcs ) throws ChartException { final Chart cm = gcs . getChartModel ( ) ; final int scale = ( idr . getDisplayServer ( ) . getDpiResolution ( ) ) // 72 ; if ( scale != 1 ) { updateDeviceScale ( cm , scale ) ; } idr . getDisplayServer ( ) . setResourceFinder ( gcs . getRunTimeContext ( ) . getResourceFinder ( ) ) ; ScriptHandler . callFunction ( gcs . getRunTimeContext ( ) . getScriptHandler ( ) , START_RENDERING , gcs ) ; ScriptHandler . callFunction ( gcs . getRunTimeContext ( ) . getScriptHandler ( ) , BEFORE_RENDERING , gcs , gcs . getRunTimeContext ( ) . getScriptContext ( ) ) ; Legend lg = cm . getLegend ( ) ; lg . updateLayout ( cm ) ; if ( ( lg . getPosition ( ) ) == ( Position . INSIDE_LITERAL ) ) { Bounds bo = gcs . getComputations ( ) . getPlotBounds ( ) ; Generator . updateLegendInside ( bo , lg , idr . getDisplayServer ( ) , cm , gcs . getRunTimeContext ( ) ) ; } final LinkedHashMap < Series , LegendItemRenderingHints > lhm = gcs . getRenderers ( ) ; final int iSize = lhm . size ( ) ; BaseRenderer br ; final Collection < LegendItemRenderingHints > co = lhm . values ( ) ; final LegendItemRenderingHints [ ] lirha = co . toArray ( new LegendItemRenderingHints [ co . size ( ) ] ) ; final DeferredCacheManager dcm = new DeferredCacheManager ( idr , cm ) ; DeferredCache dc = null ; final Bounds bo = gcs . getChartModel ( ) . getBlock ( ) . getBounds ( ) ; idr . setProperty ( EXPECTED_BOUNDS , Generator . goFactory . scaleBounds ( bo , ( ( idr . getDisplayServer ( ) . getDpiResolution ( ) ) // 72.0 ) ) ) ; idr . setChartComputation ( gcs . getComputations ( ) . getChartComputation ( ) ) ; gcs . getRunTimeContext ( ) . setStructureDefinitionListener ( ( idr . needsStructureDefinition ( ) ? idr : null ) ) ; idr . before ( ) ; for ( int i = 0 ; i < iSize ; i ++ ) { br = lirha [ i ] . getRenderer ( ) ; <START_BUG> dc = dcm . createDeferredCache ( br ) ; <END_BUG> br . setDeferredCacheManager ( dcm ) ; br . set ( dc ) ; br . set ( idr ) ; br . set ( gcs . getRunTimeContext ( ) ) ; try { br . render ( lhm , bo ) ; } catch ( RuntimeException ex ) { throw new ChartException ( ChartEnginePlugin . ID , ChartException . RENDERING , ex ) ; } } idr . after ( ) ; gcs . getRunTimeContext ( ) . clearState ( ) ; ScriptHandler . callFunction ( gcs . getRunTimeContext ( ) . getScriptHandler ( ) , FINISH_RENDERING , gcs ) ; ScriptHandler . callFunction ( gcs . getRunTimeContext ( ) . getScriptHandler ( ) , AFTER_RENDERING , gcs , gcs . getRunTimeContext ( ) . getScriptContext ( ) ) ; } private static final void updateLegendInside ( Bounds boContainer , Legend lg , IDisplayServer ids , Chart cm , RunTimeContext rtc ) throws ChartException { } static class SimpleContainer { SimpleStyle style = null ; } private static List < String > getRowExpressions ( ChartWithoutAxes cwoa , IActionEvaluator iae , boolean needChangeValueExpr ) throws ChartException { } private static List < String > getRowExpressions ( ChartWithAxes cwa , IActionEvaluator iae , boolean needChangeValueExpr ) throws ChartException { } private static void addSortExperssion ( final List < String > alExpressions , SeriesDefinition seriesDefinition , String sExpression ) { } private static void checkDataEmpty ( Chart cm , RunTimeContext rtc ) { } public void setDefaultBackground ( ColorDefinition cd ) { }

Fix:
dc = dcm . createDeferredCache ( br , i ) ;