The prefix ... isn't the prefix, which has been defined last thrown in Correct
XML documents
--------------------------------------------------------------------------------------------
Key: WSCOMMONS-573
URL: https://issues.apache.org/jira/browse/WSCOMMONS-573
Project: WS-Commons
Issue Type: Bug
Components: Utilities
Affects Versions: XmlSchema 1.4.6
Reporter: John McCrae
Priority: Minor
In certain cases the following exception is thrown:
GRAVE: The prefix xsd isn't the prefix, which has been defined last.
java.lang.IllegalStateException: The prefix xsd isn't the prefix, which has
been defined last.
at
org.apache.ws.commons.util.NamespaceContextImpl.endPrefixMapping(NamespaceContextImpl.java:92)
at
org.apache.xmlrpc.parser.RecursiveTypeParserImpl.endPrefixMapping(RecursiveTypeParserImpl.java:192)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endNamespaceMapping(AbstractSAXParser.java:2175)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at
org.apache.xmlrpc.server.XmlRpcStreamServer.getRequest(XmlRpcStreamServer.java:65)
at
org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:199)
at
org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:112)
at
org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:196)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:91)
at
org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:77)
at
org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
at
org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
at
org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
at
org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
at
org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
at
org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
This exception can be was produced by the following XMLRPC request (using
Apache XMLRPC)
<?xml version="1.0"
encoding="UTF-8"?><methodCall><methodName>OntologyTranslatorController.translate</methodName><params><param><value><eu.monnetproject.ontology.Ontology><rdf:RDF
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://www.fao.org/aims/aos/cwr.owl">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/>
<rdfs:comment xml:lang="en">Added the French and Spanish translations
of the terms coming from AGROVOC. [GS]</rdfs:comment>
<rdfs:comment xml:lang="en">Last revised by AGPS and
KCEW.</rdfs:comment>
<owl:versionInfo
rdf:datatype="http://www.w3.org/2001/XMLSchema#string">20060614</owl:versionInfo>
</rdf:Description>
</rdf:RDF></eu.monnetproject.ontology.Ontology></value></param></params></methodCall>
Is fixed by changing implementation of
org.apache.ws.commons.util.NamespaceContextImpl.endPrefixMapping to:
public void endPrefixMapping(String pPrefix) {
if(pPrefix.equals(cachedPrefix)) {
cachedPrefix = cachedURI = null;
} else {
for(int i = 0; i < prefixList.size(); i += 2) {
if(prefixList.get(i).equals(pPrefix)) {
prefixList.remove(i);
prefixList.remove(i);
return;
}
}
throw new IllegalStateException("The prefix " + pPrefix + " was
not defined.");
}
}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]