luehe       2004/04/19 17:05:09

  Modified:    jasper2/src/share/org/apache/jasper
                        JspCompilationContext.java
               jasper2/src/share/org/apache/jasper/servlet
                        JspServletWrapper.java
  Log:
  When in deployment (ie., !development) mode, save any compilation exceptions and 
rethrow them (instead of recompiling and getting the same exception over and over 
again) until the next scheduled recompilation
  
  Revision  Changes    Path
  1.46      +7 -2      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspCompilationContext.java
  
  Index: JspCompilationContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspCompilationContext.java,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- JspCompilationContext.java        17 Mar 2004 19:23:03 -0000      1.45
  +++ JspCompilationContext.java        20 Apr 2004 00:05:09 -0000      1.46
  @@ -506,12 +506,17 @@
               try {
                   jspCompiler.compile();
                   jsw.setReload(true);
  +                jsw.setCompilationException(null);
               } catch (JasperException ex) {
  +                jsw.setCompilationException(ex);
                   throw ex;
               } catch (Exception ex) {
                   ex.printStackTrace();
  -                throw new 
JasperException(Localizer.getMessage("jsp.error.unable.compile"),
  -                                          ex);
  +                JasperException je = new JasperException(
  +                            Localizer.getMessage("jsp.error.unable.compile"),
  +                            ex);
  +                jsw.setCompilationException(je);
  +                throw je;
               }
           }
       }
  
  
  
  1.35      +27 -3     
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JspServletWrapper.java
  
  Index: JspServletWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JspServletWrapper.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- JspServletWrapper.java    16 Apr 2004 23:01:29 -0000      1.34
  +++ JspServletWrapper.java    20 Apr 2004 00:05:09 -0000      1.35
  @@ -73,6 +73,7 @@
       private boolean reload = true;
       private boolean isTagFile;
       private int tripCount;
  +    private JasperException compileException;
   
       /*
        * JspServletWrapper for JSP pages.
  @@ -143,8 +144,6 @@
   
                       if (!firstTime) {
                           ctxt.getRuntimeContext().incrementJspReloadCount();
  -                    } else {
  -                        firstTime = false;
                       }
   
                       reload = false;
  @@ -158,6 +157,16 @@
           return config.getServletContext();
       }
   
  +    /*
  +     * Sets the compilation exception for this JspServletWrapper.
  +     *
  +     * @param je The compilation exception
  +     */
  +    public void setCompilationException(JasperException je) {
  +        this.compileException = je;
  +    }
  +
  +
       /**
        * Compile (if needed) and load a tag file
        */
  @@ -169,9 +178,17 @@
               }
               if (options.getDevelopment() || firstTime ) {
                   synchronized (this) {
  +                    if (firstTime) {
  +                        firstTime = false;
  +                    }
                       ctxt.compile();
                   }
  +            } else {
  +                if (compileException != null) {
  +                    throw compileException;
  +                }
               }
  +
               if (reload) {
                   tagHandlerClass = ctxt.load();
               }
  @@ -249,9 +266,16 @@
                        Localizer.getMessage("jsp.error.unavailable"));
               }
   
  -            if (options.getDevelopment()  || firstTime ) {
  +            if (options.getDevelopment() || firstTime ) {
                   synchronized (this) {
  +                    if (firstTime) {
  +                        firstTime = false;
  +                    }
                       ctxt.compile();
  +                }
  +            } else {
  +                if (compileException != null) {
  +                    throw compileException;
                   }
               }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to