Program: 161303
Project: 161303
Buggy source:
/** 
 * Returns a collection of classes whose non-abstract methods should always be replaced with no-ops. By default, this list includes   {@link Composite},   {@link DOM} {@link UIObject},  {@link Widget},   {@link Image}, and most subclasses of   {@link Panel}. It will also include any classes specified via the   {@link WithClassesToStub} annotation on the test class. This makesit much safer to test code that uses or extends these types. <p> This list can be customized via  {@link WithClassesToStub} or by defining a new test runnerextending  {@link GwtMockitoTestRunner} and overriding this method. This allows users toexplicitly stub out particular classes that are causing problems in tests. If you override this method, you will probably want to retain the classes that are stubbed here by doing something like this: <pre> &#064;Override protected Collection&lt;Class&lt;?&gt;&gt; getClassesToStub() { Collection&lt;Class&lt;?&gt;&gt; classes = super.getClassesToStub(); classes.add(MyBaseWidget.class); return classes; } </pre>
 * @return a collection of classes whose methods should be stubbed with no-ops while running tests
 */
protected Collection<Class<?>> getClassesToStub(){
  Collection<Class<?>> classes=new LinkedList<Class<?>>();
  classes.add(Composite.class);
  classes.add(DOM.class);
  classes.add(UIObject.class);
  classes.add(Widget.class);
  classes.add(Image.class);
  classes.add(AbsolutePanel.class);
  classes.add(CellList.class);
  classes.add(CellPanel.class);
  classes.add(CellTable.class);
  classes.add(ComplexPanel.class);
  classes.add(DeckLayoutPanel.class);
  classes.add(DeckPanel.class);
  classes.add(DecoratorPanel.class);
  classes.add(DockLayoutPanel.class);
  classes.add(DockPanel.class);
  classes.add(FlowPanel.class);
  classes.add(FocusPanel.class);
  classes.add(HorizontalPanel.class);
  classes.add(HTMLPanel.class);
  classes.add(LayoutPanel.class);
  classes.add(Panel.class);
  classes.add(PopupPanel.class);
  classes.add(RenderablePanel.class);
  classes.add(ResizeLayoutPanel.class);
  classes.add(SimpleLayoutPanel.class);
  classes.add(SimplePanel.class);
  classes.add(SplitLayoutPanel.class);
  classes.add(StackPanel.class);
  classes.add(VerticalPanel.class);
  WithClassesToStub annotation=unitTestClass.getAnnotation(WithClassesToStub.class);
  if (annotation != null) {
    classes.addAll(Arrays.asList(annotation.value()));
  }
  return classes;
}

Fixed version (ground truth):
/** 
 * Returns a collection of classes whose non-abstract methods should always be replaced with no-ops. By default, this list includes   {@link Composite},   {@link DOM} {@link UIObject},  {@link Widget},   {@link Image}, and most subclasses of   {@link Panel}. It will also include any classes specified via the   {@link WithClassesToStub} annotation on the test class. This makesit much safer to test code that uses or extends these types. <p> This list can be customized via  {@link WithClassesToStub} or by defining a new test runnerextending  {@link GwtMockitoTestRunner} and overriding this method. This allows users toexplicitly stub out particular classes that are causing problems in tests. If you override this method, you will probably want to retain the classes that are stubbed here by doing something like this: <pre> &#064;Override protected Collection&lt;Class&lt;?&gt;&gt; getClassesToStub() { Collection&lt;Class&lt;?&gt;&gt; classes = super.getClassesToStub(); classes.add(MyBaseWidget.class); return classes; } </pre>
 * @return a collection of classes whose methods should be stubbed with no-ops while running tests
 */
protected Collection<Class<?>> getClassesToStub(){
  Collection<Class<?>> classes=new LinkedList<Class<?>>();
  classes.add(Composite.class);
  classes.add(DOM.class);
  classes.add(UIObject.class);
  classes.add(Widget.class);
  classes.add(DataGrid.class);
  classes.add(Image.class);
  classes.add(AbsolutePanel.class);
  classes.add(CellList.class);
  classes.add(CellPanel.class);
  classes.add(CellTable.class);
  classes.add(ComplexPanel.class);
  classes.add(DeckLayoutPanel.class);
  classes.add(DeckPanel.class);
  classes.add(DecoratorPanel.class);
  classes.add(DockLayoutPanel.class);
  classes.add(DockPanel.class);
  classes.add(FlowPanel.class);
  classes.add(FocusPanel.class);
  classes.add(HorizontalPanel.class);
  classes.add(HTMLPanel.class);
  classes.add(LayoutPanel.class);
  classes.add(Panel.class);
  classes.add(PopupPanel.class);
  classes.add(RenderablePanel.class);
  classes.add(ResizeLayoutPanel.class);
  classes.add(SimpleLayoutPanel.class);
  classes.add(SimplePanel.class);
  classes.add(SplitLayoutPanel.class);
  classes.add(StackPanel.class);
  classes.add(VerticalPanel.class);
  WithClassesToStub annotation=unitTestClass.getAnnotation(WithClassesToStub.class);
  if (annotation != null) {
    classes.addAll(Arrays.asList(annotation.value()));
  }
  return classes;
}