Program: 61643
Project: 61643
Buggy source:
public static SWFList parseSWF(SWFSourceInfo sourceInfo) throws Exception {
  SWFList result=new SWFList();
  InputStream inputStream=sourceInfo.getInputStream();
  SWFBundle bundle=null;
  if (inputStream == null) {
    inputStream=new BufferedInputStream(new FileInputStream(sourceInfo.getFile()));
    bundle=sourceInfo.getBundle(false,SearchMode.ALL);
    logger.log(Level.INFO,"String_Node_Str",sourceInfo.getFile());
  }
 else   if (inputStream instanceof SeekableInputStream || inputStream instanceof BufferedInputStream) {
    try {
      inputStream.reset();
    }
 catch (    IOException ex) {
      logger.log(Level.SEVERE,null,ex);
    }
    logger.log(Level.INFO,"String_Node_Str",sourceInfo.getFileTitle());
  }
  Stopwatch sw=Stopwatch.startNew();
  if (bundle != null) {
    result.isBundle=true;
    result.name=new File(sourceInfo.getFileTitleOrName()).getName();
    for (    Entry<String,SeekableInputStream> streamEntry : bundle.getAll().entrySet()) {
      InputStream stream=streamEntry.getValue();
      stream.reset();
      SWF swf=new SWF(stream,new ProgressListener(){
        @Override public void progress(        int p){
          startWork(AppStrings.translate("String_Node_Str"),p);
        }
      }
,Configuration.parallelSpeedUp.get());
      swf.fileTitle=streamEntry.getKey();
      swf.readOnly=true;
      result.add(swf);
    }
  }
 else {
    SWF swf=new SWF(inputStream,new ProgressListener(){
      @Override public void progress(      int p){
        startWork(AppStrings.translate("String_Node_Str"),p);
      }
    }
,Configuration.parallelSpeedUp.get());
    swf.file=sourceInfo.getFile();
    swf.fileTitle=sourceInfo.getFileTitle();
    result.add(swf);
  }
  if (inputStream instanceof FileInputStream) {
    logger.log(Level.INFO,"String_Node_Str",(sw.getElapsedMilliseconds() / 1000));
    inputStream.close();
  }
 else {
    logger.log(Level.INFO,"String_Node_Str",(sw.getElapsedMilliseconds() / 1000));
  }
  result.sourceInfo=sourceInfo;
  for (  SWF swf : result) {
    logger.log(Level.INFO,"String_Node_Str");
    logger.log(Level.INFO,"String_Node_Str");
    logger.log(Level.INFO,"String_Node_Str",Helper.formatFileSize(swf.fileSize));
    logger.log(Level.INFO,"String_Node_Str",swf.version);
    int width=(int)((swf.displayRect.Xmax - swf.displayRect.Xmin) / SWF.unitDivisor);
    int height=(int)((swf.displayRect.Ymax - swf.displayRect.Ymin) / SWF.unitDivisor);
    logger.log(Level.INFO,"String_Node_Str",width);
    logger.log(Level.INFO,"String_Node_Str",height);
    swf.swfList=result;
    swf.addEventListener(new EventListener(){
      @Override public void handleEvent(      String event,      Object data){
        if (event.equals("String_Node_Str")) {
          startWork((String)data);
        }
        if (event.equals("String_Node_Str")) {
          startWork(AppStrings.translate("String_Node_Str") + "String_Node_Str" + (String)data);
        }
        if (event.equals("String_Node_Str")) {
          startWork(AppStrings.translate("String_Node_Str") + "String_Node_Str" + (String)data);
        }
        if (event.equals("String_Node_Str")) {
          startWork(AppStrings.translate("String_Node_Str") + "String_Node_Str" + (String)data);
        }
      }
    }
);
  }
  return result;
}

Fixed version (ground truth):
public static SWFList parseSWF(SWFSourceInfo sourceInfo) throws Exception {
  SWFList result=new SWFList();
  InputStream inputStream=sourceInfo.getInputStream();
  SWFBundle bundle=null;
  FileInputStream fis=null;
  if (inputStream == null) {
    inputStream=new BufferedInputStream(fis=new FileInputStream(sourceInfo.getFile()));
    bundle=sourceInfo.getBundle(false,SearchMode.ALL);
    logger.log(Level.INFO,"String_Node_Str",sourceInfo.getFile());
  }
 else   if (inputStream instanceof SeekableInputStream || inputStream instanceof BufferedInputStream) {
    try {
      inputStream.reset();
    }
 catch (    IOException ex) {
      logger.log(Level.SEVERE,null,ex);
    }
    logger.log(Level.INFO,"String_Node_Str",sourceInfo.getFileTitle());
  }
  Stopwatch sw=Stopwatch.startNew();
  if (bundle != null) {
    result.isBundle=true;
    result.name=new File(sourceInfo.getFileTitleOrName()).getName();
    for (    Entry<String,SeekableInputStream> streamEntry : bundle.getAll().entrySet()) {
      InputStream stream=streamEntry.getValue();
      stream.reset();
      SWF swf=new SWF(stream,new ProgressListener(){
        @Override public void progress(        int p){
          startWork(AppStrings.translate("String_Node_Str"),p);
        }
      }
,Configuration.parallelSpeedUp.get());
      swf.fileTitle=streamEntry.getKey();
      swf.readOnly=true;
      result.add(swf);
    }
  }
 else {
    SWF swf=new SWF(inputStream,new ProgressListener(){
      @Override public void progress(      int p){
        startWork(AppStrings.translate("String_Node_Str"),p);
      }
    }
,Configuration.parallelSpeedUp.get());
    swf.file=sourceInfo.getFile();
    swf.fileTitle=sourceInfo.getFileTitle();
    result.add(swf);
  }
  if (fis != null) {
    logger.log(Level.INFO,"String_Node_Str",(sw.getElapsedMilliseconds() / 1000));
    fis.close();
  }
 else {
    logger.log(Level.INFO,"String_Node_Str",(sw.getElapsedMilliseconds() / 1000));
  }
  result.sourceInfo=sourceInfo;
  for (  SWF swf : result) {
    logger.log(Level.INFO,"String_Node_Str");
    logger.log(Level.INFO,"String_Node_Str");
    logger.log(Level.INFO,"String_Node_Str",Helper.formatFileSize(swf.fileSize));
    logger.log(Level.INFO,"String_Node_Str",swf.version);
    int width=(int)((swf.displayRect.Xmax - swf.displayRect.Xmin) / SWF.unitDivisor);
    int height=(int)((swf.displayRect.Ymax - swf.displayRect.Ymin) / SWF.unitDivisor);
    logger.log(Level.INFO,"String_Node_Str",width);
    logger.log(Level.INFO,"String_Node_Str",height);
    swf.swfList=result;
    swf.addEventListener(new EventListener(){
      @Override public void handleEvent(      String event,      Object data){
        if (event.equals("String_Node_Str")) {
          startWork((String)data);
        }
        if (event.equals("String_Node_Str")) {
          startWork(AppStrings.translate("String_Node_Str") + "String_Node_Str" + (String)data);
        }
        if (event.equals("String_Node_Str")) {
          startWork(AppStrings.translate("String_Node_Str") + "String_Node_Str" + (String)data);
        }
        if (event.equals("String_Node_Str")) {
          startWork(AppStrings.translate("String_Node_Str") + "String_Node_Str" + (String)data);
        }
      }
    }
);
  }
  return result;
}