Error #2 occurs after Error #1 regardless if the XML is well-formed. An example of several requests: 1. send in good xml -- > successful parse with no errors. 2. send in good xml -- > successful parse with no errors. 3. send in bad xml -- > Error #1. 4. send in good xml -- > successful parse with no errors. 5. send in good xml -- > Error #2. 6. send in good xml -- > successful parse with no errors. 7. send in good xml -- > Error #2. 8. send in good xml -- > successful parse with no errors. 9. send in bad xml -- > Error #2. 10. send in good xml -- > successful parse with no errors. 11. send in good xml -- > Error #2. 12. send in good xml -- > successful parse with no errors.
Once Error #1 occurs, Error #2 occurs in an alternating fashion with a successful parse (assuming the xml is good). That's why I'm guessing that something is becoming corrupted in the Factory. Thanks, Garth On 3/15/07, Jacob Danner <[EMAIL PROTECTED]> wrote:
Hi Garth, From my experiences with Xmlbeans, Error #1 is expected whenever bad/invalid xml is encountered. XMLBeans was not made to work with bad xml. As far as error #2, I'm not sure why you are getting that, but I'll investigate a little bit more. So I understand, are you saying error #2 occurs when you pass in good, then bad xml? Does it ever just occur when you pass in the bad XML? Thanks, -Jacobd On 3/15/07, Garth Patil <[EMAIL PROTECTED]> wrote: > Hi, > I'm seeing a problem with using the Factory parse() method corrupting > after it sees malformed XML. For example, I have a web service that > receives XML over an HTTP POST, and uses Xmlbeans to parse the XML. I > use the parse() method that takes a String. > When I send an intentionally invalid XML string to the service, it > produces Error #1 below. The XML I send is: > <?xml verion="1.0" ?> > <request clientId="1234" clientKey="5678"> > <message>Test message</message> > </request> > > Notice that the XML declaration has "verion" instead of "version" > (missing the "s"). When I correct the XML and send the following, the > parse() method succeeds half the time and fails (with Error #2 below) > half the time. The successes and failures exactly alternate. > <?xml version="1.0" ?> > <request clientId="1234" clientKey="5678"> > <message>Test message</message> > </request> > > Has anyone seen a similar behavior? Is there any way to tell the > document factory to dispose of it's digesters and create new ones if > there is an error while parsing? > Thanks, > Garth > > Error #1: > 2007-03-15 15:50:48,621 [http-9602-Processor23] ERROR > com.someone.gateway.servlet.request.Request - Error parsing xml input > stream! > org.apache.xmlbeans.XmlException: XML Declaration not well-formed > at org.apache.xmlbeans.impl.newstore2.Locale$SaxLoader.load(Locale.java:2770) > at org.apache.xmlbeans.impl.newstore2.Locale.parse(Locale.java:626) > at org.apache.xmlbeans.impl.newstore2.Locale.parseToXmlObject(Locale.java:611) > at org.apache.xmlbeans.impl.newstore2.Locale.parseToXmlObject(Locale.java:605) > at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:200) > at net.someone.gateway.RequestDocument$Factory.parse(RequestDocument.java:51) > at com.someone.gateway.servlet.request.Request.parse(Request.java:52) > at com.someone.gateway.servlet.Gateway.doPost(Gateway.java:64) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) > at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:595) > Caused by: org.apache.xmlbeans.impl.piccolo.io.FileFormatException: > XML Declaration not well-formed > at org.apache.xmlbeans.impl.piccolo.xml.XMLDeclParser.parse(XMLDeclParser.java:905) > at org.apache.xmlbeans.impl.piccolo.xml.XMLInputReader.parseXMLDeclaration(XMLInputReader.java:56) > at org.apache.xmlbeans.impl.piccolo.xml.XMLReaderReader.processXMLDecl(XMLReaderReader.java:260) > at org.apache.xmlbeans.impl.piccolo.xml.XMLReaderReader.reset(XMLReaderReader.java:85) > at org.apache.xmlbeans.impl.piccolo.xml.DocumentEntity.open(DocumentEntity.java:75) > at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.reset(PiccoloLexer.java:971) > at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:697) > at org.apache.xmlbeans.impl.newstore2.Locale$SaxLoader.load(Locale.java:2756) > ... 23 more > > > Error #2: > 2007-03-15 15:51:41,512 [http-9602-Processor23] ERROR > com.someone.gateway.servlet.request.Request - Error parsing xml input > stream! > java.lang.NullPointerException > at org.apache.xmlbeans.impl.piccolo.xml.DocumentEntity.close(DocumentEntity.java:154) > at org.apache.xmlbeans.impl.piccolo.xml.DocumentEntity.reset(DocumentEntity.java:134) > at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:696) > at org.apache.xmlbeans.impl.newstore2.Locale$SaxLoader.load(Locale.java:2756) > at org.apache.xmlbeans.impl.newstore2.Locale.parse(Locale.java:626) > at org.apache.xmlbeans.impl.newstore2.Locale.parseToXmlObject(Locale.java:611) > at org.apache.xmlbeans.impl.newstore2.Locale.parseToXmlObject(Locale.java:605) > at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:200) > at net.someone.gateway.RequestDocument$Factory.parse(RequestDocument.java:51) > at com.someone.gateway.servlet.request.Request.parse(Request.java:52) > at com.someone.gateway.servlet.Gateway.doPost(Gateway.java:64) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) > at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:595) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

