Looks like I am not alone in this. Please see:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399836
-Prashant
On Tue, 2007-05-15 at 20:43 +0530, Prashant Reddy wrote:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6457007
>
> Reproduction:
> 1. Build DOM of an XML whose XSD is locally resolved to a JAR file.
>
> Although the bug in the Sun's database seems to suggest this issue goes
> away if one employs 2.8 version of Xerces, my experience has been the
> contrary.
>
> In my deployment scenario i have used endorsed.dirs and overrode the
> bundled xerces implementation with 2.8 and the problem outlined in the
> bug description quoted above still remains.
>
> If the JAR containing the XSD is part of WEB-INF/lib of a application
> such locking of jar may result in failure to clean-up when you undeploy
> the application from a Servlet container.
>
> Also nothing in the current code[1] seem to suggest the bug is resolved
> as yet ?
>
> I cannot think of what the solution can be though, since URLConnection
> does not have any close()/disconnect() method that actually calls the
> ZipFile's close() method.
>
> The stack trace which opens the Jar File containing the XSD is the
> following :
>
> java.util.jar.JarFile.<init>(java\util\jar\JarFile.java:134)
> java.util.jar.JarFile.<init>(java\util\jar\JarFile.java:70)
> sun.net.www.protocol.jar.URLJarFile.<init>(sun\net\www\protocol\jar
> \URLJarFi
> le.java:56)
> sun.net.www.protocol.jar.URLJarFile.getJarFile(sun\net\www\protocol\jar
> \URLJ
> arFile.java:41)
> sun.net.www.protocol.jar.JarFileFactory.get(sun\net\www\protocol\jar
> \JarFile
> Factory.java:63)
> sun.net.www.protocol.jar.JarURLConnection.connect(sun\net\www\protocol
> \jar\J
> arURLConnection.java:85)
> sun.net.www.protocol.jar.JarURLConnection.getInputStream(sun\net\www
> \protoco
> l\jar\JarURLConnection.java:107)
> org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(-unknown-:-1)
> org.apache.xerces.impl.XMLEntityManager.startEntity(-unknown-:-1)
> org.apache.xerces.impl.XMLEntityManager.startDocumentEntity(-unknown-:-1)
> org.apache.xerces.impl.XMLDocumentScannerImpl.setInputSource(-unknown-:-1)
>
> org.apache.xerces.impl.xs.opti.SchemaParsingConfig.parse(-unknown-:-1)
>
> org.apache.xerces.impl.xs.opti.SchemaParsingConfig.parse(-unknown-:-1)
> org.apache.xerces.impl.xs.opti.SchemaDOMParser.parse(-unknown-:-1)
> org.apache.xerces.impl.xs.traversers.XSDHandler.getSchemaDocument(-unknown-:
> -1)
> org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(-unknown-:-1)
> org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(-unknown-:-1)
> org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(-unknown-:-1)
>
> org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(-unknown-:-1
> )
> org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(-unknown-:-1)
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(-unknown-:-
> 1)
> org.apache.xerces.impl.XMLNSDocumentScannerImpl
> $NSContentDispatcher.scanRoot
> ElementHook(-unknown-:-1)
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> $FragmentContentDispatc
> her.dispatch(-unknown-:-1)
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(-unknown-
> :-1)
> org.apache.xerces.parsers.XML11Configuration.parse(-unknown-:-1)
> org.apache.xerces.parsers.XML11Configuration.parse(-unknown-:-1)
> org.apache.xerces.parsers.XMLParser.parse(-unknown-:-1)
> org.apache.xerces.parsers.DOMParser.parse(-unknown-:-1)
> org.apache.xerces.jaxp.DocumentBuilderImpl.parse(-unknown-:-1)
> javax.xml.parsers.DocumentBuilder.parse(-unknown-:-1)
>
> Thank you for your time.
>
> [1]
> http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/impl/XMLEntityManager.java?view=markup
|
Try Searching:
servers, voip, java, networking, microsoft ...
|
|
|
|