code: public void compile() throws JasperException, FileNotFoundException {
          createCompiler();
          if (jspCompiler.isOutDated()) {
              if (isRemoved()) {
                  throw new FileNotFoundException(jspUri);
              }
              try {
                  jspCompiler.removeGeneratedFiles();
                  jspLoader = null;
                  jspCompiler.compile();
                  jsw.setReload(true);
                  jsw.setCompilationException(null);
              } catch (JasperException ex) {
                  // Cache compilation exception
                  jsw.setCompilationException(ex);
                  if (options.getDevelopment() && options.getRecompileOnFail()) {
                      // Force a recompilation attempt on next access
                      jsw.setLastModificationTest(-1);
                  }
                  throw ex;
              } catch (FileNotFoundException fnfe) {
                  // Re-throw to let caller handle this - will result in a 404
                  throw fnfe;
              } catch (Exception ex) {
                  JasperException je = new JasperException(
                          Localizer.getMessage("jsp.error.unable.compile"),
                          ex);
                  // Cache compilation exception
                  jsw.setCompilationException(je);
                  throw je;
              }
          }
      }
docs: ==================== Compile and reload ====================