Re: Bug report (Re: Merging GNU JAXP into kaffe)
Dalibor Topic <[email protected]>
| Newsgroups | gmane.comp.java.classpath.extensions.xml |
|---|---|
| Message-ID | <[email protected]> |
I've CC:ed David Brownell on this, as he checked in the change that caused the bug, apparently. In short: the bug is that currently GNU JAXP parses an attribute when it shouldn't. The bug is in gnu/xml/pipeline/EventFilter.java . It has been introduced in version 1.14 of the file. I've attached a simplified form of the test case, attribute.xsl. In order to find the source of the bug, I have played around with adding class files from kaffe to gnujaxp1.0-beta1 to make it output the additional attribute. It turns out that the file that causes the change in output is gnu/xml/pipeline/EventFilter.java. When I replace its class file in gnujaxp.jar with the one from from kaffe's rt.jar I get the additional output. The version of EventFilter in kaffe is 1.15, in gnujaxp.jar it's 1.13. Version 1.14 produces the extra output, so the bug must have been introduced in 1.14. I've dug deeper into this, and I think the bug comes from the code below this comment in method bind() // DOM building, printing, layered validation, and other // things don't work well when prefix info is discarded. // Include it by default, whenever possible. commenting the try-catch block below it out and just setting prefixes to false works for me. I've attached a patch to do that. The patch fixes the example, and Saxon 7.3 doesn't break anymore. ;) This patch of course is against the purpose of the comment about things not working well when prefix info is discarded. So I hope someone will come up with a better solution. best regards, dalibor topic --- Ito Kazumitsu <[email protected]> wrote: > > In message "[Classpathx-xml] Merging GNU JAXP into > kaffe" > on 02/12/03, Dalibor Topic <[email protected]> > writes: > > > I'd like to thank you for your great work at > providing > > a free software alternative to Sun's offer. I've > > merged in the current GNU jaxp sources from CVS > into > > kaffe's class library. In case you haven't heard > about > > kaffe, more information on the it is available > from > > http://www.kaffe.org. > > I am a kaffe user, and I am glad that GNU JAXP has > been > merged into kaffe. > > > I'll direct bug reports regarding GNU jaxp classes > > over here, unless that's a problem for you. And of > > course, I'll direct people wanting to contribute > to a > > better jaxp implementation to your project. > > And this is my bug report. > > The attached program, when used with GNU JAXP > merged in kaffe, > gives results different from those of JDK 1.4. But > when used with > gnujaxp-1.0beta1, the results are the same as JDK > 1.4. > > I am in an environment where CVS access to GNU JAXP > is not > available. Could you please try the program with > the current > GNU JAXP? > > $ CLASSPATH=~/javalib/gnujaxp.jar:. java TestSAX2 > file:test03.xsl > 1.0beta1-output > $ java TestSAX2 file:test03.xsl > kaffe-output > $ diff -u 1.0beta1-output jdk1.4-output > $ diff -u 1.0beta1-output kaffe-output > --- 1.0beta1-output Tue Dec 3 19:28:09 2002 > +++ kaffe-output Tue Dec 3 19:28:39 2002 > @@ -4,6 +4,9 @@ > qname = xsl:stylesheet > ATTRIBUTES > URI = > + local = > + qname = xmlns:xsl > + URI = > local = version > qname = version > BEGIN > $ tar tzvf 0.tar.gz > -rw-rw-r-- ito/ito 1528 2002-12-03 19:17:18 > TestSAX2.java > -rw-rw-r-- ito/ito 2074 2001-06-22 13:47:54 > test03.xsl > -rw-rw-r-- ito/ito 8170 2002-12-03 19:28:31 > 1.0beta1-output > -rw-rw-r-- ito/ito 8207 2002-12-03 19:29:01 > kaffe-output > -rw-rw-r-- ito/ito 8170 2002-12-03 19:19:33 > jdk1.4-output > > > ATTACHMENT part 2 application/octet-stream type=tar+gzip __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com
prefixes-always-false.diff
(application/octet-stream, 654 B)
--- /home/topic/CVS/kaffe/libraries/javalib/gnu/xml/pipeline/EventFilter.java Tue Dec 3 02:27:57 2002
+++ gnu/xml/pipeline/EventFilter.java Wed Dec 4 01:35:08 2002
@@ -282,6 +282,7 @@
// DOM building, printing, layered validation, and other
// things don't work well when prefix info is discarded.
// Include it by default, whenever possible.
+/*
try {
producer.setFeature (FEATURE_URI + "namespace-prefixes",
true);
@@ -289,6 +290,8 @@
} catch (SAXException e) {
prefixes = false;
}
+*/
+prefixes=false;
// NOTE: This loop doesn't use "instanceof", since that
// would prevent compiling/linking without those classes
attribute.xsl
(text/xml, 165 B)
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
</xsl:stylesheet>