org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

1
0
-1

Hello,

When task is supposed to get ready it fails, log shows the error :

| java.lang.ClassCastException : "org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration"
java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

Restarting the tomcat and start process again helps the problem, but after some time the error happens again.

Does anyone know what is problem and solution of it ?

Thanks in advance

P.S.

I am using community 2021.1 studio and tomcat bundle.

Comments

Submitted by emmanuel.duchas... on Mon, 05/31/2021 - 17:05

Is it some custom code of yours that manipulates XML?

Submitted by jj8102929 on Tue, 06/01/2021 - 14:21

Hello,

No

Submitted by jj8102929 on Thu, 06/03/2021 - 11:50

I think the problem comes from xercesImpl - 2.9.1,jar

Can there be a problem ?

Submitted by emmanuel.duchas... on Thu, 06/03/2021 - 14:03

As XIncludeAwareParserConfiguration IS a XMLParserConfiguration, the cast impossibility comes probably from the fact that 2 classloaders conflict with each other.

Can you give more context on what your process is doing on this particular task (connector, specific Groovy script, ...) ?

Submitted by jj8102929 on Fri, 06/04/2021 - 08:28

The task has no connectors. It is human task, where I have created contract and with contract I fill bdm attributes. Also, task has Standard Loop, when specific contract parameter is true, loop happens

Submitted by emmanuel.duchas... on Fri, 06/04/2021 - 09:51

Can you just drop the complete error stacktrace, so that I can see from what Bonita layer comes the error, please?

Submitted by jj8102929 on Fri, 06/04/2021 - 10:33

2021-06-04 10:08:46.555 +0400 SEVERE (Bonita-Worker-1-01) org.bonitasoft.engine.execution.work.InSessionBonitaWork THREAD_ID=169 | HOSTNAME=BPMTEST | TENANT_ID=1 | java.lang.ClassCastException : "org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration"
java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
at org.apache.xerces.parsers.SAXParser.(Unknown Source)
at org.apache.xerces.parsers.SAXParser.(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getXMLReader(UnmarshallerImpl.java:159)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.convert(ConnectorServiceImpl.java:400)
at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.loadConnectors(ConnectorServiceImpl.java:376)
at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.getConnectorImplementation(ConnectorServiceImpl.java:718)
at org.bonitasoft.engine.connector.ConnectorServiceDecorator.getConnectorImplementationDescriptor(ConnectorServiceDecorator.java:162)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateParameterAndGetConnectorInstance.call(ExecuteConnectorWork.java:264)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateParameterAndGetConnectorInstance.call(ExecuteConnectorWork.java:218)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:261)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.work(ExecuteConnectorWork.java:148)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.work(InSessionBonitaWork.java:60)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$1(BonitaThreadPoolExecutor.java:131)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Submitted by emmanuel.duchas... on Fri, 06/04/2021 - 11:49

According to the stacktrace, you DO have a connector on the failing task.

The error seems to indicate there is a conflict with Xerces classes. It may be a transitive dependency of the connector you use.

Can you double-check and indicate what connector it is, please?

Submitted by emmanuel.duchas... on Fri, 06/04/2021 - 12:10

Also, can you indicate:

  • the Bonita version you use
  • If you added xerces library in your project somewhere?

Thx

Submitted by jj8102929 on Fri, 06/04/2021 - 14:41

I really do not have connector on failing task. I have one task where I use office connectors, that is why I add xerces library. But I use them not in failed task, connectors are used in different task.

Bonita Community 2021.1

Submitted by emmanuel.duchas... on Tue, 07/27/2021 - 17:36

You are perfectly right: the first time we check if a task has connectors to execute, we load all the connectors of the process, and keep them in cache, for faster later access. That explains why the task that fails is not the one that has the connector on it.

That being said, why did you have to add xerces library? In theory, the office connector should be self sufficient.

Also, where did you put it?

Submitted by jj8102929 on Mon, 05/23/2022 - 09:26

I have to add xerces library, because of it is not added word do not generate. When I do not have xercesImpl - 2.9.1,jar in process dependencies connector throws error : org.bonitasoft.engine.connector.ConnectorException: fr.opensagres.xdocreport.core.XDocReportException: org.xml.sax.SAXException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser.

Submitted by jj8102929 on Mon, 05/23/2022 - 09:27

when I run locally it does not fail, but on server it does

1 answer

1
0
-1

No one knows anything about it ?

Notifications