cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <>
Subject Re: exceptions within forms template macros
Date Sat, 30 Jul 2005 07:26:51 GMT
Mark Lundquist wrote:

> Hi,
> I've switched over to using the jx-macros.xml implementation of the 
> forms template language (i.e. not using FormsTemplateTransformer 
> anymore).  One thing that is really troublesome is that if an 
> exception gets thrown out of something called by the macros (typically 
> class JXMacrosHelper), JXTG reports the error with line+column 
> corresponding to the outermost macro, i.e. the <ft:form-template>.  
> Needless to say that's not super-helpful.
> I'm sort of stuck on 2.1.6 right now, so maybe this has been fixed 
> since then...?  If not, has anybody else noticed this?  Sylvain... any 
> way to fix?

The problem is that the current exception handling system can only 
report *one* location. Which one should be reported? The deepmost, or 
the topmost?

What we actually want is a location stack. And know what? Just right now 
(yeah, I know, it's sat. morning...) I'm working on adding "Cocoon stack 
traces" we talked about a long time ago, as this became really obvious 
after the changes I made to the CForms parsing stuff [1].

The idea is based on a Location class and a Locatable interface. A 
location holds an URI, a line and column number. Locatable objects know 
their location. These are sitemap statements, form widgets and bindings, 
jxtemplate instructions, etc...

When a problem occurs in a locatable object, it attaches its location to 
the exception it throws (ProcessingException also implements Locatable). 
We then just have to traverse the exception chain to get a Cocoon 
stacktrace along with the Java stacktrace.

Stay tuned.



Sylvain Wallez                        Anyware Technologies
Apache Software Foundation Member     Research & Technology Director

View raw message