nus-yam/ex-repair huggingface dataset:
Program: 133355
Project: 133355
Buggy source:
/** 
 * This method is used in the job launch mechanism to collect all required files for the MooseLauncher
 * @return
 */
private FormStatus populateListOfLauncherFiles(){
  DataComponent launcherFiles=(DataComponent)mooseLauncher.getForm().getComponent(1);
  String fileName=modelFiles.retrieveEntry("String_Node_Str").getValue();
  FormStatus retStatus=mooseModel.process("String_Node_Str");
  if (!retStatus.equals(FormStatus.Processed)) {
    return retStatus;
  }
  launcherFiles.retrieveEntry("String_Node_Str").setValue(fileName);
  mooseLauncher.update(launcherFiles.retrieveEntry("String_Node_Str"));
  for (  IEntry e : getFileEntries()) {
    IEntry launcherFile=launcherFiles.retrieveEntry(e.getName());
    if (launcherFile != null) {
      launcherFile.setValue(e.getValue());
    }
  }
  return FormStatus.ReadyToProcess;
}

Fixed version (ground truth):
/** 
 * This method is used in the job launch mechanism to collect all required files for the MooseLauncher
 * @return
 */
private FormStatus populateListOfLauncherFiles(){
  DataComponent launcherFiles=(DataComponent)mooseLauncher.getForm().getComponent(1);
  String fileName=modelFiles.retrieveEntry("String_Node_Str").getValue();
  FormStatus retStatus=mooseModel.process("String_Node_Str");
  if (!retStatus.equals(FormStatus.Processed)) {
    return retStatus;
  }
  FileEntry fileEntry=(FileEntry)launcherFiles.retrieveEntry("String_Node_Str");
  ArrayList<String> allowed=new ArrayList<String>();
  allowed.add(fileName);
  fileEntry.setAllowedValues(allowed);
  fileEntry.setValue(fileName);
  mooseLauncher.update(launcherFiles.retrieveEntry("String_Node_Str"));
  for (  IEntry e : getFileEntries()) {
    IEntry launcherFile=launcherFiles.retrieveEntry(e.getName());
    if (launcherFile != null) {
      launcherFile.setValue(e.getValue());
    }
  }
  return FormStatus.ReadyToProcess;
}
Program: 133356
Project: 133356
Buggy source:
/** 
 * Check that files are populated in the allowed values list. 
 */
