Program: 11151
Project: 11151
Buggy source:
private Thread animate(final double detailHint,final int firstFrame,final int lastFrame,final File outputDir,final boolean alpha){
  if (animation != null && animation.size() > 0) {
    Thread thread=new Thread(new Runnable(){
      public void run(){
        stop=false;
        boolean immediate=ImmediateMode.isImmediate();
        ImmediateMode.setImmediate(true);
        AnimatorSceneController asc=(AnimatorSceneController)wwd.getSceneController();
        setAnimationSize(animation.getWidth(),animation.getHeight());
        crosshair.setEnabled(false);
        double detailHintBackup=ocem.getDetailHint();
        ocem.setDetailHint(detailHint);
        frame.setAlwaysOnTop(true);
        View view=wwd.getView();
        OrbitView orbitView=(OrbitView)view;
        boolean detectCollisions=orbitView.isDetectCollisions();
        orbitView.setDetectCollisions(false);
        int filenameLength=String.valueOf(lastFrame).length();
        for (int frame=firstFrame; frame <= lastFrame; frame+=1) {
          setSlider(frame);
          applyView(getView());
          asc.takeScreenshot(new File(outputDir,"String_Node_Str" + FileUtil.paddedInt(frame,filenameLength) + "String_Node_Str"),alpha);
          wwd.redraw();
          asc.waitForScreenshot();
          if (stop)           break;
        }
        ocem.setDetailHint(detailHintBackup);
        crosshair.setEnabled(true);
        orbitView.setDetectCollisions(detectCollisions);
        frame.setAlwaysOnTop(false);
        ImmediateMode.setImmediate(immediate);
      }
    }
);
    thread.start();
    return thread;
  }
  return null;
}

Fixed version (ground truth):
private Thread animate(final double detailHint,final int firstFrame,final int lastFrame,final File outputDir,final boolean alpha){
  if (animation != null && animation.size() > 0) {
    Thread thread=new Thread(new Runnable(){
      public void run(){
        stop=false;
        boolean immediate=ImmediateMode.isImmediate();
        ImmediateMode.setImmediate(true);
        AnimatorSceneController asc=(AnimatorSceneController)wwd.getSceneController();
        setAnimationSize(animation.getWidth(),animation.getHeight());
        crosshair.setEnabled(false);
        double detailHintBackup=dem.getDetailHint();
        dem.setDetailHint(detailHint);
        frame.setAlwaysOnTop(true);
        View view=wwd.getView();
        OrbitView orbitView=(OrbitView)view;
        boolean detectCollisions=orbitView.isDetectCollisions();
        orbitView.setDetectCollisions(false);
        int filenameLength=String.valueOf(lastFrame).length();
        for (int frame=firstFrame; frame <= lastFrame; frame+=1) {
          setSlider(frame);
          applyView(getView());
          asc.takeScreenshot(new File(outputDir,"String_Node_Str" + FileUtil.paddedInt(frame,filenameLength) + "String_Node_Str"),alpha);
          wwd.redraw();
          asc.waitForScreenshot();
          if (stop)           break;
        }
        dem.setDetailHint(detailHintBackup);
        crosshair.setEnabled(true);
        orbitView.setDetectCollisions(detectCollisions);
        frame.setAlwaysOnTop(false);
        ImmediateMode.setImmediate(immediate);
      }
    }
);
    thread.start();
    return thread;
  }
  return null;
}