click-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Schellink <sab...@gmail.com>
Subject Re: Fwd: svn commit: r919953 - in /click/trunk/click/framework/src/org/apache/click/service: TemplateService.java VelocityTemplateService.java
Date Sun, 07 Mar 2010 12:01:48 GMT
In short look at line 119 in ErrorReport:

   if (te.getTemplateName() != null)

This code path is not followed and the sourceReader is not instantiated, meaning less diagnostics

are provided.

kind regards

bob


On 7/03/2010 10:51 PM, Malcolm Edgar wrote:
> I will take another look at this, its should be exposing the
> underlying cause. Obviously its not. Thanks for the review.
>
> regards Malcolm Edgar
>
> On Sun, Mar 7, 2010 at 10:45 PM, Bob Schellink<sabob1@gmail.com>  wrote:
>> Hi Malcolm,
>>
>> If the template threw a normal Exception the error was wrapped in a
>> TemplateException and passed to ErrorReport. Inside ErrorReport a check is
>> made if the error is a TemplateException. If it is, a check is made if the
>> TemplateName is set nor not. If the TemplateName is *not* set, as will be
>> the case of a NPE, very little diagnostics is given. So I reverted
>> TemplateService to throw a normal exception instead of wrapping it in a TE.
>> This way the other code path is followed when diagnostics is provided for
>> the Exception.
>>
>> Another way we could resolve it is to provide the templatePath when a normal
>> Exception is thrown?
>>
>> kind regards
>>
>> bob
>>
>> On 7/03/2010 10:32 PM, Malcolm Edgar wrote:
>>>
>>> Hi Bob,
>>>
>>> What was the exception issue caused by this refactoring?
>>>
>>> regards Malcolm Edgar
>>>
>>> ---------- Forwarded message ----------
>>> From:<sabob@apache.org>
>>> Date: Sun, Mar 7, 2010 at 8:33 PM
>>> Subject: svn commit: r919953 - in
>>> /click/trunk/click/framework/src/org/apache/click/service:
>>> TemplateService.java VelocityTemplateService.java
>>> To: commits@click.apache.org
>>>
>>>
>>> Author: sabob
>>> Date: Sun Mar  7 09:33:51 2010
>>> New Revision: 919953
>>>
>>> URL: http://svn.apache.org/viewvc?rev=919953&view=rev
>>> Log:
>>> fixed exception handling caused by CLK-606 refactoring
>>>
>>> Modified:
>>>
>>>   click/trunk/click/framework/src/org/apache/click/service/TemplateService.java
>>>
>>>   click/trunk/click/framework/src/org/apache/click/service/VelocityTemplateService.java
>>>
>>> Modified:
>>> click/trunk/click/framework/src/org/apache/click/service/TemplateService.java
>>> URL:
>>> http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/service/TemplateService.java?rev=919953&r1=919952&r2=919953&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> click/trunk/click/framework/src/org/apache/click/service/TemplateService.java
>>> (original)
>>> +++
>>> click/trunk/click/framework/src/org/apache/click/service/TemplateService.java
>>> Sun Mar  7 09:33:51 2010
>>> @@ -76,7 +76,7 @@
>>>       * @throws TemplateException if template error occurs
>>>       */
>>>      public void renderTemplate(Page page, Map<String, Object>    model,
>>> Writer writer)
>>> -        throws IOException, TemplateException;
>>> +        throws TemplateException, Exception;
>>>
>>>      /**
>>>       * Render the given template and model to the writer.
>>> @@ -88,6 +88,6 @@
>>>       * @throws TemplateException if template error occurs
>>>       */
>>>      public void renderTemplate(String templatePath, Map<String,
>>> Object>    model, Writer writer)
>>> -        throws IOException, TemplateException;
>>> +        throws TemplateException, Exception;
>>>
>>>   }
>>>
>>> Modified:
>>> click/trunk/click/framework/src/org/apache/click/service/VelocityTemplateService.java
>>> URL:
>>> http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/service/VelocityTemplateService.java?rev=919953&r1=919952&r2=919953&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> click/trunk/click/framework/src/org/apache/click/service/VelocityTemplateService.java
>>> (original)
>>> +++
>>> click/trunk/click/framework/src/org/apache/click/service/VelocityTemplateService.java
>>> Sun Mar  7 09:33:51 2010
>>> @@ -31,6 +31,7 @@
>>>   import javax.servlet.ServletContext;
>>>
>>>   import org.apache.click.Page;
>>> +import org.apache.click.Context;
>>>   import org.apache.click.util.ClickUtils;
>>>   import org.apache.click.util.ErrorReport;
>>>   import org.apache.commons.lang.Validate;
>>> @@ -315,7 +316,7 @@
>>>       * @throws TemplateException if template error occurs
>>>       */
>>>      public void renderTemplate(Page page, Map<String, Object>    model,
>>> Writer writer)
>>> -        throws IOException, TemplateException {
>>> +        throws TemplateException, Exception {
>>>
>>>          String templatePath = page.getTemplate();
>>>
>>> @@ -338,7 +339,7 @@
>>>       * @throws Exception if an error occurs
>>>       */
>>>      public void renderTemplate(String templatePath, Map<String,
>>> Object>    model, Writer writer)
>>> -        throws IOException, TemplateException {
>>> +        throws TemplateException, Exception {
>>>
>>>          internalRenderTemplate(templatePath, null, model, writer);
>>>      }
>>> @@ -506,7 +507,7 @@
>>>                                            Page page,
>>>                                            Map<String, Object>    model,
>>>                                            Writer writer)
>>> -        throws IOException, TemplateException {
>>> +        throws TemplateException, Exception {
>>>
>>>          final VelocityContext velocityContext = new
>>> VelocityContext(model);
>>>
>>> @@ -534,9 +535,6 @@
>>>
>>>              template.merge(velocityContext, velocityWriter);
>>>
>>> -        } catch (IOException ioe) {
>>> -            throw ioe;
>>> -
>>>          } catch (ParseErrorException pee) {
>>>              TemplateException te = new TemplateException(pee,
>>>
>>>   pee.getTemplateName(),
>>> @@ -615,16 +613,23 @@
>>>              throw te;
>>>
>>>          } catch (Exception error) {
>>> -            TemplateException te = new TemplateException(error);
>>>
>>>              // Exception occurred merging template and model. It is
>>> possible
>>>              // that some output has already been written, so we will
>>> append the
>>>              // error report to the previous output.
>>> +
>>> +            Context context = null;
>>> +            if (page == null) {
>>> +                context = Context.getThreadLocalContext();
>>> +            } else {
>>> +                context = page.getContext();
>>> +            }
>>> +
>>>              ErrorReport errorReport =
>>> -                new ErrorReport(te,
>>> +                new ErrorReport(error,
>>>                          ((page != null) ? page.getClass() : null),
>>>                          configService.isProductionMode(),
>>> -                        page.getContext().getRequest(),
>>> +                        context.getRequest(),
>>>                          configService.getServletContext());
>>>
>>>              if (velocityWriter == null) {
>>> @@ -634,7 +639,7 @@
>>>
>>>              velocityWriter.write(errorReport.toString());
>>>
>>> -            throw te;
>>> +            throw error;
>>>
>>>          } finally {
>>>              if (velocityWriter != null) {
>>>
>>
>>
>


Mime
View raw message