Program: 71281
Project: 71281
Buggy source:
/** 
 * Renders the chart block.
 * @param ipr
 * @param b
 * @throws ChartException
 */
protected void renderChartBlock(IPrimitiveRenderer ipr,Block b,Object oSource) throws ChartException {
  final double dScale=getDeviceScale();
  final RectangleRenderEvent rre=(RectangleRenderEvent)((EventObjectCache)ipr).getEventObject(oSource,RectangleRenderEvent.class);
  rre.updateFrom(b,dScale);
  ipr.fillRectangle(rre);
  ipr.drawRectangle(rre);
  if (isInteractivityEnabled()) {
    Trigger tg;
    EList elTriggers=b.getTriggers();
    Location[] loaHotspot=new Location[4];
    Bounds bo=b.getBounds().scaledInstance(dScale);
    double dLeft=bo.getLeft();
    double dTop=bo.getTop();
    double dWidth=bo.getWidth();
    double dHeight=bo.getHeight();
    loaHotspot[0]=LocationImpl.create(dLeft,dTop);
    loaHotspot[1]=LocationImpl.create(dLeft + dWidth,dTop);
    loaHotspot[2]=LocationImpl.create(dLeft + dWidth,dTop + dHeight);
    loaHotspot[3]=LocationImpl.create(dLeft,dTop + dHeight);
    if (!elTriggers.isEmpty()) {
      final InteractionEvent iev=(InteractionEvent)((EventObjectCache)ipr).getEventObject(StructureSource.createChartBlock(b),InteractionEvent.class);
      for (int t=0; t < elTriggers.size(); t++) {
        tg=TriggerImpl.copyInstance((Trigger)elTriggers.get(t));
        processTrigger(tg,StructureSource.createChartBlock(b));
        iev.addTrigger(tg);
      }
      final PolygonRenderEvent pre=(PolygonRenderEvent)((EventObjectCache)ipr).getEventObject(StructureSource.createChartBlock(b),PolygonRenderEvent.class);
      pre.setPoints(loaHotspot);
      iev.setHotSpot(pre);
      ipr.enableInteraction(iev);
    }
  }
}

Fixed version (ground truth):
/** 
 * Renders the chart block.
 * @param ipr
 * @param b
 * @throws ChartException
 */
protected void renderChartBlock(IPrimitiveRenderer ipr,Block b,Object oSource) throws ChartException {
  final double dScale=getDeviceScale();
  final RectangleRenderEvent rre=(RectangleRenderEvent)((EventObjectCache)ipr).getEventObject(oSource,RectangleRenderEvent.class);
  rre.updateFrom(b,dScale);
  try {
    ipr.fillRectangle(rre);
  }
 catch (  Exception e) {
    logger.log(e);
  }
  ipr.drawRectangle(rre);
  if (isInteractivityEnabled()) {
    Trigger tg;
    EList elTriggers=b.getTriggers();
    Location[] loaHotspot=new Location[4];
    Bounds bo=b.getBounds().scaledInstance(dScale);
    double dLeft=bo.getLeft();
    double dTop=bo.getTop();
    double dWidth=bo.getWidth();
    double dHeight=bo.getHeight();
    loaHotspot[0]=LocationImpl.create(dLeft,dTop);
    loaHotspot[1]=LocationImpl.create(dLeft + dWidth,dTop);
    loaHotspot[2]=LocationImpl.create(dLeft + dWidth,dTop + dHeight);
    loaHotspot[3]=LocationImpl.create(dLeft,dTop + dHeight);
    if (!elTriggers.isEmpty()) {
      final InteractionEvent iev=(InteractionEvent)((EventObjectCache)ipr).getEventObject(StructureSource.createChartBlock(b),InteractionEvent.class);
      for (int t=0; t < elTriggers.size(); t++) {
        tg=TriggerImpl.copyInstance((Trigger)elTriggers.get(t));
        processTrigger(tg,StructureSource.createChartBlock(b));
        iev.addTrigger(tg);
      }
      final PolygonRenderEvent pre=(PolygonRenderEvent)((EventObjectCache)ipr).getEventObject(StructureSource.createChartBlock(b),PolygonRenderEvent.class);
      pre.setPoints(loaHotspot);
      iev.setHotSpot(pre);
      ipr.enableInteraction(iev);
    }
  }
}