You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org> on 2009/11/17 15:51:39 UTC

[jira] Resolved: (XERCESJ-1405) XSD Validation - Field too large throws exception

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

Michael Glavassevich resolved XERCESJ-1405.
-------------------------------------------

    Resolution: Invalid

You are using Sun's implementation, not Apache Xerces-J.  We cannot do anything about the problem you're having as we have no influence over that codebase.  You need to pursue this with the JDK vendor if you want a fix there.

> XSD Validation - Field too large throws exception
> -------------------------------------------------
>
>                 Key: XERCESJ-1405
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1405
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: SAX
>         Environment: OS: Windows XP, 2003 , 32bits
> Tomcat 6.0.16
> 2gb RAM
> intel pentium 2,80ghz
>            Reporter: zack cavalera
>            Priority: Critical
>   Original Estimate: 25h
>  Remaining Estimate: 25h
>
> In my XML file exists a tag that can contain a lot of characters (maximum of 5000 chars).
> When i'm validating this XML ( with a XSD file ), the stack is throwed:
> 17/11/2009 10:29:02 com.sun.xml.ws.server.sei.EndpointMethodHandler invoke
> SEVERE: null
> java.lang.StackOverflowError
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.Op$RangeOp.getToken(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matchString(Unknown Source)
> ...
> at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matches(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.matches(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.dv.xs.XSSimpleTypeDecl.getActualValue(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.dv.xs.XSSimpleTypeDecl.validate(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleEndElement(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
> 	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
> 	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
> 	at services.ValidatorXmlService.Validator(ValidatorXmlService.java:87)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
> 	at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
> 	at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
> 	at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
> 	at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
> 	at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
> 	at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
> 	at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
> 	at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
> 	at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
> 	at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
> 	at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
> 	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
> 	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
> 	at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 	at java.lang.Thread.run(Unknown Source)
> 17/11/2009 10:29:05 com.sun.xml.ws.transport.http.servlet.WSServletDelegate doGet
> SEVERE: caught throwable
> javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
>  - with linked exception:
> [javax.xml.transform.TransformerException: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error]
> 	at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:317)
> 	at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:142)
> 	at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:108)
> 	at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:265)
> 	at com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:320)
> 	at com.sun.xml.ws.transport.http.HttpAdapter.access$100(HttpAdapter.java:93)
> 	at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:454)
> 	at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
> 	at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
> 	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
> 	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
> 	at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 	at java.lang.Thread.run(Unknown Source)
> Caused by: javax.xml.bind.MarshalException
>  - with linked exception:
> [javax.xml.transform.TransformerException: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error]
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:331)
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257)
> 	at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(Unknown Source)
> 	at com.sun.xml.ws.message.jaxb.MarshallerBridge.marshal(MarshallerBridge.java:80)
> 	at com.sun.xml.bind.api.Bridge.marshal(Bridge.java:141)
> 	at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:310)
> 	... 25 more
> Caused by: javax.xml.transform.TransformerException: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:242)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:257)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:792)
> 	at com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty.serializeListBody(ArrayReferenceNodeProperty.java:112)
> 	at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:152)
> 	at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:322)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:681)
> 	at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150)
> 	at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:322)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:589)
> 	at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:312)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490)
> 	at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328)
> 	... 30 more
> Caused by: javax.xml.transform.TransformerException: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:790)
> 	... 40 more
> Caused by: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:433)
> 	at com.sun.xml.bind.v2.runtime.ContentHandlerAdaptor.startElement(ContentHandlerAdaptor.java:130)
> 	at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(Unknown Source)
> 	at com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(Unknown Source)
> 	at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(Unknown Source)
> 	at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(Unknown Source)
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
> 	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
> 	... 43 more
> Caused by: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
> 	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)
> 	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
> 	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
> 	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)
> 	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)
> 	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
> 	at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:394)
> 	at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163)
> 	at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.attribute(UTF8XmlOutput.java:255)
> 	at com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:431)
> 	... 53 more
> Caused by: java.net.SocketException: Connection reset by peer: socket write error
> 	at java.net.SocketOutputStream.socketWrite0(Native Method)
> 	at java.net.SocketOutputStream.socketWrite(Unknown Source)
> 	at java.net.SocketOutputStream.write(Unknown Source)
> 	at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:737)
> 	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
> 	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
> 	at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:761)
> 	at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:127)
> 	at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:570)
> 	at org.apache.coyote.Response.doWrite(Response.java:560)
> 	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
> 	... 62 more
> When i increase the property "Thread stack size" of tomcat to 1024 kb, the error not occurrs.
> But, with this value "1024kb", the XML file with the maximum lenght continue to throwing the exception above.
> Can you help me with this problem?!
> thanks!
> Gustavo
> Brazil

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org