@Override
  protected void doExecute(final String line, String filePath, final OutputParser.Callback callback) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("Process parsing message: " + filePath);
    }

    // for jdk7: cut off characters wrapping the path. e.g. "RegularFileObject[C:/tmp/bugs/src/a/Demo1.java]"
    if (myJdk7FormatMatcher.reset(filePath).matches()) {
      filePath = myJdk7FormatMatcher.group(1);
    }

    int index = filePath.lastIndexOf('/');
    final String name = index >= 0 ? filePath.substring(index + 1) : filePath;

    final FileType fileType = FileTypeManager.getInstance().getFileTypeByFileName(name);
    if (JavaFileType.INSTANCE.equals(fileType)) {
      callback.fileProcessed(filePath);
      callback.setProgressText(JavaCompilerBundle.message("progress.parsing.file", name));
    }
    else if (JavaClassFileType.INSTANCE.equals(fileType)) {
      callback.fileGenerated(filePath);
    }
  }
@Override
  protected void doExecute(final String line, String filePath, final OutputParser.Callback callback)