protected void calculateDescription() {
    SyncInfoTree syncInfoTree = getVisibleSyncInfoSet();
    if (syncInfoTree.getErrors().length > 0) {
      if (!showingError) {
        TeamUIPlugin.getStandardDisplay()
            .asyncExec(
                new Runnable() {
                  public void run() {
                    updatePage(getErrorComposite(getContainer()));
                    showingError = true;
                  }
                });
      }
      return;
    }

    showingError = false;
    super.calculateDescription();
  }
 public void dispose() {
   super.dispose();
   getConfiguration().removeActionContribution(changedListener);
   getParticipantSyncInfoSet().removeSyncSetChangedListener(subscriberListener);
   getVisibleSyncInfoSet().removeSyncSetChangedListener(outputSetListener);
 }
 /* (non-Javadoc)
  * @see org.eclipse.team.internal.ui.synchronize.ChangesSection#initializeChangesViewer()
  */
 protected void initializeChangesViewer() {
   super.initializeChangesViewer();
   getConfiguration().addActionContribution(changedListener);
   getParticipantSyncInfoSet().addSyncSetChangedListener(subscriberListener);
   getVisibleSyncInfoSet().addSyncSetChangedListener(outputSetListener);
 }