|Subject:||RE: Possible bugs in SchemaFactoryFinder and XPathFactoryFinder (was: Remaining work for JAXP 1.3 APIs)|
|From:||Nancy Rickson (nric...@catholicexchange.com)|
|Date:||Jun 20, 2005 12:07:20 pm|
-----Original Message----- From: Morris Kwan [mailto:mkw...@ca.ibm.com] Sent: Monday, June 20, 2005 1:34 PM To: comm...@xml.apache.org Subject: Fw: Possible bugs in SchemaFactoryFinder and XPathFactoryFinder (was: Remaining work for JAXP 1.3 APIs)
This is a real bug. I have debugged the code in XPathFactoryFinder. The loadFromProperty() method is not able to parse the META-INF/services file correctly. It always returns null even if there is a valid META-INF/services file.
Morris Kwan XSLT Development IBM Toronto Lab Tel: (905)413-3729 Email: mkw...@ca.ibm.com
Michael Glavassevich/Toro nto/IBM@IBMCA To comm...@xml.apache.org 06/17/2005 12:30 cc AM Neer...@Sun.COM Subject Possible bugs in SchemaFactoryFinder and XPathFactoryFinder (was: Remaining work for JAXP 1.3 APIs)
I was recently looking over the source for SchemaFactoryFinder  and XPathFactoryFinder  and noticed that when processing META-INF/services files it calls a method called loadFromProperty() which reads a META-INF/services file as if it were a properties file. I had thought META-INF/services files are supposed to contain the name of a class, not a name/value pair. In SchemaFactory  for the META-INF/services file it says to look at the "JAR file specification for file format and parsing rules". Looking at the JAR file specification  it says: "The file should contain a newline-separated list of unique concrete provider-class names", so this seems to agree with what I thought. It sounds like there's a bug here.
 http://cvs.apache.org/viewcvs.cgi/xml-commons/java/external/src/javax/xml/va lidation/SchemaFactoryFinder.java?view=markup
 http://cvs.apache.org/viewcvs.cgi/xml-commons/java/external/src/javax/xml/xp ath/XPathFactoryFinder.java?view=markup
 http://java.sun.com/j2se/1.5.0 /docs/api/javax/xml/validation/SchemaFactory.html#newInstance(java.lang.Stri ng)
 http://java.sun.com/j2se/1.5.0 /docs/guide/jar/jar.html#Provider%20Configuration%20File
Michael Glavassevich/Toronto/IBM@IBMCA wrote on 06/06/2005 10:40:17 AM:
Neeraj Bajaj <Neer...@Sun.COM> wrote on 06/06/2005 05:22:42 AM:
Michael Glavassevich wrote:
A diff  between the latest copies on the main branch and tck-jaxp-1_2_0 shows some other differences, most notably how the jaxp.properties
cached. The code on the main branch will read and cache the jaxp.properties file once whereas on the tck-jaxp-1_2_0 branch it will reload it if the jaxp.properties file was modified since it was read (which to me appears to be a more desirable behaviour).
Former is the correct behavior. As per the spec. jaxp.properties should be read only once. http://java.sun.com/j2se/1.5. 0/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()
Interesting. The previous version of the spec didn't have this statement
 appearently giving implementations the freedom to choose their own caching strategy.
 http://java.sun.com/j2se/1.4. 2/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()