Program: 122961
Project: 122961
Buggy source:
@Override @SuppressWarnings("String_Node_Str") public void run(){
  Object clipBoardContent;
  try {
    clipBoardContent=Clipboard.getDefault().getContents();
  }
 catch (  RuntimeException e) {
    return;
  }
  org.eclipse.swt.dnd.Clipboard systemClipboard=new org.eclipse.swt.dnd.Clipboard(Display.getCurrent());
  Object systemObject=systemClipboard.getContents(TextTransfer.getInstance());
  if (clipBoardContent instanceof List) {
    List<EditPart> partsList=(List<EditPart>)clipBoardContent;
    if (partsList == null || partsList.isEmpty()) {
      return;
    }
    List<NodePart> nodeParts=new ArrayList<NodePart>();
    List<NoteEditPart> noteParts=new ArrayList<NoteEditPart>();
    List<SubjobContainerPart> subjobParts=new ArrayList<SubjobContainerPart>();
    for (    Object o : partsList) {
      if (o instanceof NodePart) {
        if (!nodeParts.contains(o)) {
          nodeParts.add((NodePart)o);
        }
      }
 else       if (o instanceof NoteEditPart) {
        noteParts.add((NoteEditPart)o);
      }
 else       if (o instanceof SubjobContainerPart) {
        SubjobContainerPart subjob=(SubjobContainerPart)o;
        for (Iterator iterator=subjob.getChildren().iterator(); iterator.hasNext(); ) {
          NodeContainerPart nodeContainerPart=(NodeContainerPart)iterator.next();
          NodePart nodePart=nodeContainerPart.getNodePart();
          if (nodePart != null) {
            if (!nodeParts.contains(nodePart)) {
              nodeParts.add(nodePart);
            }
            subjobParts.add(subjob);
          }
        }
      }
    }
    AbstractTalendEditor editor=(AbstractTalendEditor)this.getWorkbenchPart();
    org.eclipse.draw2d.geometry.Point gefPoint=getCursorLocation();
    AbstractProcessProvider findProcessProviderFromPID=AbstractProcessProvider.findProcessProviderFromPID(IComponent.JOBLET_PID);
    if (findProcessProviderFromPID != null) {
      for (      NodePart copiedNodePart : nodeParts) {
        Node copiedNode=(Node)copiedNodePart.getModel();
        EComponentType componentType=null;
        String copideNodeId=null;
        String editorProcessId=null;
        if (copiedNode.getComponent() != null) {
          componentType=copiedNode.getComponent().getComponentType();
          if (copiedNode.getComponent().getProcess() != null) {
            copideNodeId=copiedNode.getComponent().getProcess().getId();
          }
        }
        if (editor.getProcess() != null) {
          editorProcessId=editor.getProcess().getId();
        }
        for (        IElementParameter element : copiedNode.getElementParametersFromField(EParameterFieldType.PROCESS_TYPE)) {
          for (          Map.Entry<String,IElementParameter> entry : element.getChildParameters().entrySet()) {
            if (("String_Node_Str").equals(entry.getKey())) {
              if (editorProcessId != null && editorProcessId.equals(entry.getValue().getValue())) {
                return;
              }
            }
          }
        }
        if ((EComponentType.JOBLET).equals(componentType)) {
          if (editorProcessId != null && editorProcessId.equals(copideNodeId)) {
            return;
          }
        }
        if (findProcessProviderFromPID.isJobletInputOrOutputComponent(copiedNode)) {
          if (!findProcessProviderFromPID.isExtensionProcess(editor.getProcess())) {
            MessageBox messagebox=new MessageBox(PlatformUI.getWorkbench().getDisplay().getActiveShell(),SWT.ICON_WARNING);
            messagebox.setText(Messages.getString("String_Node_Str"));
            messagebox.setMessage(Messages.getString("String_Node_Str"));
            messagebox.open();
            return;
          }
        }
        if (copiedNode.getJobletNode() != null) {
          boolean canP=canPasteJobletNode(editor.getProcess(),copiedNode);
          if (!canP) {
            return;
          }
        }
      }
    }
    if (nodeParts.size() != 0 && noteParts.size() != 0) {
      MultiplePasteCommand mpc=new MultiplePasteCommand(nodeParts,noteParts,(org.talend.designer.core.ui.editor.process.Process)editor.getProcess(),gefPoint);
      mpc.setSelectedSubjobs(subjobParts);
      execute(mpc);
    }
 else     if (nodeParts.size() != 0) {
      NodesPasteCommand cmd=new NodesPasteCommand(nodeParts,editor.getProcess(),gefPoint);
      cmd.setSelectedSubjobs(subjobParts);
      execute(cmd);
    }
 else     if (noteParts.size() != 0) {
      NotesPasteCommand cmd=new NotesPasteCommand(noteParts,(org.talend.designer.core.ui.editor.process.Process)editor.getProcess(),gefPoint,false,null);
      execute(cmd);
    }
    setCursorLocation(null);
  }
 else   if (clipBoardContent instanceof String) {
    List objects=getSelectedObjects();
    if (objects.size() == 1) {
      String content=(String)clipBoardContent;
      if (objects.get(0) instanceof NoteEditPart && ((NoteEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((NoteEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof ConnLabelEditPart && ((ConnLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((ConnLabelEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof NodeLabelEditPart && ((NodeLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
{
          Text text=(Text)((NodeLabelEditPart)objects.get(0)).getDirectEditManager().getCellEditor().getControl();
          if (text != null) {
            text.insert(content);
          }
        }
      }
    }
  }
 else   if (systemObject != null && systemObject instanceof String) {
    List objects=getSelectedObjects();
    if (objects.size() == 1) {
      String content=(String)systemObject;
      if (objects.get(0) instanceof NoteEditPart && ((NoteEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((NoteEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof ConnLabelEditPart && ((ConnLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((ConnLabelEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof NodeLabelEditPart && ((NodeLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
{
          Text text=(Text)((NodeLabelEditPart)objects.get(0)).getDirectEditManager().getCellEditor().getControl();
          if (text != null) {
            text.insert(content);
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
@Override @SuppressWarnings("String_Node_Str") public void run(){
  Object clipBoardContent;
  try {
    clipBoardContent=Clipboard.getDefault().getContents();
  }
 catch (  RuntimeException e) {
    return;
  }
  org.eclipse.swt.dnd.Clipboard systemClipboard=new org.eclipse.swt.dnd.Clipboard(Display.getCurrent());
  Object systemObject=systemClipboard.getContents(TextTransfer.getInstance());
  if (clipBoardContent instanceof List) {
    List<EditPart> partsList=(List<EditPart>)clipBoardContent;
    if (partsList == null || partsList.isEmpty()) {
      return;
    }
    List<NodePart> nodeParts=new ArrayList<NodePart>();
    List<NoteEditPart> noteParts=new ArrayList<NoteEditPart>();
    List<SubjobContainerPart> subjobParts=new ArrayList<SubjobContainerPart>();
    for (    Object o : partsList) {
      if (o instanceof NodePart) {
        if (!nodeParts.contains(o)) {
          nodeParts.add((NodePart)o);
        }
      }
 else       if (o instanceof NoteEditPart) {
        noteParts.add((NoteEditPart)o);
      }
 else       if (o instanceof SubjobContainerPart) {
        SubjobContainerPart subjob=(SubjobContainerPart)o;
        for (Iterator iterator=subjob.getChildren().iterator(); iterator.hasNext(); ) {
          NodeContainerPart nodeContainerPart=(NodeContainerPart)iterator.next();
          if (nodeContainerPart instanceof JobletContainerPart) {
            for (            Object obj : nodeContainerPart.getChildren()) {
              if (obj instanceof NodePart && !nodeParts.contains(obj)) {
                nodeParts.add((NodePart)obj);
              }
            }
          }
          NodePart nodePart=nodeContainerPart.getNodePart();
          if (nodePart != null) {
            if (!nodeParts.contains(nodePart)) {
              nodeParts.add(nodePart);
            }
            subjobParts.add(subjob);
          }
        }
      }
    }
    AbstractTalendEditor editor=(AbstractTalendEditor)this.getWorkbenchPart();
    org.eclipse.draw2d.geometry.Point gefPoint=getCursorLocation();
    AbstractProcessProvider findProcessProviderFromPID=AbstractProcessProvider.findProcessProviderFromPID(IComponent.JOBLET_PID);
    if (findProcessProviderFromPID != null) {
      for (      NodePart copiedNodePart : nodeParts) {
        Node copiedNode=(Node)copiedNodePart.getModel();
        EComponentType componentType=null;
        String copideNodeId=null;
        String editorProcessId=null;
        if (copiedNode.getComponent() != null) {
          componentType=copiedNode.getComponent().getComponentType();
          if (copiedNode.getComponent().getProcess() != null) {
            copideNodeId=copiedNode.getComponent().getProcess().getId();
          }
        }
        if (editor.getProcess() != null) {
          editorProcessId=editor.getProcess().getId();
        }
        for (        IElementParameter element : copiedNode.getElementParametersFromField(EParameterFieldType.PROCESS_TYPE)) {
          for (          Map.Entry<String,IElementParameter> entry : element.getChildParameters().entrySet()) {
            if (("String_Node_Str").equals(entry.getKey())) {
              if (editorProcessId != null && editorProcessId.equals(entry.getValue().getValue())) {
                return;
              }
            }
          }
        }
        if ((EComponentType.JOBLET).equals(componentType)) {
          if (editorProcessId != null && editorProcessId.equals(copideNodeId)) {
            return;
          }
        }
        if (findProcessProviderFromPID.isJobletInputOrOutputComponent(copiedNode)) {
          if (!findProcessProviderFromPID.isExtensionProcess(editor.getProcess())) {
            MessageBox messagebox=new MessageBox(PlatformUI.getWorkbench().getDisplay().getActiveShell(),SWT.ICON_WARNING);
            messagebox.setText(Messages.getString("String_Node_Str"));
            messagebox.setMessage(Messages.getString("String_Node_Str"));
            messagebox.open();
            return;
          }
        }
        if (copiedNode.getJobletNode() != null) {
          boolean canP=canPasteJobletNode(editor.getProcess(),copiedNode);
          if (!canP) {
            return;
          }
        }
      }
    }
    if (nodeParts.size() != 0 && noteParts.size() != 0) {
      MultiplePasteCommand mpc=new MultiplePasteCommand(nodeParts,noteParts,(org.talend.designer.core.ui.editor.process.Process)editor.getProcess(),gefPoint);
      mpc.setSelectedSubjobs(subjobParts);
      execute(mpc);
    }
 else     if (nodeParts.size() != 0) {
      NodesPasteCommand cmd=new NodesPasteCommand(nodeParts,editor.getProcess(),gefPoint);
      cmd.setSelectedSubjobs(subjobParts);
      execute(cmd);
    }
 else     if (noteParts.size() != 0) {
      NotesPasteCommand cmd=new NotesPasteCommand(noteParts,(org.talend.designer.core.ui.editor.process.Process)editor.getProcess(),gefPoint,false,null);
      execute(cmd);
    }
    setCursorLocation(null);
  }
 else   if (clipBoardContent instanceof String) {
    List objects=getSelectedObjects();
    if (objects.size() == 1) {
      String content=(String)clipBoardContent;
      if (objects.get(0) instanceof NoteEditPart && ((NoteEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((NoteEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof ConnLabelEditPart && ((ConnLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((ConnLabelEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof NodeLabelEditPart && ((NodeLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
{
          Text text=(Text)((NodeLabelEditPart)objects.get(0)).getDirectEditManager().getCellEditor().getControl();
          if (text != null) {
            text.insert(content);
          }
        }
      }
    }
  }
 else   if (systemObject != null && systemObject instanceof String) {
    List objects=getSelectedObjects();
    if (objects.size() == 1) {
      String content=(String)systemObject;
      if (objects.get(0) instanceof NoteEditPart && ((NoteEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((NoteEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof ConnLabelEditPart && ((ConnLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
        Text text=((ConnLabelEditPart)objects.get(0)).getDirectEditManager().getTextControl();
        if (text != null) {
          text.insert(content);
        }
      }
 else       if (objects.get(0) instanceof NodeLabelEditPart && ((NodeLabelEditPart)objects.get(0)).getDirectEditManager() != null) {
{
          Text text=(Text)((NodeLabelEditPart)objects.get(0)).getDirectEditManager().getCellEditor().getControl();
          if (text != null) {
            text.insert(content);
          }
        }
      }
    }
  }
}