Program: 68939
Project: 68939
Buggy source:
public void enableInteraction(InteractionEvent iev) throws ChartException {
  if (_iun == null) {
    logger.log(ILogger.INFORMATION,Messages.getString("String_Node_Str",getULocale()));
    return;
  }
  final Trigger[] tga=iev.getTriggers();
  if (tga == null) {
    return;
  }
  Region clipping=new Region();
  _gc.getClipping(clipping);
  TriggerCondition tc;
  List<RegionAction> al;
  final PrimitiveRenderEvent pre=iev.getHotSpot();
  if (pre instanceof PolygonRenderEvent) {
    final Location[] loa=((PolygonRenderEvent)pre).getPoints();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),loa,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof RectangleRenderEvent) {
    final Bounds bo=((RectangleRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),bo,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof OvalRenderEvent) {
    final Bounds boEllipse=((OvalRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),boEllipse,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof ArcRenderEvent) {
    final ArcRenderEvent are=(ArcRenderEvent)pre;
    final Bounds boEllipse=are.getEllipseBounds();
    double dStart=are.getStartAngle();
    double dExtent=are.getAngleExtent();
    int iArcType=are.getStyle();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),boEllipse,dStart,dExtent,iArcType == ArcRenderEvent.SECTOR,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof AreaRenderEvent) {
    final Bounds bo=((AreaRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),bo,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
  clipping.dispose();
}

Fixed version (ground truth):
public void enableInteraction(InteractionEvent iev) throws ChartException {
  if (_iun == null) {
    logger.log(ILogger.INFORMATION,Messages.getString("String_Node_Str",getULocale()));
    return;
  }
  final Trigger[] tga=iev.getTriggers();
  if (tga == null) {
    return;
  }
  Region clipping=new Region();
  _gc.getClipping(clipping);
  TriggerCondition tc;
  List<RegionAction> al;
  final PrimitiveRenderEvent pre=iev.getHotSpot();
  if (pre instanceof PolygonRenderEvent) {
    final Location[] loa=((PolygonRenderEvent)pre).getPoints();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),loa,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof RectangleRenderEvent) {
    final Bounds bo=((RectangleRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),bo,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof OvalRenderEvent) {
    final Bounds boEllipse=((OvalRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),boEllipse,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof ArcRenderEvent) {
    final ArcRenderEvent are=(ArcRenderEvent)pre;
    final Bounds boEllipse=are.getEllipseBounds();
    double dStart=are.getStartAngle();
    double dExtent=are.getAngleExtent();
    int iArcType=are.getStyle();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),boEllipse,dStart,dExtent,iArcType,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
 else   if (pre instanceof AreaRenderEvent) {
    final Bounds bo=((AreaRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList<RegionAction>(4);
        _lhmAllTriggers.put(tc,al);
      }
      RegionAction ra=new RegionAction(iev.getStructureSource(),bo,tga[i].getAction(),dTranslateX,dTranslateY,dScale,clipping);
      ra.setCursor(iev.getCursor());
      al.add(ra);
    }
  }
  clipping.dispose();
}