Program: 94629
Project: 94629
Buggy source:
/** 
 * Start sharing an editor's contents between two participants. This will send a request to start sharing with the target identified by the <code>toID</code> parameter. The remote receiver will be displayed a message dialog, and given the option to start editor sharing, or not.
 * @param our the ID associated with the initiator. Must not be <code>null</code>.
 * @param fromName a name to present to the receiver. If <code>null, our.getName() will be used.
 * @param toID the ID of the intended receiver.  Must not be <code>null</code>.
 * @param fileName the file name of the file to be shared (with suffix type extension).  Must not be <code>null</code>.
 * @param editorPart the text editor currently showing the contents of this editor.  Must not be <code>null</code>.
 */
public void startShare(final IRosterManager rm,final ID our,final String fromName,final ID toID,final String fileName,final ITextEditor editorPart){
  Trace.entering(Activator.PLUGIN_ID,DocshareDebugOptions.METHODS_ENTERING,DocShare.class,"String_Node_Str",new Object[]{our,fromName,toID,fileName,editorPart});
  Assert.isNotNull(our);
  final String fName=(fromName == null) ? our.getName() : fromName;
  Assert.isNotNull(toID);
  Assert.isNotNull(fName);
  Assert.isNotNull(editorPart);
  Display.getDefault().syncExec(new Runnable(){
    public void run(){
      try {
        final String content=editorPart.getDocumentProvider().getDocument(editorPart.getEditorInput()).get();
        send(toID,new StartMessage(our,fName,toID,content,fileName));
        localStartShare(rm,our,our,toID,editorPart);
      }
 catch (      final Exception e) {
        logError(Messages.DocShare_ERROR_STARTING_EDITOR_TITLE,e);
        showErrorToUser(Messages.DocShare_ERROR_STARTING_EDITOR_TITLE,NLS.bind(Messages.DocShare_ERROR_STARTING_EDITOR_MESSAGE,e.getLocalizedMessage()));
      }
    }
  }
);
  Trace.exiting(Activator.PLUGIN_ID,DocshareDebugOptions.METHODS_ENTERING,DocShare.class,"String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Start sharing an editor's contents between two participants. This will send a request to start sharing with the target identified by the <code>toID</code> parameter. The remote receiver will be displayed a message dialog, and given the option to start editor sharing, or not.
 * @param our the ID associated with the initiator. Must not be <code>null</code>.
 * @param fromName a name to present to the receiver. If <code>null, our.getName() will be used.
 * @param toID the ID of the intended receiver.  Must not be <code>null</code>.
 * @param fileName the file name of the file to be shared (with suffix type extension).  Must not be <code>null</code>.
 * @param editorPart the text editor currently showing the contents of this editor.  Must not be <code>null</code>.
 */
public void startShare(final ID our,final String fromName,final ID toID,final String fileName,final ITextEditor editorPart){
  Trace.entering(Activator.PLUGIN_ID,DocshareDebugOptions.METHODS_ENTERING,DocShare.class,"String_Node_Str",new Object[]{our,fromName,toID,fileName,editorPart});
  Assert.isNotNull(our);
  final String fName=(fromName == null) ? our.getName() : fromName;
  Assert.isNotNull(toID);
  Assert.isNotNull(fName);
  Assert.isNotNull(editorPart);
  Display.getDefault().syncExec(new Runnable(){
    public void run(){
      try {
        final String content=editorPart.getDocumentProvider().getDocument(editorPart.getEditorInput()).get();
        send(toID,new StartMessage(our,fName,toID,content,fileName));
        localStartShare(getLocalRosterManager(),our,our,toID,editorPart);
      }
 catch (      final Exception e) {
        logError(Messages.DocShare_ERROR_STARTING_EDITOR_TITLE,e);
        showErrorToUser(Messages.DocShare_ERROR_STARTING_EDITOR_TITLE,NLS.bind(Messages.DocShare_ERROR_STARTING_EDITOR_MESSAGE,e.getLocalizedMessage()));
      }
    }
  }
);
  Trace.exiting(Activator.PLUGIN_ID,DocshareDebugOptions.METHODS_ENTERING,DocShare.class,"String_Node_Str");
}