log.error(ex, ex);
    public NSData imageData() {        if(_imageData == null) {            try {                JFreeChart chart = chart();                if(chart != null) {                    ByteArrayOutputStream imageStream = new ByteArrayOutputStream();                    ChartRenderingInfo info = null;                    if(showToolTips() || showUrls()) {                        info = new ChartRenderingInfo(new StandardEntityCollection());                    }                    if("image/jpeg".equals(imageType())) {                        ChartUtilities.writeChartAsJPEG(imageStream, chart, width(), height(), info);                    } else {                        ChartUtilities.writeChartAsPNG(imageStream, chart, width(), height(), info);                    }                    if(showToolTips() || showUrls()) {                        _imageMapName = "ERP" + System.identityHashCode(chart);                        ToolTipTagFragmentGenerator toolTipGenerator = null;                        URLTagFragmentGenerator urlTagFragmentGenerator = null;                        if(showToolTips()) {                            toolTipGenerator = new ToolTipTagFragmentGenerator() {                                public String generateToolTipFragment(String toolTip) {                                    return " title=\"" +toolTip + "\"";                                }                            };                        }                        if(showUrls()) {                            urlTagFragmentGenerator = new URLTagFragmentGenerator() {                                public String generateURLFragment(String url) {                                    return " href=\""+url+"\"";                                }                            };                        }                        _imageMap = ImageMapUtil.getImageMap(_imageMapName, info,                                 toolTipGenerator, urlTagFragmentGenerator);                    }                    _imageData = new NSData(imageStream.toByteArray());                }            } catch (Exception ex) {                NSForwardException._runtimeExceptionForThrowable(ex);            }        }        return _imageData;    }