Program: 71287
Project: 71287
Buggy source:
protected void refreshBackgroundImage(DesignElementHandle handle){
  IReportElementFigure figure=(IReportElementFigure)getFigure();
  String backGroundImage=getBackgroundImage(handle);
  Object[] backGroundPosition=getBackgroundPosition(handle);
  int backGroundRepeat=getBackgroundRepeat(handle);
  if (backGroundImage == null) {
    figure.setImage(null);
  }
 else {
    Image image=null;
    try {
      image=ImageManager.getInstance().getImage(getModelAdapter().getModuleHandle(),backGroundImage);
    }
 catch (    SWTException e) {
      image=null;
    }
    if (image == null) {
      figure.setImage(null);
      return;
    }
    figure.setImage(image);
    figure.setRepeat(backGroundRepeat);
    Object xPosition=backGroundPosition[0];
    Object yPosition=backGroundPosition[1];
    Rectangle area=getFigure().getClientArea();
    org.eclipse.swt.graphics.Rectangle imageArea=image.getBounds();
    Point position=new Point(-1,-1);
    int alignment=0;
    if (xPosition instanceof Integer) {
      position.x=((Integer)xPosition).intValue();
    }
 else     if (xPosition instanceof DimensionValue) {
      int percentX=(int)((DimensionValue)xPosition).getMeasure();
      position.x=(area.width - imageArea.width) * percentX / 100;
    }
 else     if (xPosition instanceof String) {
      alignment|=DesignElementHandleAdapter.getPosition((String)xPosition);
    }
    if (yPosition instanceof Integer) {
      position.y=((Integer)yPosition).intValue();
    }
 else     if (yPosition instanceof DimensionValue) {
      int percentY=(int)((DimensionValue)yPosition).getMeasure();
      position.y=(area.width - imageArea.width) * percentY / 100;
    }
 else     if (yPosition instanceof String) {
      alignment|=DesignElementHandleAdapter.getPosition((String)yPosition);
    }
    figure.setAlignment(alignment);
    figure.setPosition(position);
  }
}

Fixed version (ground truth):
protected void refreshBackgroundImage(DesignElementHandle handle){
  IReportElementFigure figure=(IReportElementFigure)getFigure();
  String backGroundImage=getBackgroundImage(handle);
  if (backGroundImage == null) {
    figure.setImage(null);
  }
 else {
    Image image=null;
    try {
      image=ImageManager.getInstance().getImage(getModelAdapter().getModuleHandle(),backGroundImage);
    }
 catch (    SWTException e) {
      image=null;
    }
    if (image == null) {
      figure.setImage(null);
      return;
    }
    figure.setImage(image);
    Object[] backGroundPosition=getBackgroundPosition(handle);
    int backGroundRepeat=getBackgroundRepeat(handle);
    figure.setRepeat(backGroundRepeat);
    Object xPosition=backGroundPosition[0];
    Object yPosition=backGroundPosition[1];
    Rectangle area=getFigure().getClientArea();
    org.eclipse.swt.graphics.Rectangle imageArea=image.getBounds();
    Point position=new Point(-1,-1);
    int alignment=0;
    if (xPosition instanceof Integer) {
      position.x=((Integer)xPosition).intValue();
    }
 else     if (xPosition instanceof DimensionValue) {
      int percentX=(int)((DimensionValue)xPosition).getMeasure();
      position.x=(area.width - imageArea.width) * percentX / 100;
    }
 else     if (xPosition instanceof String) {
      alignment|=DesignElementHandleAdapter.getPosition((String)xPosition);
    }
    if (yPosition instanceof Integer) {
      position.y=((Integer)yPosition).intValue();
    }
 else     if (yPosition instanceof DimensionValue) {
      int percentY=(int)((DimensionValue)yPosition).getMeasure();
      position.y=(area.width - imageArea.width) * percentY / 100;
    }
 else     if (yPosition instanceof String) {
      alignment|=DesignElementHandleAdapter.getPosition((String)yPosition);
    }
    figure.setAlignment(alignment);
    figure.setPosition(position);
  }
}