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;
     }
   }
 }
 public void compile() throws JasperException, FileNotFoundException {
   createCompiler();
   if (jspCompiler.isOutDated()) {
     try {
       jspCompiler.removeGeneratedFiles();
       jspLoader = null;
       jspCompiler.compile();
       jsw.setReload(true);
       jsw.setCompilationException(null);
     } catch (JasperException ex) {
       // Cache compilation exception
       jsw.setCompilationException(ex);
       throw ex;
     } catch (Exception ex) {
       JasperException je =
           new JasperException(Localizer.getMessage("jsp.error.unable.compile"), ex);
       // Cache compilation exception
       jsw.setCompilationException(je);
       throw je;
     }
   }
 }