Program: 71123
Project: 71123
Buggy source:
protected void propertyChange(Map info){
  boolean invalidate=false;
  if (info.get(ReportDesignHandle.BIDI_ORIENTATION_PROP) instanceof ReportDesignHandle) {
    String newOrientation=((ReportDesignHandle)info.get(ReportDesignHandle.BIDI_ORIENTATION_PROP)).getBidiOrientation();
    boolean mirrored=DesignChoiceConstants.BIDI_DIRECTION_RTL.equals(newOrientation);
    this.getViewer().flush();
    Composite parent=getViewer().getControl().getParent();
    BidiUIUtils.INSTANCE.applyOrientation(parent,mirrored);
    parent.layout(true);
    getViewer().setProperty(IReportGraphicConstants.REPORT_BIDIORIENTATION_PROPERTY,newOrientation);
    invalidate=true;
  }
  super.propertyChange(info);
  if (info.get(ReportDesignHandle.LAYOUT_PREFERENCE_PROP) != null) {
    if (info.get(ReportDesignHandle.LAYOUT_PREFERENCE_PROP) instanceof ReportDesignHandle) {
      getViewer().setProperty(IReportGraphicConstants.REPORT_LAYOUT_PROPERTY,((ReportDesignHandle)info.get(ReportDesignHandle.LAYOUT_PREFERENCE_PROP)).getLayoutPreference());
      invalidate=true;
    }
  }
  if (invalidate) {
    getFigure().invalidateTree();
    getFigure().revalidate();
  }
  if (info.get(IMasterPageModel.TOP_MARGIN_PROP) != null || info.get(IMasterPageModel.BOTTOM_MARGIN_PROP) != null || info.get(IMasterPageModel.LEFT_MARGIN_PROP) != null || info.get(IMasterPageModel.RIGHT_MARGIN_PROP) != null || info.get(IMasterPageModel.TYPE_PROP) != null || info.get(IMasterPageModel.WIDTH_PROP) != null || info.get(IMasterPageModel.HEIGHT_PROP) != null || info.get(IMasterPageModel.ORIENTATION_PROP) != null) {
    SlotHandle slotHandle=((ModuleHandle)getModel()).getMasterPages();
    Iterator iter=slotHandle.iterator();
    SimpleMasterPageHandle masterPageHandle=(SimpleMasterPageHandle)iter.next();
    Dimension size=getMasterPageSize(masterPageHandle);
    Rectangle bounds=new Rectangle(0,0,size.width - 1,size.height - 1);
    ((AbstractPageFlowLayout)getFigure().getLayoutManager()).setInitSize(bounds);
    figure.setBorder(new ReportDesignMarginBorder(getMasterPageInsets(masterPageHandle)));
    figure.setBounds(bounds.getCopy());
  }
}

Fixed version (ground truth):
protected void propertyChange(Map info){
  boolean invalidate=false;
  if (info.get(ReportDesignHandle.BIDI_ORIENTATION_PROP) instanceof ReportDesignHandle) {
    String newOrientation=((ReportDesignHandle)info.get(ReportDesignHandle.BIDI_ORIENTATION_PROP)).getBidiOrientation();
    boolean mirrored=DesignChoiceConstants.BIDI_DIRECTION_RTL.equals(newOrientation);
    this.getViewer().flush();
    Composite parent=getViewer().getControl().getParent();
    BidiUIUtils.INSTANCE.applyOrientation(parent,mirrored);
    parent.layout(true);
    getViewer().setProperty(IReportGraphicConstants.REPORT_BIDIORIENTATION_PROPERTY,newOrientation);
    invalidate=true;
  }
  super.propertyChange(info);
  if (info.get(ReportDesignHandle.LAYOUT_PREFERENCE_PROP) != null) {
    if (info.get(ReportDesignHandle.LAYOUT_PREFERENCE_PROP) instanceof ReportDesignHandle) {
      getViewer().setProperty(IReportGraphicConstants.REPORT_LAYOUT_PROPERTY,((ReportDesignHandle)info.get(ReportDesignHandle.LAYOUT_PREFERENCE_PROP)).getLayoutPreference());
      invalidate=true;
    }
  }
  if (invalidate) {
    getFigure().invalidateTree();
    getFigure().revalidate();
  }
  if (getModel() instanceof ReportDesignHandle) {
    if (info.get(IMasterPageModel.TOP_MARGIN_PROP) != null || info.get(IMasterPageModel.BOTTOM_MARGIN_PROP) != null || info.get(IMasterPageModel.LEFT_MARGIN_PROP) != null || info.get(IMasterPageModel.RIGHT_MARGIN_PROP) != null || info.get(IMasterPageModel.TYPE_PROP) != null || info.get(IMasterPageModel.WIDTH_PROP) != null || info.get(IMasterPageModel.HEIGHT_PROP) != null || info.get(IMasterPageModel.ORIENTATION_PROP) != null) {
      SlotHandle slotHandle=((ModuleHandle)getModel()).getMasterPages();
      Iterator iter=slotHandle.iterator();
      SimpleMasterPageHandle masterPageHandle=(SimpleMasterPageHandle)iter.next();
      Dimension size=getMasterPageSize(masterPageHandle);
      Rectangle bounds=new Rectangle(0,0,size.width - 1,size.height - 1);
      ((AbstractPageFlowLayout)getFigure().getLayoutManager()).setInitSize(bounds);
      figure.setBorder(new ReportDesignMarginBorder(getMasterPageInsets(masterPageHandle)));
      figure.setBounds(bounds.getCopy());
    }
  }
}