Program: 94630
Project: 94630
Buggy source:
/** 
 * This method called by the   {@link #handleMessage(ID,byte[])} method ifthe type of the message received is a start message (sent by remote party via  {@link #startShare(IRosterManager,ID,String,ID,String,ITextEditor)}.
 * @param message the UpdateMessage received.
 */
protected void handleStartMessage(final StartMessage message){
  final ID senderID=message.getSenderID();
  Assert.isNotNull(senderID);
  final String senderUsername=message.getSenderUsername();
  Assert.isNotNull(senderUsername);
  final ID our=message.getReceiverID();
  Assert.isNotNull(our);
  final String filename=message.getFilename();
  Assert.isNotNull(filename);
  final String documentContent=message.getDocumentContent();
  Assert.isNotNull(documentContent);
synchronized (stateLock) {
    if (isSharing() || startContent != null) {
      sendStopMessage(senderID);
      return;
    }
    startContent=documentContent;
  }
  Display.getDefault().asyncExec(new Runnable(){
    public void run(){
      try {
        if (openReceiverDialog(senderID,senderUsername,filename)) {
          final DocShareEditorInput dsei=new DocShareEditorInput(getTempFileStore(senderUsername,filename,startContent),senderUsername,filename);
          final ITextEditor ep=(ITextEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(dsei,getEditorIdForFileName(filename));
          localStartShare(getLocalRosterManager(),our,senderID,our,ep);
        }
 else {
          sendStopMessage();
          localStopShare();
        }
      }
 catch (      final Exception e) {
        logError(Messages.DocShare_EXCEPTION_RECEIVING_MESSAGE_TITLE,e);
        showErrorToUser(Messages.DocShare_EXCEPTION_RECEIVING_MESSAGE_TITLE,NLS.bind(Messages.DocShare_EXCEPTION_RECEIVING_MESSAGE_MESSAGE,e.getLocalizedMessage()));
      }
    }
  }
);
}

Fixed version (ground truth):
/** 
 * This method called by the   {@link #handleMessage(ID,byte[])} method ifthe type of the message received is a start message (sent by remote party via  {@link #startShare(ID,String,ID,String,ITextEditor)}.
 * @param message the UpdateMessage received.
 */
protected void handleStartMessage(final StartMessage message){
  final ID senderID=message.getSenderID();
  Assert.isNotNull(senderID);
  final String senderUsername=message.getSenderUsername();
  Assert.isNotNull(senderUsername);
  final ID our=message.getReceiverID();
  Assert.isNotNull(our);
  final String filename=message.getFilename();
  Assert.isNotNull(filename);
  final String documentContent=message.getDocumentContent();
  Assert.isNotNull(documentContent);
synchronized (stateLock) {
    if (isSharing() || startContent != null) {
      sendStopMessage(senderID);
      return;
    }
    startContent=documentContent;
  }
  Display.getDefault().asyncExec(new Runnable(){
    public void run(){
      try {
        if (openReceiverDialog(senderID,senderUsername,filename)) {
          final DocShareEditorInput dsei=new DocShareEditorInput(getTempFileStore(senderUsername,filename,startContent),senderUsername,filename);
          final ITextEditor ep=(ITextEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(dsei,getEditorIdForFileName(filename));
          localStartShare(getLocalRosterManager(),our,senderID,our,ep);
        }
 else {
          sendStopMessage();
          localStopShare();
        }
      }
 catch (      final Exception e) {
        logError(Messages.DocShare_EXCEPTION_RECEIVING_MESSAGE_TITLE,e);
        showErrorToUser(Messages.DocShare_EXCEPTION_RECEIVING_MESSAGE_TITLE,NLS.bind(Messages.DocShare_EXCEPTION_RECEIVING_MESSAGE_MESSAGE,e.getLocalizedMessage()));
      }
    }
  }
);
}