Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.1.1
-
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
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.