Program: 93273
Project: 93273
Buggy source:
@Override public void run(){
  final Composite container=createComposite(parent,1);
  if (index.isEmpty()) {
    createLabel(container,Messages.EXTDOC_STATICHOCKS_NO_PUBLIC_STATIC_METHOD_FOUND,true);
  }
  final List<StyleRange> typeRanges=Lists.newLinkedList();
  final StringBuilder sb=new StringBuilder();
  for (  final IType type : index.keySet()) {
    final String typeLabel=type.getFullyQualifiedName();
    final int typeLabelBegin=sb.length();
    sb.append(typeLabel);
    final int typeLabelEnd=sb.length();
    final StyleRange styleRange=new StyleRange();
    styleRange.rise=-12;
    styleRange.start=typeLabelBegin;
    styleRange.length=typeLabelEnd - typeLabelBegin;
    styleRange.fontStyle=SWT.BOLD;
    styleRange.data=type;
    styleRange.font=JFaceResources.getHeaderFont();
    typeRanges.add(styleRange);
    sb.append(IOUtils.LINE_SEPARATOR);
    for (    final IMethod method : index.get(type)) {
      sb.append("String_Node_Str");
      final int methodLabelBegin=sb.length();
      final String methodLabel=getElementLabel(method,M_APP_RETURNTYPE | M_PARAMETER_TYPES);
      sb.append(methodLabel);
      final int methodLabelEnd=sb.length();
      final StyleRange methodStyleRange=new StyleRange();
      methodStyleRange.start=methodLabelBegin;
      methodStyleRange.length=methodLabelEnd - methodLabelBegin;
      methodStyleRange.data=method;
      methodStyleRange.underline=true;
      methodStyleRange.font=JFaceResources.getDialogFont();
      methodStyleRange.foreground=Display.getDefault().getSystemColor(SWT.COLOR_BLUE);
      typeRanges.add(methodStyleRange);
      sb.append(IOUtils.LINE_SEPARATOR);
    }
  }
  styledText=new StyledText(container,SWT.NONE);
  styledText.setRedraw(false);
  styledText.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  setInfoBackgroundColor(styledText);
  setInfoForegroundColor(styledText);
  styledText.setEditable(false);
  styledText.setText(sb.toString());
  styledText.setStyleRanges(typeRanges.toArray(new StyleRange[0]));
  final Cursor c1=Display.getDefault().getSystemCursor(SWT.CURSOR_ARROW);
  final Cursor c2=Display.getDefault().getSystemCursor(SWT.CURSOR_HAND);
  styledText.addListener(SWT.MouseDown,new Listener(){
    @Override public void handleEvent(    final Event event){
      final Optional<IMethod> opt=getSelectedMethod(event.x,event.y);
      if (opt.isPresent()) {
        final JavaElementSelectionEvent sEvent=new JavaElementSelectionEvent(opt.get(),METHOD_DECLARATION);
        workspaceBus.post(sEvent);
      }
    }
  }
);
  styledText.addMouseMoveListener(new MouseMoveListener(){
    @Override public void mouseMove(    final MouseEvent e){
      final Optional<IMethod> opt=getSelectedMethod(e.x,e.y);
      if (opt.isPresent()) {
        styledText.setCursor(c2);
      }
 else {
        styledText.setCursor(c1);
      }
    }
  }
);
  styledText.addMouseTrackListener(new MouseTrackListener(){
    @Override public void mouseHover(    final MouseEvent e){
    }
    @Override public void mouseExit(    final MouseEvent e){
      System.out.println(e);
    }
    @Override public void mouseEnter(    final MouseEvent e){
      System.out.println(e);
    }
  }
);
  styledText.setRedraw(true);
}

Fixed version (ground truth):
@Override public void run(){
  final Composite container=createComposite(parent,1);
  if (index.isEmpty()) {
    createLabel(container,Messages.EXTDOC_STATICHOCKS_NO_PUBLIC_STATIC_METHOD_FOUND,true);
  }
  final List<StyleRange> typeRanges=Lists.newLinkedList();
  final StringBuilder sb=new StringBuilder();
  for (  final IType type : index.keySet()) {
    final String typeLabel=type.getFullyQualifiedName();
    final int typeLabelBegin=sb.length();
    sb.append(typeLabel);
    final int typeLabelEnd=sb.length();
    final StyleRange styleRange=new StyleRange();
    styleRange.rise=-12;
    styleRange.start=typeLabelBegin;
    styleRange.length=typeLabelEnd - typeLabelBegin;
    styleRange.fontStyle=SWT.BOLD;
    styleRange.data=type;
    styleRange.font=JFaceResources.getHeaderFont();
    typeRanges.add(styleRange);
    sb.append(IOUtils.LINE_SEPARATOR);
    for (    final IMethod method : index.get(type)) {
      sb.append("String_Node_Str");
      final int methodLabelBegin=sb.length();
      final String methodLabel=getElementLabel(method,M_APP_RETURNTYPE | M_PARAMETER_TYPES);
      sb.append(methodLabel);
      final int methodLabelEnd=sb.length();
      final StyleRange methodStyleRange=new StyleRange();
      methodStyleRange.start=methodLabelBegin;
      methodStyleRange.length=methodLabelEnd - methodLabelBegin;
      methodStyleRange.data=method;
      methodStyleRange.underline=true;
      methodStyleRange.font=JFaceResources.getDialogFont();
      methodStyleRange.foreground=Display.getDefault().getSystemColor(SWT.COLOR_BLUE);
      typeRanges.add(methodStyleRange);
      sb.append(IOUtils.LINE_SEPARATOR);
    }
  }
  styledText=new StyledText(container,SWT.NONE);
  styledText.setRedraw(false);
  styledText.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  setInfoBackgroundColor(styledText);
  setInfoForegroundColor(styledText);
  styledText.setEditable(false);
  styledText.setText(sb.toString());
  styledText.setStyleRanges(typeRanges.toArray(new StyleRange[0]));
  final Cursor c1=Display.getDefault().getSystemCursor(SWT.CURSOR_ARROW);
  final Cursor c2=Display.getDefault().getSystemCursor(SWT.CURSOR_HAND);
  styledText.addListener(SWT.MouseDown,new Listener(){
    @Override public void handleEvent(    final Event event){
      final Optional<IMethod> opt=getSelectedMethod(event.x,event.y);
      if (opt.isPresent()) {
        final JavaElementSelectionEvent sEvent=new JavaElementSelectionEvent(opt.get(),METHOD_DECLARATION);
        workspaceBus.post(sEvent);
      }
    }
  }
);
  styledText.addMouseMoveListener(new MouseMoveListener(){
    @Override public void mouseMove(    final MouseEvent e){
      final Optional<IMethod> opt=getSelectedMethod(e.x,e.y);
      if (opt.isPresent()) {
        styledText.setCursor(c2);
      }
 else {
        styledText.setCursor(c1);
      }
    }
  }
);
  styledText.addMouseTrackListener(new MouseTrackListener(){
    @Override public void mouseHover(    final MouseEvent e){
    }
    @Override public void mouseExit(    final MouseEvent e){
    }
    @Override public void mouseEnter(    final MouseEvent e){
    }
  }
);
  styledText.setRedraw(true);
}