Program: 17542
Project: 17542
Buggy source:
public void createPartControl(Composite parent){
  Composite container=new Composite(parent,SWT.NONE);
  container.setLayout(new GridLayout());
  comboViewer=new ComboViewer(container,SWT.READ_ONLY);
  comboViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent e){
      directoryTreeViewer.setInput(((StructuredSelection)e.getSelection()).getFirstElement());
      fileViewer.setInput(((StructuredSelection)e.getSelection()).getFirstElement());
    }
  }
);
  comboViewer.setLabelProvider(new ComboLabelProvider());
  comboViewer.setContentProvider(new ComboContentProvider());
  final Combo combo=comboViewer.getCombo();
  final GridData gridData=new GridData(GridData.FILL_HORIZONTAL);
  combo.setLayoutData(gridData);
  comboViewer.setInput(new LocalFileSystem());
  SashForm sash=new SashForm(container,SWT.VERTICAL);
  sash.setLayoutData(new GridData(GridData.FILL_BOTH));
  directoryTreeViewer=new TreeViewer(sash,SWT.BORDER);
  directoryTreeViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent e){
      fileViewer.setInput(e.getSelection());
    }
  }
);
  directoryTreeViewer.setSorter(new DirectorySorter());
  directoryTreeViewer.setLabelProvider(new DirectoryLabelProvider());
  directoryTreeViewer.setContentProvider(new DirectoryContentProvider());
  final Tree tree=directoryTreeViewer.getTree();
  tree.setLayoutData(new GridData(GridData.FILL_BOTH));
  directoryTreeViewer.setInput(new LocalFileSystem());
  fileViewer=new TableViewer(sash,SWT.BORDER);
  fileViewer.addDoubleClickListener(new IDoubleClickListener(){
    public void doubleClick(    DoubleClickEvent e){
      String filename=e.getSelection().toString();
      if (filename.indexOf("String_Node_Str") == 0) {
        filename=filename.substring(1,filename.length() - 1);
      }
      IWorkbenchPage page=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      JavaFileEditorInput input=new JavaFileEditorInput(new File(filename));
      try {
        page.openEditor(input,"String_Node_Str");
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
    }
  }
);
  fileViewer.setSorter(new Sorter());
  fileViewer.setLabelProvider(new FileLabelProvider());
  fileViewer.setContentProvider(new FileContentProvider());
  final Table table=fileViewer.getTable();
  table.setLayoutData(new GridData(GridData.FILL_BOTH));
  fileViewer.setInput(new LocalFileSystem());
  createActions();
  initializeToolBar();
  initializeMenu();
}

Fixed version (ground truth):
public void createPartControl(Composite parent){
  Composite container=new Composite(parent,SWT.NONE);
  container.setLayout(new GridLayout());
  comboViewer=new ComboViewer(container,SWT.READ_ONLY);
  comboViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent e){
      try {
        directoryTreeViewer.setInput(((StructuredSelection)e.getSelection()).getFirstElement());
        fileViewer.setInput(((StructuredSelection)e.getSelection()).getFirstElement());
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
    }
  }
);
  comboViewer.setLabelProvider(new ComboLabelProvider());
  comboViewer.setContentProvider(new ComboContentProvider());
  final Combo combo=comboViewer.getCombo();
  final GridData gridData=new GridData(GridData.FILL_HORIZONTAL);
  combo.setLayoutData(gridData);
  comboViewer.setInput(new LocalFileSystem());
  SashForm sash=new SashForm(container,SWT.VERTICAL);
  sash.setLayoutData(new GridData(GridData.FILL_BOTH));
  directoryTreeViewer=new TreeViewer(sash,SWT.BORDER);
  directoryTreeViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent e){
      fileViewer.setInput(e.getSelection());
    }
  }
);
  directoryTreeViewer.setSorter(new DirectorySorter());
  directoryTreeViewer.setLabelProvider(new DirectoryLabelProvider());
  directoryTreeViewer.setContentProvider(new DirectoryContentProvider());
  final Tree tree=directoryTreeViewer.getTree();
  tree.setLayoutData(new GridData(GridData.FILL_BOTH));
  directoryTreeViewer.setInput(new LocalFileSystem());
  fileViewer=new TableViewer(sash,SWT.BORDER);
  fileViewer.addDoubleClickListener(new IDoubleClickListener(){
    public void doubleClick(    DoubleClickEvent e){
      String filename=e.getSelection().toString();
      if (filename.indexOf("String_Node_Str") == 0) {
        filename=filename.substring(1,filename.length() - 1);
      }
      IWorkbenchPage page=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      JavaFileEditorInput input=new JavaFileEditorInput(new File(filename));
      try {
        page.openEditor(input,"String_Node_Str");
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
    }
  }
);
  fileViewer.setSorter(new Sorter());
  fileViewer.setLabelProvider(new FileLabelProvider());
  fileViewer.setContentProvider(new FileContentProvider());
  final Table table=fileViewer.getTable();
  table.setLayoutData(new GridData(GridData.FILL_BOTH));
  fileViewer.setInput(new LocalFileSystem());
  createActions();
  initializeToolBar();
  initializeMenu();
}