! WARNING ! LONG !

Folks,

over the last few weeks I have gathered some experience working with Cocoon.

There was one obstacle along the way which ranked a distant first compared
to any other.

This obstacle is Cocoon's exception reporting.

Many times exceptions thrown in a component will result in a seemingly
unrelated exception in the browser window. This was really hard for me to
deal with until I got used to searching through all log files until I found
the root cause.
Even basic things like syntax errors in XSL files will report funny output
like:
"Unable to get transformer handler for someXYZ.xsl"
and exception message: java.lang.NullPointerException
The full stack trace is not very helpful either. It dumps lines and lines of
trace information pointing to the code where the XSLT processor threw the
exception.
The actual error was that I renamed a xsl:copy-of tag to xsl:copy-of1.
Nothing in the report pointed to this simple problem.

I can probably assume correctly that all developers are expecting from their
interpreters and compilers to pinpoint syntax errors at the very minimum.

Should we blame the XSLT processor for bad exception reporting or Cocoon
just doesn't use all the information it provides concerning processing
errors?



                              -o-


XSLT Transformer is obviously one of the most popular Cocoon components.
As such it carries the extra burden of serving as example to people writing
other components.

In the sake of fairness, exception reporting is much friendlier in 2.1 than
before. However much remains to be improved.

I was wondering if someone else shares my observations and thinks it's time
to lay out a design for better exception reporting infrastructure.

I think that one of the biggest psychological barriers for Cocoon users is
that they can't easily start writing simple apps. Cocoon is not very
forgiving with bad input, while at the same time its exception reporting is
often misleading the developer instead of pinpointing the problem.


Thoughts?


Regards,

Ivelin




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

Reply via email to