> From: Per Kreipke [mailto:[EMAIL PROTECTED]]
>
> > > Vadim Gritsenko wrote:
> > > ...
> > > > Here is the hint. I guess these two files should be patched:
> > > > xml-cocoon203\src\java\org\apache\cocoon\components\xslt\
> > > > XSLTProcessorImpl.java
> > > >
xml-cocoon203\src\java\org\apache\cocoon\util\TraxErrorHandler.java
> > >
> > > :-|
> > >
> > > This is roughly the 10000000002nd time that these get patched for
wrong
> > > error reporting.
> > > Ugh :-S
:)
> > I don't think the error is actually _in_ there. The TraxErrorHandler
is
> > correctly handling and reporting the errors.
But it does not throw an exception!
> > IMHO the problem is that the
> > exception is never propagated (or caught) in the caller during
> > the transform step.
Possible bug in Xalan?
> > Possibly because the XSLT step is being swallowed by the threaded
> > transformation (note: can't find that particular code).
> >
> > Subsequently, the error shows that shows up in the browser ("Error
> > compilling foo.xsp: Line 0, column 0: error: java.io.IEException:
> > read error
> > 1 error") makes perfect sense: the file doesn't exist because the
> > Transformer never completed.
> >
> > The solution is to trap XSLT errors when generating the Java code
for the
> > XSP. I'm looking at it but another hint would probably speed things
up ;-)
>
>
> In particular:
>
> ProgramGeneratorImpl.generateResource(...) calls
> markupLagnuage.generateCode(...);
>
> without any try block or checking the return code (maybe it returns a
null
> length string?).
>
> So, whatever MarkupLanguage subclass it's calling isn't generating an
> exception that would get propagated out of generateResource(). If it
did,
> everything might be ok.
>
> So I recant my earlier statement, the error could be where Vadim said
it
> was: in the TraxErrorHandler. Onward.
Exactly. When TraxErrorHandler finds an error, it should throw an error
which should be propagated to the initiator of transformation:
http://java.sun.com/xml/jaxp/dist/1.1/docs/api/javax/xml/transform/Error
Listener.html:
Throws:
TransformerException - if the application chooses to
discontinue the transformation.
I think TraxErrorHandler can buffer all warnings and errors and throw an
exception on fatalError. (What is terminate="yes": error or fatal
error?).
Vadim
> Per
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]