@Test public void checkAllowedValues(){
  FileEntry entry=new FileEntry();
  entry.setProject(project);
  assertEquals(13,entry.getAllowedValues().size());
  FileEntry yamlFiles=new FileEntry("String_Node_Str");
  yamlFiles.setProject(project);
  assertEquals(3,yamlFiles.getAllowedValues().size());
  IFile file=project.getFile("String_Node_Str");
  try {
    file.create(new ByteArrayInputStream(new String("String_Node_Str").getBytes()),true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
  entry.updateAvailableFiles();
  assertEquals(14,entry.getAllowedValues().size());
  try {
    file.delete(true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
}

Fixed version (ground truth):
/** 
 * Check that files are populated in the allowed values list. 
 */
@Test public void checkAllowedValues(){
  FileEntry entry=new FileEntry();
  entry.setProject(project);
  assertEquals(13,entry.getAllowedValues().size());
  FileEntry yamlFiles=new FileEntry("String_Node_Str");
  yamlFiles.setProject(project);
  assertEquals(3,yamlFiles.getAllowedValues().size());
  IFile file=project.getFile("String_Node_Str");
  try {
    file.create(new ByteArrayInputStream(new String("String_Node_Str").getBytes()),true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
  assertEquals(14,entry.getAllowedValues().size());
  try {
    file.delete(true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
}
Program: 133357
Project: 133357
Buggy source:
/** 
 * This operation lets clients specify the IProject space for the Item containing this FileEntry.
 * @param projectSpace The project this Entry belongs to.
 */
public void setProject(IProject projectSpace){
  project=projectSpace;
  generateAllowedValues();
  isModified=true;
}

Fixed version (ground truth):
/** 
 * This operation lets clients specify the IProject space for the Item containing this FileEntry.
 * @param projectSpace The project this Entry belongs to.
 */
public void setProject(IProject projectSpace){
  if (projectSpace != null) {
    project=projectSpace;
    generateAllowedValues();
    isModified=true;
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this,IResourceChangeEvent.POST_CHANGE);
  }
}
Program: 133359
Project: 133359
Buggy source:
/** 
 * This operation by default returns the Actions necessary to  execute the Job Launch based on the parameters in the action  data map. Subclasses can override this method to return a custom  set of Actions.  By default, for both local and remote launches, this operation  returns an Action list that starts with copying files to the local  working directory. If local, the next Action is the Local Execution Action.  If remote, it returns the Remote File Upload, Remote Execution, and Remote  File Download Actions, in that order. 
 * @return actions List of Actions to execute. 
 */
protected List<Action> getActions(){
  List<Action> actionList=new ArrayList<Action>();
  IActionFactory actionFactory=getActionFactory();
  actionList.add(actionFactory.getAction("String_Node_Str"));
  if (enableDocker) {
    Action dockerAction=actionFactory.getAction("String_Node_Str");
    dockerAction.execute(actionDataMap);
  }
  if (isLocalhost(actionDataMap.get("String_Node_Str"))) {
    actionList.add(actionFactory.getAction("String_Node_Str"));
  }
 else {
    System.out.println("String_Node_Str");
    actionList.add(actionFactory.getAction("String_Node_Str"));
    actionList.add(actionFactory.getAction("String_Node_Str"));
    actionList.add(actionFactory.getAction("String_Node_Str"));
  }
  return actionList;
}

Fixed version (ground truth):
/** 
 * This operation by default returns the Actions necessary to  execute the Job Launch based on the parameters in the action  data map. Subclasses can override this method to return a custom  set of Actions.  By default, for both local and remote launches, this operation  returns an Action list that starts with copying files to the local  working directory. If local, the next Action is the Local Execution Action.  If remote, it returns the Remote File Upload, Remote Execution, and Remote  File Download Actions, in that order. 
 * @return actions List of Actions to execute. 
 */
protected List<Action> getActions(){
  List<Action> actionList=new ArrayList<Action>();
  IActionFactory actionFactory=getActionFactory();
  actionList.add(actionFactory.getAction("String_Node_Str"));
  if (enableDocker) {
    Action dockerAction=actionFactory.getAction("String_Node_Str");
    dockerAction.execute(actionDataMap);
  }
  if (isLocalhost(actionDataMap.get("String_Node_Str")) && !enableDocker) {
    actionList.add(actionFactory.getAction("String_Node_Str"));
  }
 else {
    System.out.println("String_Node_Str");
    actionList.add(actionFactory.getAction("String_Node_Str"));
    actionList.add(actionFactory.getAction("String_Node_Str"));
    actionList.add(actionFactory.getAction("String_Node_Str"));
  }
  return actionList;
}
Program: 133360
Project: 133360
Buggy source:
/** 
 * Sets the name, description, and custom action name  for the item.
 */
@Override protected void setupItemInfo(){
  setName("String_Node_Str");
  setDescription("String_Node_Str");
  allowedActions.add(0,exportString);
  writerName="String_Node_Str";
  readerName="String_Node_Str";
  outputName="String_Node_Str";
  exportString="String_Node_Str";
}

Fixed version (ground truth):
/** 
 * Sets the name, description, and custom action name  for the item.
 */
@Override protected void setupItemInfo(){
  setName("String_Node_Str");
  setDescription("String_Node_Str");
  writerName="String_Node_Str";
  readerName="String_Node_Str";
  outputName="String_Node_Str";
  exportString="String_Node_Str";
  allowedActions.add(0,exportString);
}
Program: 133361
Project: 133361
Buggy source:
/** 
 * The function called whenever the user moves the mouse.
 * @param event The event that prompted this function's invocation.
 */
private void handleMouseMoved(MouseEvent event){
  DecimalFormat format=new DecimalFormat("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * The function called whenever the user moves the mouse.
 * @param event The event that prompted this function's invocation.
 */
private void handleMouseMoved(MouseEvent event){
  DecimalFormat format=new DecimalFormat("String_Node_Str");
  cursorPosition.setText("String_Node_Str" + format.format(event.getPickResult().getIntersectedPoint().getX() / 3) + "String_Node_Str"+ event.getPickResult().getIntersectedPoint().getY() / 3 + "String_Node_Str");
  cursorPosition.setTranslateX(scene.getWidth() / -20);
  cursorPosition.setTranslateZ(-5);
}
Program: 133363
Project: 133363
Buggy source:
/** 
 * The function called whenever the mouse button is released in Edit Mode.
 * @param event The mouse event which prompted the invocation of this function.
 */
private void handleEditModeMouseUp(MouseEvent event){
  if (dragStarted) {
    dragStarted=false;
    mouseOldX=mousePosX;
    mouseOldY=mousePosY;
    mousePosX=event.getX();
    mousePosY=event.getY();
    for (int i=0; i < selectedVertices.size(); i++) {
      VertexController vertex=(VertexController)selectedVertices.get(i);
      vertex.updateLocation((relativeXCords.get(i) + mousePosX) / SCALE,(relativeYCords.get(i) + mousePosY) / SCALE,0);
      for (      Sphere marker : vertexMarkers) {
        ((FXAttachment)attachmentManager.getAttachments().get(1)).getFxNode().getChildren().remove(marker);
      }
    }
    vertexMarkers.clear();
    relativeXCords.clear();
    relativeYCords.clear();
  }
}

Fixed version (ground truth):
/** 
 * The function called whenever the mouse button is released in Edit Mode.
 * @param event The mouse event which prompted the invocation of this function.
 */
private void handleEditModeMouseUp(MouseEvent event){
  if (dragStarted) {
    dragStarted=false;
    mouseOldX=mousePosX;
    mouseOldY=mousePosY;
    mousePosX=event.getX();
    mousePosY=event.getY();
    for (int i=0; i < selectedVertices.size(); i++) {
      VertexController vertex=(VertexController)selectedVertices.get(i);
      vertex.updateLocation(vertexMarkers.get(i).getTranslateX() / SCALE,vertexMarkers.get(i).getTranslateY() / SCALE,vertexMarkers.get(i).getTranslateZ() / SCALE);
      for (      Sphere marker : vertexMarkers) {
        ((FXAttachment)attachmentManager.getAttachments().get(1)).getFxNode().getChildren().remove(marker);
      }
    }
    vertexMarkers.clear();
    relativeXCords.clear();
    relativeYCords.clear();
  }
}
Program: 133364
Project: 133364
Buggy source:
@Override protected void updateCamera(ICamera camera){
  if (!(camera instanceof FXCameraAttachment)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  FXCameraAttachment attachment=(FXCameraAttachment)camera;
  Camera fxCamera=attachment.getFxCamera();
  if (fxCamera == null) {
    throw new NullPointerException("String_Node_Str");
  }
  cameraController=new TopDownCameraController(fxCamera,scene,fxCanvas);
  scene.setCamera(fxCamera);
  defaultCamera=fxCamera;
  cursorPosition=new Text();
  cursorPosition.setTranslateZ(-5);
  internalRoot.getChildren().add(cursorPosition);
}

Fixed version (ground truth):
@Override protected void updateCamera(ICamera camera){
  if (!(camera instanceof FXCameraAttachment)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  FXCameraAttachment attachment=(FXCameraAttachment)camera;
  Camera fxCamera=attachment.getFxCamera();
  if (fxCamera == null) {
    throw new NullPointerException("String_Node_Str");
  }
  cameraController=new TopDownCameraController(fxCamera,scene,fxCanvas);
  scene.setCamera(fxCamera);
  defaultCamera=fxCamera;
  cursorPosition=new Text();
  cursorPosition.setTranslateZ(-5);
  internalRoot.getChildren().add(cursorPosition);
  BorderPane pane=new BorderPane();
  internalRoot.getChildren().add(pane);
}
Program: 133365
Project: 133365
Buggy source:
/** 
 * The default constructor.
 * @param camera The camera this controller will manage.
 * @param scene The scene the camera is viewing.
 * @param canvas The FXCanvas containing the scene.
 */
public AbstractCameraController(Camera camera,Scene scene,FXCanvas canvas){
  this.camera=camera;
  this.scene=scene;
  this.canvas=canvas;
  xform=new Group();
  xform.getChildren().add(camera);
  affine=new Affine();
  xform.getTransforms().setAll(affine);
  defaultX=new Rotate();
  defaultY=new Rotate();
  defaultZ=new Rotate();
  defaultX.setAxis(Rotate.X_AXIS);
  defaultY.setAxis(Rotate.Y_AXIS);
  defaultZ.setAxis(Rotate.Z_AXIS);
  reset();
  scene.setOnKeyPressed(new EventHandler<KeyEvent>(){
    @Override public void handle(    KeyEvent event){
      handleKeyPressed(event);
    }
  }
);
  scene.setOnMousePressed(new EventHandler<MouseEvent>(){
    @Override public void handle(    MouseEvent arg0){
      handleMousePressed(arg0);
    }
  }
);
  scene.setOnMouseDragged(new EventHandler<MouseEvent>(){
    @Override public void handle(    MouseEvent arg0){
      handleMouseDragged(arg0);
    }
  }
);
  scene.setOnScroll(new EventHandler<ScrollEvent>(){
    @Override public void handle(    ScrollEvent event){
      handleMouseScroll(event);
    }
  }
);
}

Fixed version (ground truth):
/** 
 * The default constructor.
 * @param camera The camera this controller will manage.
 * @param scene The scene the camera is viewing.
 * @param canvas The FXCanvas containing the scene.
 */
public AbstractCameraController(Camera camera,Scene scene,FXCanvas canvas){
  this.camera=camera;
  this.scene=scene;
  this.canvas=canvas;
  xform=new Group();
  xform.getChildren().add(camera);
  affine=new Affine();
  xform.getTransforms().setAll(affine);
  defaultX=new Rotate();
  defaultY=new Rotate();
  defaultZ=new Rotate();
  defaultX.setAxis(Rotate.X_AXIS);
  defaultY.setAxis(Rotate.Y_AXIS);
  defaultZ.setAxis(Rotate.Z_AXIS);
  reset();
  scene.setOnKeyPressed(new EventHandler<KeyEvent>(){
    @Override public void handle(    KeyEvent event){
      handleKeyPressed(event);
    }
  }
);
  scene.setOnMousePressed(new EventHandler<MouseEvent>(){
    @Override public void handle(    MouseEvent arg0){
      handleMousePressed(arg0);
    }
  }
);
  scene.setOnMouseDragged(new EventHandler<MouseEvent>(){
    @Override public void handle(    MouseEvent arg0){
      handleMouseDragged(arg0);
    }
  }
);
  scene.setOnMouseReleased(new EventHandler<MouseEvent>(){
    @Override public void handle(    MouseEvent arg0){
      handleMouseReleased(arg0);
    }
  }
);
  scene.setOnScroll(new EventHandler<ScrollEvent>(){
    @Override public void handle(    ScrollEvent event){
      handleMouseScroll(event);
    }
  }
);
}
Program: 133366
Project: 133366
Buggy source:
/** 
 * The default constructor.
 * @param camera The camera this controller will manage.
 * @param scene The scene the camera is viewing.
 * @param canvas The FXCanvas containing the scene.
 */
public CenteredCameraController(Camera camera,Scene scene,FXCanvas canvas){
  super(camera,scene,canvas);
  x=new Rotate();
  x.setAxis(Rotate.X_AXIS);
  xform.getTransforms().add(x);
  y=new Rotate();
  y.setAxis(Rotate.Y_AXIS);
  z=new Rotate();
  z.setAxis(Rotate.Z_AXIS);
  xform.getTransforms().setAll(x,y,z,affine);
}

Fixed version (ground truth):
/** 
 * The default constructor.
 * @param camera The camera this controller will manage.
 * @param scene The scene the camera is viewing.
 * @param canvas The FXCanvas containing the scene.
 */
public CenteredCameraController(Camera camera,Scene scene,FXCanvas canvas){
  super(camera,scene,canvas);
  dragStarted=false;
  x=new Rotate();
  x.setAxis(Rotate.X_AXIS);
  xform.getTransforms().add(x);
  y=new Rotate();
  y.setAxis(Rotate.Y_AXIS);
  z=new Rotate();
  z.setAxis(Rotate.Z_AXIS);
  xform.getTransforms().setAll(x,y,z,affine);
}
Program: 133367
Project: 133367
Buggy source:
@Override public void handleMouseDragged(MouseEvent event){
  mouseOldX=mousePosX;
  mouseOldY=mousePosY;
  mousePosX=event.getSceneX();
  mousePosY=event.getSceneY();
  mouseDeltaX=(mousePosX - mouseOldX);
  mouseDeltaY=(mousePosY - mouseOldY);
  if (event.isPrimaryButtonDown()) {
    y.setAngle(y.getAngle() - mouseDeltaX);
    x.setAngle(x.getAngle() + mouseDeltaY);
  }
}

Fixed version (ground truth):
@Override public void handleMouseDragged(MouseEvent event){
  mouseOldX=mousePosX;
  mouseOldY=mousePosY;
  mousePosX=event.getSceneX();
  mousePosY=event.getSceneY();
  if (dragStarted) {
    mouseDeltaX=(mousePosX - mouseOldX);
    mouseDeltaY=(mousePosY - mouseOldY);
    if (event.isPrimaryButtonDown()) {
      y.setAngle(y.getAngle() - mouseDeltaX);
      x.setAngle(x.getAngle() + mouseDeltaY);
    }
  }
 else {
    dragStarted=true;
  }
}
Program: 133369
Project: 133369
Buggy source:
/** 
 * Use this method to process the data that has been  specified in the form.  Data being processed should be written usint 
 * @param actionName
 * @return
 */
@Override public FormStatus process(String actionName){
  FormStatus retStatus=FormStatus.ReadyToProcess;
  if (writerName == "String_Node_Str" || outputName == "String_Node_Str") {
    return FormStatus.InfoError;
  }
  if (actionName == exportString) {
    IWriter writer=ioService.getWriter(writerName);
    try {
      retStatus=FormStatus.Processing;
      writer.write(form,outputName);
      project.refreshLocal(IResource.DEPTH_ONE,null);
      retStatus=FormStatus.Processed;
    }
 catch (    CoreException e) {
      logger.error(getClass().getName() + "String_Node_Str",e);
    }
  }
 else {
    retStatus=super.process(actionName);
  }
  return retStatus;
}

Fixed version (ground truth):
/** 
 * Use this method to process the data that has been  specified in the form.  Data being processed should be written usint 
 * @param actionName
 * @return
 */
@Override public FormStatus process(String actionName){
  FormStatus retStatus=FormStatus.ReadyToProcess;
  if (writerName == "String_Node_Str" || outputName == "String_Node_Str") {
    return FormStatus.InfoError;
  }
  if (actionName == exportString) {
    IFile outputFile=project.getFile(outputName);
    writer=ioService.getWriter(writerName);
    try {
      retStatus=FormStatus.Processing;
      writer.write(form,outputFile);
      project.refreshLocal(1,null);
      retStatus=FormStatus.Processed;
    }
 catch (    CoreException e) {
      logger.error(getClass().getName() + "String_Node_Str",e);
    }
  }
 else {
    retStatus=super.process(actionName);
  }
  return retStatus;
}
Program: 133370
Project: 133370
Buggy source:
public $className$Model(IProject project){
  super(project);
  exportString="String_Node_Str";
  writerName="String_Node_Str";
  readerName="String_Node_Str";
  outputName="String_Node_Str";
}

Fixed version (ground truth):
public $className$Model(IProject project){
  super(project);
  exportString="String_Node_Str";
}
Program: 133371
Project: 133371
Buggy source:
/** 
 * Check that files are populated in the allowed values list. 
 */
@Test public void checkAllowedValues(){
  FileEntry entry=new FileEntry();
  entry.setProject(project);
  assertEquals(15,entry.getAllowedValues().size());
  FileEntry yamlFiles=new FileEntry("String_Node_Str");
  yamlFiles.setProject(project);
  assertEquals(3,yamlFiles.getAllowedValues().size());
  IFile file=project.getFile("String_Node_Str");
  try {
    file.create(new ByteArrayInputStream(new String("String_Node_Str").getBytes()),true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
  entry.updateAvailableFiles();
  assertEquals(16,entry.getAllowedValues().size());
  try {
    file.delete(true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
}

Fixed version (ground truth):
/** 
 * Check that files are populated in the allowed values list. 
 */
@Test public void checkAllowedValues(){
  FileEntry entry=new FileEntry();
  entry.setProject(project);
  assertEquals(13,entry.getAllowedValues().size());
  FileEntry yamlFiles=new FileEntry("String_Node_Str");
  yamlFiles.setProject(project);
  assertEquals(3,yamlFiles.getAllowedValues().size());
  IFile file=project.getFile("String_Node_Str");
  try {
    file.create(new ByteArrayInputStream(new String("String_Node_Str").getBytes()),true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
  entry.updateAvailableFiles();
  assertEquals(14,entry.getAllowedValues().size());
  try {
    file.delete(true,null);
  }
 catch (  CoreException e) {
    e.printStackTrace();
    fail();
  }
}
Program: 133372
Project: 133372
Buggy source:
@Override public ITemplateSection[] createTemplateSections(){
  return new ITemplateSection[]{new ICEItemTemplate()};
}

Fixed version (ground truth):
@Override public ITemplateSection[] createTemplateSections(){
  templateSections=new ITemplateSection[]{new ICEItemTemplate()};
  return templateSections;
}
Program: 133373
Project: 133373
Buggy source:
/** 
 * Sets the package layout to be as specified in the wizard.
 */
private void setPackageLayout(){
  String sep=System.getProperty("String_Node_Str");
  String[] packageHierarchy=fProjectProvider.getProjectName().split("String_Node_Str");
  String projectSrcPath=fProjectProvider.getLocationPath().makeAbsolute().toOSString() + sep + fProjectProvider.getProjectName()+ sep+ fPluginData.getSourceFolderName();
  File[] projectSrcs=new File(projectSrcPath).listFiles();
  File modelDir=new File(projectSrcPath + sep + String.join(sep,packageHierarchy)+ sep+ "String_Node_Str");
  File launcherDir=new File(projectSrcPath + sep + String.join(sep,packageHierarchy)+ sep+ "String_Node_Str");
  try {
    modelDir.mkdirs();
    launcherDir.mkdirs();
    for (    File f : projectSrcs) {
      if (f.getName().endsWith("String_Node_Str") || f.getName().endsWith("String_Node_Str")) {
        Files.move(f.toPath(),(new File(launcherDir.getAbsolutePath() + sep + f.getName())).toPath(),REPLACE_EXISTING);
      }
 else       if (f.getName().endsWith("String_Node_Str") || f.getName().endsWith("String_Node_Str")) {
        Files.move(f.toPath(),(new File(modelDir.getAbsolutePath() + sep + f.getName())).toPath(),REPLACE_EXISTING);
      }
    }
    fProjectProvider.getProject().refreshLocal(IResource.DEPTH_INFINITE,new NullProgressMonitor());
  }
 catch (  IOException ioe) {
    ioe.printStackTrace();
  }
catch (  CoreException ce) {
    ce.printStackTrace();
  }
}

Fixed version (ground truth):
/** 
 * Sets the package layout to be as specified in the wizard.
 */
private void setPackageLayout(){
  String sep=System.getProperty("String_Node_Str");
  String[] packageHierarchy=fProjectProvider.getProjectName().split("String_Node_Str");
  String projectSrcPath=fProjectProvider.getLocationPath().makeAbsolute().toOSString() + sep + fProjectProvider.getProjectName()+ sep+ fPluginData.getSourceFolderName();
  File[] projectSrcs=new File(projectSrcPath).listFiles();
  File modelDir=new File(projectSrcPath + sep + String.join(sep,packageHierarchy)+ sep+ "String_Node_Str");
  File launcherDir=new File(projectSrcPath + sep + String.join(sep,packageHierarchy)+ sep+ "String_Node_Str");
  try {
    modelDir.mkdirs();
    launcherDir.mkdirs();
    for (    File f : projectSrcs) {
      if (f.getName().endsWith("String_Node_Str") || f.getName().endsWith("String_Node_Str")) {
        Files.move(f.toPath(),(new File(launcherDir.getAbsolutePath() + sep + f.getName())).toPath(),REPLACE_EXISTING);
      }
 else       if (f.getName().endsWith("String_Node_Str") || f.getName().endsWith("String_Node_Str")) {
        Files.move(f.toPath(),(new File(modelDir.getAbsolutePath() + sep + f.getName())).toPath(),REPLACE_EXISTING);
      }
    }
  }
 catch (  IOException ioe) {
    ioe.printStackTrace();
  }
}
Program: 133374
Project: 133374
Buggy source:
/** 
 * Creates and adds the pages to the wizard. Three pages are created.
 */
@Override public void addPages(){
  WizardElement templateWizardElement=getTemplateWizard();
  fProjectPage=new NewProjectCreationFromTemplatePage("String_Node_Str",fPluginData,getSelection(),templateWizardElement);
  fProjectPage.setTitle(WIZARD_TITLE);
  fProjectPage.setDescription(DESCRIPTION);
  String projectName=getDefaultValue(DEF_PROJECT_NAME);
  if (projectName != null)   fProjectPage.setInitialProjectName(projectName);
  addPage(fProjectPage);
  fProjectProvider=new IProjectProvider(){
    public String getProjectName(){
      return fProjectPage.getProjectName();
    }
    public IProject getProject(){
      return fProjectPage.getProjectHandle();
    }
    public IPath getLocationPath(){
      return fProjectPage.getLocationPath();
    }
  }
;
  fContentPage=new PluginContentPage("String_Node_Str",fProjectProvider,fProjectPage,fPluginData);
  addPage(fContentPage);
  try {
    fTemplateWizard=(ICEItemWizard)templateWizardElement.createExecutableExtension();
    fTemplateWizard.init(fPluginData);
    fTemplateWizard.addPages();
    IWizardPage[] pages=fTemplateWizard.getPages();
    for (int i=0; i < pages.length; i++) {
      addPage(pages[i]);
    }
  }
 catch (  CoreException e) {
    System.out.println("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Creates and adds the pages to the wizard. Three pages are created.
 */
@Override public void addPages(){
  WizardElement templateWizardElement=getTemplateWizard();
  fProjectPage=new NewProjectCreationFromTemplatePage("String_Node_Str",fPluginData,getSelection(),templateWizardElement);
  fProjectPage.setTitle(WIZARD_TITLE);
  fProjectPage.setDescription(DESCRIPTION);
  String projectName=getDefaultValue(DEF_PROJECT_NAME);
  if (projectName != null)   fProjectPage.setInitialProjectName(projectName);
  addPage(fProjectPage);
  fProjectProvider=new IProjectProvider(){
    public String getProjectName(){
      return fProjectPage.getProjectName();
    }
    public IProject getProject(){
      return fProjectPage.getProjectHandle();
    }
    public IPath getLocationPath(){
      return fProjectPage.getLocationPath();
    }
  }
;
  fContentPage=new PluginContentPage("String_Node_Str",fProjectProvider,fProjectPage,fPluginData);
  addPage(fContentPage);
  try {
    fTemplateWizard=(ICEItemWizard)templateWizardElement.createExecutableExtension();
    fTemplateWizard.init(fPluginData);
    fTemplateWizard.addPages();
    IWizardPage[] pages=fTemplateWizard.getPages();
    for (int i=0; i < pages.length; i++) {
      addPage(pages[i]);
    }
  }
 catch (  CoreException e) {
    e.printStackTrace();
    System.out.println("String_Node_Str");
  }
}
Program: 133376
Project: 133376
Buggy source:
@Override public FormStatus process(String actionName){
}

Fixed version (ground truth):
@Override public FormStatus process(String actionName){
  return null;
}
Program: 133377
Project: 133377
Buggy source:
@Override public Item getInstance(IProject projectSpace){
  Item item=new $className$(projectSpace);
  item.setItemBuilderName(this.getItemName());
  return item;
}

Fixed version (ground truth):
@Override public Item getInstance(IProject projectSpace){
  Item item=new $className$Launcher(projectSpace);
  item.setItemBuilderName(this.getItemName());
  return item;
}
Program: 133378
Project: 133378
Buggy source:
@Override public FormStatus process(String actionName){
}

Fixed version (ground truth):
@Override public FormStatus process(String actionName){
  return null;
}
Program: 133379
Project: 133379
Buggy source:
@Override protected FormStatus reviewEntries(Form preparedForm){
}

Fixed version (ground truth):
@Override protected FormStatus reviewEntries(Form preparedForm){
  return null;
}
Program: 133380
Project: 133380
Buggy source:
@Override public Item getInstance(IProject projectSpace){
  Item item=new $className$(projectSpace);
  item.setItemBuilderName(this.getItemName());
  return item;
}

Fixed version (ground truth):
@Override public Item getInstance(IProject projectSpace){
  Item item=new $className$Model(projectSpace);
  item.setItemBuilderName(this.getItemName());
  return item;
}
Program: 133381
Project: 133381
Buggy source:
@Override public Object clone(){
  PointMesh clone=new PointMesh();
  clone.copy(this);
  return clone;
}

Fixed version (ground truth):
@Override public Object clone(){
  VertexMesh clone=new VertexMesh();
  clone.copy(this);
  return clone;
}
Program: 133382
Project: 133382
Buggy source:
/** 
 * A private utility used for deleting a range of lines in a text file.
 * @param filename
 * @param startline
 * @param numlines
 */
private void deleteLines(String filename,int startline,int numlines){
  try {
    BufferedReader br=new BufferedReader(new FileReader(filename));
    StringBuffer sb=new StringBuffer("String_Node_Str");
    int linenumber=1;
    String line;
    while ((line=br.readLine()) != null) {
      if (linenumber < startline || linenumber >= startline + numlines) {
        sb.append(line + "String_Node_Str");
      }
      linenumber++;
    }
    if (startline + numlines > linenumber) {
      logger.info("String_Node_Str");
    }
    br.close();
    FileWriter fw=new FileWriter(new File(filename));
    fw.write(sb.toString());
    fw.close();
  }
 catch (  Exception e) {
    logger.error(getClass().getName() + "String_Node_Str",e);
  }
}

Fixed version (ground truth):
/** 
 * A private utility used for deleting a range of lines in a text file.
 * @param filename
 * @param startline
 * @param numlines
 */
private void deleteLines(IFile file,int startline,int numlines){
  try {
    BufferedReader br=new BufferedReader(new InputStreamReader(file.getContents()));
    StringBuffer sb=new StringBuffer("String_Node_Str");
    int linenumber=1;
    String line;
    while ((line=br.readLine()) != null) {
      if (linenumber < startline || linenumber >= startline + numlines) {
        sb.append(line + "String_Node_Str");
      }
      linenumber++;
    }
    if (startline + numlines > linenumber) {
      logger.info("String_Node_Str");
    }
    br.close();
    FileWriter fw=new FileWriter(file.getLocation().toFile());
    fw.write(sb.toString());
    fw.close();
  }
 catch (  Exception e) {
    logger.error(getClass().getName() + "String_Node_Str",e);
  }
}
Program: 133385
Project: 133385
Buggy source:
/** 
 * Check that an Extrema is constructed correctly.
 */
@Test public void checkConstruction(){
  Extrema first=new Extrema(-1d,0d,-0.5d,0.5d,0d,1d);
  assertTrue(first.getMinX() == -1d);
  assertTrue(first.getMinY() == -0.5d);
  assertTrue(first.getMaxY() == 0.5d);
  assertTrue(first.getMaxZ() == 1d);
  Extrema second=new Extrema(0d,1d,-1d,0d,-0.5d,0.5d);
  assertTrue(second.getMinY() == -1d);
  assertTrue(second.getMinZ() == -0.5d);
  assertTrue(second.getMaxZ() == 0.5d);
  assertTrue(second.getMaxX() == 1d);
  Extrema third=new Extrema(-0.5d,0.5d,0d,1d,-1d,0d);
  assertTrue(third.getMinZ() == -1d);
  assertTrue(third.getMinX() == -0.5d);
  assertTrue(third.getMaxX() == 0.5d);
  assertTrue(third.getMaxY() == 1d);
  ArrayList<Extrema> extrema=new ArrayList<Extrema>();
  extrema.add(first);
  extrema.add(second);
  extrema.add(third);
  Extrema all=new Extrema(extrema);
  assertTrue(all.getMinX() == -1d);
  assertTrue(all.getMaxX() == 1d);
  assertTrue(all.getMinY() == -1d);
  assertTrue(all.getMaxY() == 1d);
  assertTrue(all.getMinZ() == -1d);
  assertTrue(all.getMaxZ() == 1d);
}

Fixed version (ground truth):
/** 
 * Check that an Extrema is constructed correctly.
 */
@Test public void checkConstruction(){
  Extrema first=new Extrema(-1d,0d,-0.5d,0.5d,0d,1d);
  assertTrue(first.getMinX() == -1d);
  assertTrue(first.getMinY() == -0.5d);
  assertTrue(first.getMaxY() == 0.5d);
  assertTrue(first.getMaxZ() == 1d);
  Extrema second=new Extrema(0d,1d,-1d,0d,-0.5d,0.5d);
  assertTrue(second.getMinY() == -1d);
  assertTrue(second.getMinZ() == -0.5d);
  assertTrue(second.getMaxZ() == 0.5d);
  assertTrue(second.getMaxX() == 1d);
  Extrema third=new Extrema(-0.5d,0.5d,0d,1d,-1d,0d);
  assertTrue(third.getMinZ() == -1d);
  assertTrue(third.getMinX() == -0.5d);
  assertTrue(third.getMaxX() == 0.5d);
  assertTrue(third.getMaxY() == 1d);
  ArrayList<Extrema> extrema=new ArrayList<Extrema>();
  extrema.add(first);
  extrema.add(second);
  extrema.add(third);
  Extrema all=new Extrema(extrema);
  assertTrue(all.getMinX() == -1d);
  assertTrue(all.getMaxX() == 1d);
  assertTrue(all.getMinY() == -1d);
  assertTrue(all.getMaxY() == 1d);
  assertTrue(all.getMinZ() == -1d);
  assertTrue(all.getMaxZ() == 1d);
  Extrema empty=new Extrema(new ArrayList<Extrema>());
  assertTrue(empty.getMinX() == 0d);
  assertTrue(empty.getMaxX() == 0d);
  assertTrue(empty.getMinY() == 0d);
  assertTrue(empty.getMaxY() == 0d);
  assertTrue(empty.getMinZ() == 0d);
  assertTrue(empty.getMaxZ() == 0d);
}
Program: 133386
Project: 133386
Buggy source:
/** 
 * A constructor which creates an extrema from a list of the extrema of other sub-regions. The new extrema will be the extrema of the smallest region possible which contains all given sub-regions.
 * @param subRegions The list of regions which this extrema will contain.
 */
public Extrema(List<Extrema> subRegions){
  logger=LoggerFactory.getLogger(getClass());
  for (  Extrema region : subRegions) {
    if (region != subRegions.get(0)) {
      if (minX > region.minX) {
        minX=region.minX;
      }
      if (maxX < region.maxX) {
        maxX=region.maxX;
      }
      if (minY > region.minY) {
        minY=region.minY;
      }
      if (maxY < region.maxY) {
        maxY=region.maxY;
      }
      if (minZ > region.minZ) {
        minZ=region.minZ;
      }
      if (maxZ < region.maxZ) {
        maxZ=region.maxZ;
      }
    }
 else {
      this.minX=region.minX;
      this.maxX=region.maxX;
      this.minY=region.minY;
      this.maxY=region.maxY;
      this.minZ=region.minZ;
      this.maxZ=region.maxZ;
    }
  }
}

Fixed version (ground truth):
/** 
 * A constructor which creates an extrema from a list of the extrema of other sub-regions. The new extrema will be the extrema of the smallest region possible which contains all given sub-regions. If subRegions is null, the extrema will have 0 for all minimum and maximum values.
 * @param subRegions The list of regions which this extrema will contain.
 */
public Extrema(List<Extrema> subRegions){
  logger=LoggerFactory.getLogger(getClass());
  if (subRegions.isEmpty()) {
    minX=0;
    maxX=0;
    minY=0;
    maxY=0;
    minZ=0;
    maxZ=0;
  }
  for (  Extrema region : subRegions) {
    if (region != subRegions.get(0)) {
      if (minX > region.minX) {
        minX=region.minX;
      }
      if (maxX < region.maxX) {
        maxX=region.maxX;
      }
      if (minY > region.minY) {
        minY=region.minY;
      }
      if (maxY < region.maxY) {
        maxY=region.maxY;
      }
      if (minZ > region.minZ) {
        minZ=region.minZ;
      }
      if (maxZ < region.maxZ) {
        maxZ=region.maxZ;
      }
    }
 else {
      this.minX=region.minX;
      this.maxX=region.maxX;
      this.minY=region.minY;
      this.maxY=region.maxY;
      this.minZ=region.minZ;
      this.maxZ=region.maxZ;
    }
  }
}
Program: 133387
Project: 133387
Buggy source:
@Override public boolean setValue(String newValue){
  Double newValueDouble, lowerBound, upperBound;
  if (allowedValues.size() == 2) {
    lowerBound=Double.valueOf(allowedValues.get(0));
    upperBound=Double.valueOf(allowedValues.get(1));
    try {
      newValueDouble=Double.valueOf(newValue);
    }
 catch (    NumberFormatException|NullPointerException e) {
      errorMessage=newValue + "String_Node_Str";
      return false;
    }
    if (newValueDouble != null && (newValueDouble.compareTo(lowerBound) != -1 && newValueDouble.compareTo(upperBound) != 1)) {
      this.value=newValue;
      errorMessage=null;
      return true;
    }
 else {
      String error=continuousErrMsg;
      error=error.replace("String_Node_Str",newValue != null ? newValue : "String_Node_Str");
      error=error.replace("String_Node_Str",getAllowedValues().get(0));
      error=error.replace("String_Node_Str",getAllowedValues().get(1));
      this.errorMessage=error;
      return false;
    }
  }
  logger.info("String_Node_Str");
  return false;
}

Fixed version (ground truth):
@Override public boolean setValue(String newValue){
  Double newValueDouble, lowerBound, upperBound;
  if (allowedValues.size() == 2) {
    lowerBound=Double.valueOf(allowedValues.get(0));
    upperBound=Double.valueOf(allowedValues.get(1));
    try {
      newValueDouble=Double.valueOf(newValue);
    }
 catch (    NumberFormatException|NullPointerException e) {
      String error=continuousErrMsg;
      error=error.replace("String_Node_Str",newValue != null ? newValue : "String_Node_Str");
      error=error.replace("String_Node_Str",getAllowedValues().get(0));
      error=error.replace("String_Node_Str",getAllowedValues().get(1));
      this.errorMessage=error;
      return false;
    }
    if (newValueDouble != null && (newValueDouble.compareTo(lowerBound) != -1 && newValueDouble.compareTo(upperBound) != 1)) {
      this.value=newValue;
      errorMessage=null;
      return true;
    }
 else {
      String error=continuousErrMsg;
      error=error.replace("String_Node_Str",newValue != null ? newValue : "String_Node_Str");
      error=error.replace("String_Node_Str",getAllowedValues().get(0));
      error=error.replace("String_Node_Str",getAllowedValues().get(1));
      this.errorMessage=error;
      return false;
    }
  }
  logger.info("String_Node_Str");
  return false;
}
Program: 133388
Project: 133388
Buggy source:
@Override public void refresh(){
  if (isDisposed()) {
    logger.info("String_Node_Str" + "String_Node_Str");
    return;
  }
  if (widget != null) {
    System.out.println("String_Node_Str" + entry.getName());
    widget.dispose();
    widget=null;
  }
  for (  Button button : buttons) {
    if (!button.isDisposed()) {
      button.dispose();
    }
  }
  buttons.clear();
  if (resizeListener != null) {
    removeControlListener(resizeListener);
    resizeListener=null;
  }
  render();
  layout();
  return;
}

Fixed version (ground truth):
@Override public void refresh(){
  logger.info("String_Node_Str" + entry.getName());
  if (label != null) {
    label.dispose();
    label=null;
  }
  if (widget != null) {
    logger.info("String_Node_Str" + widget.getClass().getCanonicalName());
    widget.dispose();
    widget=null;
  }
  for (  Button button : buttons) {
    if (!button.isDisposed()) {
      button.dispose();
    }
  }
  buttons.clear();
  if (isDisposed()) {
    logger.info("String_Node_Str" + "String_Node_Str");
    return;
  }
  if (resizeListener != null) {
    removeControlListener(resizeListener);
    resizeListener=null;
  }
  render();
  layout();
  return;
}
Program: 133389
Project: 133389
Buggy source:
@Override public void update(IUpdateable component){
  if (component == entry) {
    PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
      @Override public void run(){
        if (!AbstractEntryComposite.this.isDisposed()) {
          refresh();
          if (!AbstractEntryComposite.this.entry.getValue().equals(currentSelection)) {
            toggleSaveDecoration();
          }
          currentSelection=AbstractEntryComposite.this.entry.getValue();
        }
 else {
          entry.unregister(AbstractEntryComposite.this);
        }
      }
    }
);
  }
}

Fixed version (ground truth):
@Override public void update(IUpdateable component){
  if (component == entry) {
    PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
      @Override public void run(){
        if (!AbstractEntryComposite.this.isDisposed()) {
          logger.info("String_Node_Str" + entry.getName() + "String_Node_Str");
          refresh();
          if (!AbstractEntryComposite.this.entry.getValue().equals(currentSelection)) {
            toggleSaveDecoration();
          }
          currentSelection=AbstractEntryComposite.this.entry.getValue();
        }
 else {
          entry.unregister(AbstractEntryComposite.this);
        }
      }
    }
);
  }
}
Program: 133390
Project: 133390
Buggy source:
@Override public void run(){
  if (!AbstractEntryComposite.this.isDisposed()) {
    refresh();
    if (!AbstractEntryComposite.this.entry.getValue().equals(currentSelection)) {
      toggleSaveDecoration();
    }
    currentSelection=AbstractEntryComposite.this.entry.getValue();
  }
 else {
    entry.unregister(AbstractEntryComposite.this);
  }
}

Fixed version (ground truth):
@Override public void run(){
  if (!AbstractEntryComposite.this.isDisposed()) {
    logger.info("String_Node_Str" + entry.getName() + "String_Node_Str");
    refresh();
    if (!AbstractEntryComposite.this.entry.getValue().equals(currentSelection)) {
      toggleSaveDecoration();
    }
    currentSelection=AbstractEntryComposite.this.entry.getValue();
  }
 else {
    entry.unregister(AbstractEntryComposite.this);
  }
}
Program: 133392
Project: 133392
Buggy source:
@Override public void widgetSelected(SelectionEvent e){
  entry.setValue(((Combo)e.widget).getText());
  notifyListeners(SWT.Selection,new Event());
}

Fixed version (ground truth):
@Override public void widgetSelected(SelectionEvent e){
  notifyListeners(SWT.Selection,new Event());
  Button button=(Button)e.getSource();
  if (button.getSelection()) {
    entry.setValue(yes);
  }
 else {
    entry.setValue(no);
  }
  logger.info("String_Node_Str" + entry.getName() + "String_Node_Str"+ entry.getValue());
  return;
}
Program: 133393
Project: 133393
Buggy source:
/** 
 * Creates a checkbox for the EntryComposite.
 */
private void createCheckbox(){
  Button tmpButton=null;
  tmpButton=new Button(this,SWT.CHECK);
  tmpButton.setText(entry.getName());
  tmpButton.setToolTipText(entry.getDescription());
  if (allowedBinaryValues.subList(0,5).contains(entry.getValue().toLowerCase())) {
    tmpButton.setSelection(true);
  }
 else {
    tmpButton.setSelection(false);
  }
  tmpButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      notifyListeners(SWT.Selection,new Event());
      int index=lowercaseAllowedValues.indexOf(entry.getValue().toLowerCase());
      String value=null;
      value=(index == 0) ? entry.getAllowedValues().get(1) : entry.getAllowedValues().get(0);
      entry.setValue(value);
      logger.info("String_Node_Str" + entry.getName() + "String_Node_Str"+ entry.getValue());
      return;
    }
  }
);
  tmpButton.setBackground(getBackground());
  buttons.add(tmpButton);
}

Fixed version (ground truth):
/** 
 * Creates a checkbox for the EntryComposite.
 */
private void createCheckbox(){
  Button tmpButton=null;
  tmpButton=new Button(this,SWT.CHECK);
  tmpButton.setText(entry.getName());
  tmpButton.setToolTipText(entry.getDescription());
  if (allowedBinaryValues.subList(0,5).contains(entry.getValue().toLowerCase())) {
    tmpButton.setSelection(true);
  }
 else {
    tmpButton.setSelection(false);
  }
  String yes="String_Node_Str", no="String_Node_Str";
  for (  String s : lowercaseAllowedValues) {
    for (int i=0; i < allowedBinaryValues.size(); i++) {
      if (s.equals(allowedBinaryValues.get(i)) && i < 6) {
        yes=s;
        break;
      }
 else       if (s.equals(allowedBinaryValues.get(i)) && i > 5) {
        no=s;
        break;
      }
    }
  }
  PostiveNegativeSelectionAdapter adapter=new PostiveNegativeSelectionAdapter(yes,no);
  tmpButton.addSelectionListener(adapter);
  tmpButton.setBackground(getBackground());
  buttons.add(tmpButton);
}
Program: 133396
Project: 133396
Buggy source:
/** 
 * <p> This operation overrides setupForm() to setup a Form for the tests. </p>
 */
@Override protected void setupForm(){
  form=new Form();
  FakeDataComponent dc1=new FakeDataComponent();
  dc1.setId(1);
  dc1.setName("String_Node_Str");
  IEntry dc1Entry=new StringEntry();
  dc1Entry.setName("String_Node_Str");
  dc1Entry.setValue("String_Node_Str");
  dc1Entry.setTag("String_Node_Str");
  dc1.addEntry(dc1Entry);
  DataComponent dc2=new DataComponent();
  dc2.setId(2);
  dc2.setName("String_Node_Str");
  IEntry dc2Entry=new StringEntry();
  dc2Entry.setId(5);
  dc2Entry.setName("String_Node_Str");
  dc2Entry.setValue("String_Node_Str");
  dc2.addEntry(dc2Entry);
  DataComponent dc3=new DataComponent();
  dc3.setId(3);
  dc3.setName("String_Node_Str");
  DataComponent dc4=new DataComponent();
  dc4.setId(4);
  dc4.setName("String_Node_Str");
  form.addComponent(dc1);
  form.addComponent(dc2);
  form.addComponent(dc3);
  form.addComponent(dc4);
  setName("String_Node_Str");
  setId(15);
  setDescription("String_Node_Str");
  return;
}

Fixed version (ground truth):
/** 
 * <p> This operation overrides setupForm() to setup a Form for the tests. </p>
 */
@Override protected void setupForm(){
  form=new Form();
  FakeDataComponent dc1=new FakeDataComponent();
  dc1.setId(1);
  dc1.setName("String_Node_Str");
  IEntry dc1Entry=new StringEntry();
  dc1Entry.setName("String_Node_Str");
  dc1Entry.setValue("String_Node_Str");
  dc1Entry.setTag("String_Node_Str");
  dc1.addEntry(dc1Entry);
  DataComponent dc2=new DataComponent();
  dc2.setId(2);
  dc2.setName("String_Node_Str");
  IEntry dc2Entry=new StringEntry();
  dc2Entry.setId(5);
  dc2Entry.setName("String_Node_Str");
  dc2Entry.setTag("String_Node_Str");
  dc2Entry.setValue("String_Node_Str");
  dc2.addEntry(dc2Entry);
  DataComponent dc3=new DataComponent();
  dc3.setId(3);
  dc3.setName("String_Node_Str");
  DataComponent dc4=new DataComponent();
  dc4.setId(4);
  dc4.setName("String_Node_Str");
  form.addComponent(dc1);
  form.addComponent(dc2);
  form.addComponent(dc3);
  form.addComponent(dc4);
  setName("String_Node_Str");
  setId(15);
  setDescription("String_Node_Str");
  return;
}
Program: 133399
Project: 133399
Buggy source:
/** 
 * The default constructor.
 */
public HeatExchangerMesh(){
  super();
}

Fixed version (ground truth):
/** 
 * The default constructor
 * @param primary The heat exchanger's primary pipe.
 */
public HeatExchangerMesh(PipeController primary){
  this();
  setPrimaryPipe(primary);
}
Program: 133400
Project: 133400
Buggy source:
@Override protected void updateCamera(ICamera camera){
  if (!(camera instanceof FXCameraAttachment)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  FXCameraAttachment attachment=(FXCameraAttachment)camera;
  Camera fxCamera=attachment.getFxCamera();
  if (fxCamera == null) {
    throw new NullPointerException("String_Node_Str");
  }
  cameraController=new CenteredController(fxCamera,scene,fxCanvas);
  scene.setCamera(fxCamera);
  defaultCamera=fxCamera;
}

Fixed version (ground truth):
@Override protected void updateCamera(ICamera camera){
  if (!(camera instanceof FXCameraAttachment)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  FXCameraAttachment attachment=(FXCameraAttachment)camera;
  Camera fxCamera=attachment.getFxCamera();
  if (fxCamera == null) {
    throw new NullPointerException("String_Node_Str");
  }
  cameraController=new CenteredCameraController(fxCamera,scene,fxCanvas);
  scene.setCamera(fxCamera);
  defaultCamera=fxCamera;
}