Uploaded image for project: 'ODE'
  1. ODE
  2. ODE-231

org.xml.sax.SAXParseException: Premature end of file when invoking external service (TCP)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.1.1
    • 1.2
    • BPEL Runtime
    • None
    • Windows XP Pro, JDK 1.5.0.07, Oracle 10g XE, Apache Tomcat 5.5.25, OpenJPA

    Description

      When invoking external service via TCP using OpenJPA the following error is generated:

      DEBUG - LoggingErrorHandler.fatalError(89) | :-1:-1:FATAL:Premature end of file.
      ERROR - ODEService.onAxisMessageExchange(179) | Error processing response for MEX {MyRoleMex#hqejbhcnphr2wshoxjstwx [Client hqejbhcnphr2wshoxjstww] calling

      {http://www.example.org/registerUser}

      registerUser.registerUser(...)}
      java.lang.RuntimeException: org.xml.sax.SAXParseException: Premature end of file.
      at org.apache.ode.dao.jpa.MessageExchangeDAOImpl.getEPR(MessageExchangeDAOImpl.java:152)
      at org.apache.ode.bpel.engine.MessageExchangeImpl.getEndpointReference(MessageExchangeImpl.java:199)
      at org.apache.ode.axis2.ODEService.writeHeader(ODEService.java:271)
      at org.apache.ode.axis2.ODEService.onResponse(ODEService.java:229)
      at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:172)
      at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:69)
      at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50)
      at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
      at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
      at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
      at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
      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:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
      at java.lang.Thread.run(Thread.java:595)
      Caused by: org.xml.sax.SAXParseException: Premature end of file.
      at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
      at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
      at org.apache.ode.utils.DOMUtils.parse(DOMUtils.java:622)
      at org.apache.ode.utils.DOMUtils.stringToDOM(DOMUtils.java:548)
      at org.apache.ode.dao.jpa.MessageExchangeDAOImpl.getEPR(MessageExchangeDAOImpl.java:150)
      ... 26 more

      Actually there are 3 places where this error is generated: org.apache.ode.dao.jpa.MessageExchangeDAOImpl.getEPR, PartnerLinkDAOImpl.getPartnerEPR and possibly (not tested) PartnerLinkDAOImpl.getMyEPR(). The cause is: variable which holds xml representation of EPR is not null, but empty string (""). It seems that OpenJPA in conjunction with Oracle uses empty string when restoring these values from database.

      Attachments

        1. ODE231_jpa_epr_fix.patch
          1 kB
          Alexey Ousov

        Activity

          People

            mriou Matthieu Riou
            doubleaxe Alexey Ousov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: