Program: 78348
Project: 78348
Buggy source:
public void enableInteraction(InteractionEvent iev) throws ChartException {
  if (_iun == null) {
    logger.log(ILogger.WARNING,Messages.getString("String_Node_Str",getULocale()));
    return;
  }
  final Trigger[] tga=iev.getTriggers();
  if (tga == null) {
    return;
  }
  Shape clipping=_g2d.getClip();
  TriggerCondition tc;
  ArrayList 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=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getSource(),loa,tga[i].getAction(),clipping));
    }
  }
 else   if (pre instanceof RectangleRenderEvent) {
    final Bounds bo=((RectangleRenderEvent)pre).getBounds();
    final Location[] loa=new Location[4];
    loa[0]=LocationImpl.create(bo.getLeft(),bo.getTop());
    loa[1]=LocationImpl.create(bo.getLeft(),bo.getTop() + bo.getHeight());
    loa[2]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop() + bo.getHeight());
    loa[3]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop());
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getSource(),loa,tga[i].getAction(),clipping));
    }
  }
 else   if (pre instanceof OvalRenderEvent) {
    final Bounds boEllipse=((OvalRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getSource(),boEllipse,tga[i].getAction(),clipping));
    }
  }
 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=toSwingArcType(are.getStyle());
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getSource(),boEllipse,dStart,dExtent,iArcType,tga[i].getAction(),clipping));
    }
  }
 else   if (pre instanceof AreaRenderEvent) {
    final Bounds bo=((AreaRenderEvent)pre).getBounds();
    final Location[] loa=new Location[4];
    loa[0]=LocationImpl.create(bo.getLeft(),bo.getTop());
    loa[1]=LocationImpl.create(bo.getLeft(),bo.getTop() + bo.getHeight());
    loa[2]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop() + bo.getHeight());
    loa[3]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop());
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getSource(),loa,tga[i].getAction(),clipping));
    }
  }
}

Fixed version (ground truth):
public void enableInteraction(InteractionEvent iev) throws ChartException {
  if (_iun == null) {
    logger.log(ILogger.WARNING,Messages.getString("String_Node_Str",getULocale()));
    return;
  }
  final Trigger[] tga=iev.getTriggers();
  if (tga == null) {
    return;
  }
  Shape clipping=_g2d.getClip();
  TriggerCondition tc;
  ArrayList 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=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getStructureSource(),loa,tga[i].getAction(),clipping));
    }
  }
 else   if (pre instanceof RectangleRenderEvent) {
    final Bounds bo=((RectangleRenderEvent)pre).getBounds();
    final Location[] loa=new Location[4];
    loa[0]=LocationImpl.create(bo.getLeft(),bo.getTop());
    loa[1]=LocationImpl.create(bo.getLeft(),bo.getTop() + bo.getHeight());
    loa[2]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop() + bo.getHeight());
    loa[3]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop());
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getStructureSource(),loa,tga[i].getAction(),clipping));
    }
  }
 else   if (pre instanceof OvalRenderEvent) {
    final Bounds boEllipse=((OvalRenderEvent)pre).getBounds();
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getStructureSource(),boEllipse,tga[i].getAction(),clipping));
    }
  }
 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=toSwingArcType(are.getStyle());
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getStructureSource(),boEllipse,dStart,dExtent,iArcType,tga[i].getAction(),clipping));
    }
  }
 else   if (pre instanceof AreaRenderEvent) {
    final Bounds bo=((AreaRenderEvent)pre).getBounds();
    final Location[] loa=new Location[4];
    loa[0]=LocationImpl.create(bo.getLeft(),bo.getTop());
    loa[1]=LocationImpl.create(bo.getLeft(),bo.getTop() + bo.getHeight());
    loa[2]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop() + bo.getHeight());
    loa[3]=LocationImpl.create(bo.getLeft() + bo.getWidth(),bo.getTop());
    for (int i=0; i < tga.length; i++) {
      tc=tga[i].getCondition();
      al=(ArrayList)_lhmAllTriggers.get(tc);
      if (al == null) {
        al=new ArrayList(4);
        _lhmAllTriggers.put(tc,al);
      }
      al.add(new ShapedAction(iev.getStructureSource(),loa,tga[i].getAction(),clipping));
    }
  }
}