public synchronized boolean check(){
    if (textSource.check()!=lastModified) {
      Log.info("TemplateSource.check(): reloading template for "+textSource.getPath());
      templateBuilder.load(textSource, baseTemplate);
      //Unfortunately we have to get last modified after template load, because the TextSource
      //doesn't know what all of its included templates are until then.
      lastModified=textSource.getLastModified();
      etag=textSource.computeETag();
      if (objFormatter!=null)
        baseTemplate.setObjectFormatter(objFormatter);
      if (interceptor!=null)
        interceptor.postLoad(baseTemplate);
      return true;
    }
    return false;
  }