You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "John McCrae (JIRA)" <ji...@apache.org> on 2011/09/01 16:02:09 UTC

[jira] [Created] (WSCOMMONS-573) The prefix ... isn't the prefix, which has been defined last thrown in Correct XML documents

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: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org