code: public Collection<CompilationUnit> execute() throws IOException {
          List<CompilationUnit> compiledUnits = new ArrayList<CompilationUnit>();
          logger.debug("CompilationTask: execute");
          long start = System.currentTimeMillis();
          for (CompilationUnit unit : compilationUnits) {
              if (compileIfDirty(unit)) {
                  compiledUnits.add(unit);
              }
          }
          logger.debug("execute finished in {} millis", System.currentTimeMillis() - start);
          return compiledUnits;
      }
docs: Execute the lazy compilation.
  
  @return the compilation units that were dirty and got compiled
  @throws IOException When a resource cannot be read/written