[ 
https://issues.apache.org/jira/browse/CXF-4699?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp resolved CXF-4699.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.7.2
                   2.6.5
                   2.5.8
         Assignee: Daniel Kulp
    
> Schema validation on Weblogic 10.3 fails with AssertionError
> ------------------------------------------------------------
>
>                 Key: CXF-4699
>                 URL: https://issues.apache.org/jira/browse/CXF-4699
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.6.3, 2.6.4
>            Reporter: Johannes Rost
>            Assignee: Daniel Kulp
>             Fix For: 2.5.8, 2.6.5, 2.7.2
>
>
> When activating schema validation webservice calls fail with an 
> AssertionError, because the Weblogic DOM-implementation uses AssertionErrors 
> to mark unimplemented methods instead of Exceptions.
> W3CDOMStreamReader "only" catches all Exceptions when using Node.getUserData.
> From org.apache.cxf.staxutils.W3CDOMStreamReader starting with line 413:
> {code:java}
>     public Location getLocation() {
>         try {
>             Object o = getCurrentNode().getUserData("location");
>             if (o instanceof Location) { 
>                 return (Location)o;
>             }
>         } catch (Exception ex) {
>             //ignore, probably not DOM level 3
>         }
>         return super.getLocation();
>     }
> {code}
> Since Weblogic uses an AssertionError, the DOM Level is not correctly 
> detected and the Error is not catched:
> {code}
> java.lang.AssertionError: UNIMPLEMENTED
>       at weblogic.xml.domimpl.NodeImpl.getUserData(NodeImpl.java:488)
>       at 
> org.apache.cxf.staxutils.W3CDOMStreamReader.getLocation(W3CDOMStreamReader.java:415)
>       at 
> org.apache.cxf.staxutils.DepthXMLStreamReader.getLocation(DepthXMLStreamReader.java:110)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.getCurrentLocation(StAXStreamConnector.java:237)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXConnector$1.getSystemId(StAXConnector.java:100)
>       at 
> com.sun.org.apache.xerces.internal.util.SAXLocatorWrapper.getLiteralSystemId(SAXLocatorWrapper.java:63)
>       at 
> com.sun.org.apache.xerces.internal.util.SAXLocatorWrapper.getExpandedSystemId(SAXLocatorWrapper.java:73)
>       at 
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2398)
>       at 
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1782)
>       at 
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705)
>       at 
> com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.startElement(ValidatorHandlerImpl.java:550)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:89)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:275)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:209)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
>       at 
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:337)
>       at 
> org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:769)
>       at 
> org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:94)
>       at 
> org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:797)
>       at 
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795)
>       at 
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:630)
>       at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157)
>       at 
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:203)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
>       at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>       at 
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:236)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:209)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:189)
>       at 
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:226)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:146)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> [...]
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to