XMLPullParser and Incompatible MXSerializer

1
0
-1

After upgrading to 7.11.3 all process previously installed fail with the following error. Any advise would be helpful.

2020-11-23 14:52:06.175 -0500 SEVERE (http-nio-8080-exec-4) org.restlet.Component.BonitaRestletApplication Exception or error caught in server resource

org.bonitasoft.engine.exception.BonitaRuntimeException: USERNAME=xxxxxxxx | com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.wrapThrowable(ServerAPIImpl.java:143)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeMethod(ServerAPIImpl.java:131)

    at org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:79)

    at com.sun.proxy.$Proxy204.startProcessWithInputs(Unknown Source)

    at org.bonitasoft.web.rest.server.api.bpm.process.ProcessInstantiationResource.instantiateProcess(ProcessInstantiationResource.java:73)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.restlet.resource.ServerResource.doHandle(ServerResource.java:508)

    at org.restlet.resource.ServerResource.post(ServerResource.java:1341)

    at org.restlet.resource.ServerResource.doHandle(ServerResource.java:606)

    at org.bonitasoft.web.rest.server.api.resource.CommonResource.doHandle(CommonResource.java:206)

    at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:662)

    at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:348)

    at org.restlet.resource.ServerResource.handle(ServerResource.java:1020)

    at org.restlet.resource.Finder.handle(Finder.java:236)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.routing.Router.doHandle(Router.java:422)

    at org.restlet.routing.Router.handle(Router.java:641)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)

    at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:77)

    at org.restlet.Application.handle(Application.java:385)

    at org.bonitasoft.web.rest.server.BonitaRestletApplication.handle(BonitaRestletApplication.java:191)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.routing.Router.doHandle(Router.java:422)

    at org.restlet.routing.Router.handle(Router.java:641)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.routing.Router.doHandle(Router.java:422)

    at org.restlet.routing.Router.handle(Router.java:641)

    at org.restlet.routing.Filter.doHandle(Filter.java:150)

    at org.restlet.routing.Filter.handle(Filter.java:197)

    at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)

    at org.restlet.Component.handle(Component.java:408)

    at org.restlet.Server.handle(Server.java:507)

    at org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)

    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)

    at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1117)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)

    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)

    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)

    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.bonitasoft.console.common.server.login.filter.AbstractAuthorizationFilter.doFilter(AbstractAuthorizationFilter.java:61)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.bonitasoft.console.common.server.login.filter.AbstractAuthorizationFilter.doFilter(AbstractAuthorizationFilter.java:61)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.bonitasoft.console.common.server.filter.NoCacheFilter.doFilter(NoCacheFilter.java:51)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1626)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:748)

Caused by: com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser

    at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:56)

    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1338)

    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1329)

    at org.bonitasoft.engine.data.instance.model.SXMLObjectDataInstance.revert(SXMLObjectDataInstance.java:66)

    at org.bonitasoft.engine.data.instance.model.SXMLObjectDataInstance.getValue(SXMLObjectDataInstance.java:52)

    at org.bonitasoft.engine.data.instance.model.archive.SAXMLObjectDataInstance.(SAXMLObjectDataInstance.java:44)

    at org.bonitasoft.engine.data.instance.model.archive.builder.SADataInstanceBuilder.createNewInstance(SADataInstanceBuilder.java:51)

    at org.bonitasoft.engine.data.instance.api.impl.DataInstanceServiceImpl.archiveDataInstance(DataInstanceServiceImpl.java:97)

    at org.bonitasoft.engine.data.instance.api.impl.DataInstanceServiceImpl.createDataInstance(DataInstanceServiceImpl.java:524)

    at org.bonitasoft.engine.bpm.model.impl.BPMInstancesCreator.createDataForProcess(BPMInstancesCreator.java:776)

    at org.bonitasoft.engine.bpm.model.impl.BPMInstancesCreator.createDataInstances(BPMInstancesCreator.java:687)

    at org.bonitasoft.engine.execution.ProcessExecutorImpl.initialize(ProcessExecutorImpl.java:422)

    at org.bonitasoft.engine.execution.ProcessExecutorImpl.start(ProcessExecutorImpl.java:963)

    at org.bonitasoft.engine.execution.ProcessExecutorImpl.start(ProcessExecutorImpl.java:908)

    at org.bonitasoft.engine.api.impl.ProcessStarter.start(ProcessStarter.java:141)

    at org.bonitasoft.engine.api.impl.ProcessStarter.start(ProcessStarter.java:109)

    at org.bonitasoft.engine.api.impl.ProcessAPIImpl.startProcessWithInputs(ProcessAPIImpl.java:3232)

    at org.bonitasoft.engine.api.impl.ProcessAPIImpl.startProcessWithInputs(ProcessAPIImpl.java:3224)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:427)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.lambda$invokeAPIInTransaction$1(ServerAPIImpl.java:395)

    at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:286)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPIInTransaction(ServerAPIImpl.java:391)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:265)

    at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeMethod(ServerAPIImpl.java:121)

    ... 85 more

Caused by: org.xmlpull.v1.XmlPullParserException: incompatible class: org.xmlpull.mxp1_serializer.MXSerializer

    at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:340)

    at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:259)

    at com.thoughtworks.xstream.io.xml.XppDriver.createDefaultParser(XppDriver.java:62)

    at com.thoughtworks.xstream.io.xml.XppDriver.createParser(XppDriver.java:68)

    at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54)

    ... 112 more

 

Comments

Submitted by mike.norris_1369709 on Tue, 11/24/2020 - 03:53

more information... After digging into this most of the day I think the issue is in the BDM. PostgreSQL large object are simply returned with their LO ID and not the data of the object. Which seems to correlate with the "org.bonitasoft.engine.data.instance.model" in the stacktrace.

Submitted by romain.bioteau on Tue, 11/24/2020 - 16:05

Hi, from which version do you come from ?

Submitted by mike.norris_1369709 on Tue, 11/24/2020 - 16:43

7.11.1. I downloaded the tomcat "mega" zip again and I'm running through some test, but maybe the initial download was corrupt or incomplete. The checksums are different between the 2 zips but both extract cleanly. Or it could have been a bad packaging in the first download. I don't know seems odd

Submitted by romain.bioteau on Wed, 11/25/2020 - 09:07

It is not related to a BDM issue, org.bonitasoft.engine.data.instance.model is more in the domain of the process variable (which are not the same as business variable used with BDM objects), those ones are stores in the Bonita database when business variables are stored in a dedicated database.

When you use process or task variables, Non primitive types are serialized in the Bonita database using xstream (the part that fails in your case).

Did you use a Business Object in a process or task variable instead of a business variable ? Because that could lead to serialization issues ? What Object are you using as process variables ?

Submitted by mike.norris_1369709 on Wed, 11/25/2020 - 19:30

Looks like we have a legacy process task that initializes a business object in a process variable. Now a question. We have multiple environments and have not yet deployed into production. If I make the appropriate process changes, deploy the updated process under the current version, then wait for the older processes to complete before upgrading the bonita version do you foresee any issues regarding this plan?

Submitted by romain.bioteau on Thu, 11/26/2020 - 09:28

If the process is not in production (why it is already legacy ?), you can (on all your environments):

  • Disable it
  • Wait (or delete) current instances to finish
  • Delete the process definition
  • Install the updated version (same name and version)

If you are in production, a version upgrade of the updated process should be required.

HTH

No answers yet.
Notifications