I have a problem with my process, to be honest it worked fine for months... So i think there is something else causing the the task to fail.
I have an object list business data, in the operation i set "takes value of", and create a list of these objects, at the end of the groovy script before i return the list, i write the size of the list in the log, and it is fine, other logings are done as well, it looks like everything is good. However after the size in the log this happens and my task fails:
2020-04-30 07:16:16.815 +0000 INFO: org.bonitasoft A generálás befejeződött 511 tétellel... (511 is the number of objects in the list)
2020-04-30 07:16:17.103 +0000 FINE: org.bonitasoft.engine.transaction.JTATransactionServiceImpl THREAD_ID=68 | HOSTNAME=7b90c821db07 | Setting rollbackOnly on current transaction because callable 'org.bonitasoft.engine.execution.work.TxBonitaWork$$Lambda$243/0x00000008409c5840@53b5637c' has thrown an exception: null
java.lang.NullPointerException
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:196)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:192)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.lambda$unProxifyIfNeeded$0(ServerProxyfier.java:198)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:198)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.lambda$unProxifyIfNeeded$0(ServerProxyfier.java:198)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:198)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:192)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:174)
at org.bonitasoft.engine.operation.MergeEntityAction.execute(MergeEntityAction.java:41)
at org.bonitasoft.engine.operation.MergeEntityAction.execute(MergeEntityAction.java:52)
at org.bonitasoft.engine.operation.EntitiesActionsExecutor.executeAction(EntitiesActionsExecutor.java:45)
at org.bonitasoft.engine.operation.BusinessDataAssignmentStrategy.computeNewValueForLeftOperand(BusinessDataAssignmentStrategy.java:45)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.calculateRightOperandValue(OperationServiceImpl.java:124)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.executeOperators(OperationServiceImpl.java:106)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:95)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:82)
at org.bonitasoft.engine.execution.StateBehaviors.executeOperations(StateBehaviors.java:580)
at org.bonitasoft.engine.execution.state.ExecutingAutomaticActivityStateImpl.onEnterToOnFinish(ExecutingAutomaticActivityStateImpl.java:48)
at org.bonitasoft.engine.execution.state.OnEnterAndFinishConnectorState.execute(OnEnterAndFinishConnectorState.java:67)
at org.bonitasoft.engine.execution.state.OnEnterAndFinishConnectorState.execute(OnEnterAndFinishConnectorState.java:34)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.executeState(FlowNodeExecutorImpl.java:118)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.updateState(FlowNodeExecutorImpl.java:166)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.stepForward(FlowNodeExecutorImpl.java:150)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.executeFlowNode(FlowNodeExecutorImpl.java:304)
at org.bonitasoft.engine.execution.work.ExecuteFlowNodeWork.work(ExecuteFlowNodeWork.java:73)
at org.bonitasoft.engine.execution.work.TxBonitaWork.lambda$work$0(TxBonitaWork.java:42)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:274)
at org.bonitasoft.engine.execution.work.TxBonitaWork.work(TxBonitaWork.java:42)
at org.bonitasoft.engine.execution.work.LockProcessInstanceWork.work(LockProcessInstanceWork.java:63)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:41)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:41)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:41)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.work(InSessionBonitaWork.java:59)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$1(BonitaThreadPoolExecutor.java:103)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
2020-04-30 07:16:17.110 +0000 FINE: org.bonitasoft.engine.lock.impl.MemoryLockService THREAD_ID=68 | HOSTNAME=7b90c821db07 | Lock released BonitaLock[PROCESS:38001], removing it, no other thread is requesting it
2020-04-30 07:16:17.111 +0000 FINE: org.bonitasoft.engine.execution.work.LockProcessInstanceWork THREAD_ID=68 | HOSTNAME=7b90c821db07 | TENANT_ID=1 | Bonita-Worker-1-01 has unlocked lock for instance 38001: ExecuteFlowNodeWork: flowNodeInstanceId: 2280012 (37, false, false, false)
2020-04-30 07:16:17.111 +0000 SEVERE: org.bonitasoft.engine.execution.work.InSessionBonitaWork THREAD_ID=68 | HOSTNAME=7b90c821db07 | TENANT_ID=1 | The work [ExecuteFlowNodeWork: flowNodeInstanceId: 2280012 (37, false, false, false)] failed. The failure will be handled.
2020-04-30 07:16:17.164 +0000 FINE: org.bonitasoft.engine.core.process.instance.impl.ActivityInstanceServiceImpl THREAD_ID=68 | HOSTNAME=7b90c821db07 | TENANT_ID=1 | [SAutomaticTaskInstance with id 2,280,012] changed state 37->3(new=FailedActivityStateImpl)
2020-04-30 07:16:17.168 +0000 SEVERE: org.bonitasoft.engine.execution.work.InSessionBonitaWork THREAD_ID=68 | HOSTNAME=7b90c821db07 | TENANT_ID=1 | java.lang.NullPointerException : "No message"
java.lang.NullPointerException
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:196)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:192)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.lambda$unProxifyIfNeeded$0(ServerProxyfier.java:198)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:198)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.lambda$unProxifyIfNeeded$0(ServerProxyfier.java:198)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:198)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:192)
at org.bonitasoft.engine.business.data.proxy.ServerProxyfier.unProxifyIfNeeded(ServerProxyfier.java:174)
at org.bonitasoft.engine.operation.MergeEntityAction.execute(MergeEntityAction.java:41)
at org.bonitasoft.engine.operation.MergeEntityAction.execute(MergeEntityAction.java:52)
at org.bonitasoft.engine.operation.EntitiesActionsExecutor.executeAction(EntitiesActionsExecutor.java:45)
at org.bonitasoft.engine.operation.BusinessDataAssignmentStrategy.computeNewValueForLeftOperand(BusinessDataAssignmentStrategy.java:45)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.calculateRightOperandValue(OperationServiceImpl.java:124)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.executeOperators(OperationServiceImpl.java:106)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:95)
at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:82)
at org.bonitasoft.engine.execution.StateBehaviors.executeOperations(StateBehaviors.java:580)
at org.bonitasoft.engine.execution.state.ExecutingAutomaticActivityStateImpl.onEnterToOnFinish(ExecutingAutomaticActivityStateImpl.java:48)
at org.bonitasoft.engine.execution.state.OnEnterAndFinishConnectorState.execute(OnEnterAndFinishConnectorState.java:67)
at org.bonitasoft.engine.execution.state.OnEnterAndFinishConnectorState.execute(OnEnterAndFinishConnectorState.java:34)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.executeState(FlowNodeExecutorImpl.java:118)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.updateState(FlowNodeExecutorImpl.java:166)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.stepForward(FlowNodeExecutorImpl.java:150)
at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.executeFlowNode(FlowNodeExecutorImpl.java:304)
at org.bonitasoft.engine.execution.work.ExecuteFlowNodeWork.work(ExecuteFlowNodeWork.java:73)
at org.bonitasoft.engine.execution.work.TxBonitaWork.lambda$work$0(TxBonitaWork.java:42)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:274)
at org.bonitasoft.engine.execution.work.TxBonitaWork.work(TxBonitaWork.java:42)
at org.bonitasoft.engine.execution.work.LockProcessInstanceWork.work(LockProcessInstanceWork.java:63)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:41)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:41)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:41)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.work(InSessionBonitaWork.java:59)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$1(BonitaThreadPoolExecutor.java:103)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Any ideas what might cause this error?
Thank you!
Best regards
Zoltán
[RE-POSTING THIS AS AN ANSWER, so everyone can easily find the explanation and workaround]
Hello,
Regarding your NullPointerException problem, I managed to reproduce the same behavior as you have. I'll file an issue in our internal system to track it down.
In the meantime, the workaround is to ensure you never add NULL values into the list of Business Data. You can do it by ensuring something like:
List<PrincipalBusinessObject> myBusinessDataList = new ArrayList();
try {
...
for (myData: myDataToTreat) {
if (myData != null) {
SecondaryBusinessObject relatedObj = new SecondaryBusinessObject()
....
myBusinessDataList.add(myData)
}
} catch (Exception e) {
// treat functional meaning of exception here
}
return myBusinessDataList
Hope this helps,
Thx for your feedbacks
Emmanuel
Hello Zoltán,
- To be able to help you, I need to know the exact Bonita version you are running.
- Does the problem happen all the time now?
- If I understand what you imply, on the same version of Bonita, the same process started to fail from one day to another. Is that correct? What could have changed in the environment that could explain the sudden change in behavior? Parameter value changed, external called service that started to not respond / respond slower that usual?...
Thank you for the precisions.
Best regards,
Emmanuel Duchastenier
Hello,
1. We are running version 7.9
2. All the time, everytime i run the process this happens.
3. The only thing that could have changed is the database or the bdm model.
I have another problem, we are getting this error constantly:
2020-05-07 06:55:28.540 +0000 WARN: com.arjuna.ats.jta ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL
com.mysql.cj.jdbc.MysqlXAException: Undetermined error occurred in the underlying Connection - check your data for consistency
at com.mysql.cj.jdbc.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:347)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:189)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:117)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:634)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:226)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:171)
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:770)
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:382)
Caused by: java.sql.SQLNonTransientConnectionException: No operations allowed after connection closed.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:1094)
at com.mysql.cj.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:1084)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:166)
... 6 more
Caused by: com.mysql.cj.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.
at jdk.internal.reflect.GeneratedConstructorAccessor1225.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.NativeSession.checkClosed(NativeSession.java:1263)
at com.mysql.cj.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:575)
at com.mysql.cj.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java)
... 8 more
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: The last packet successfully received from the server was 130,005 milliseconds ago. The last packet sent successfully to the server was 130,005 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:562)
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:732)
at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:671)
at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:986)
at com.mysql.cj.protocol.a.NativeProtocol.sendQueryString(NativeProtocol.java:921)
at com.mysql.cj.NativeSession.execSQL(NativeSession.java:1154)
at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1186)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:168)
... 6 more
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:67)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)
at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:52)
at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:41)
at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:54)
at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:44)
at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:556)
... 13 more
2020-05-07 06:55:28.540 +0000 WARN: com.arjuna.ats.jta ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL
com.mysql.cj.jdbc.MysqlXAException: Undetermined error occurred in the underlying Connection - check your data for consistency
at com.mysql.cj.jdbc.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:347)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:189)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:117)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:634)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:226)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:171)
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:770)
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:382)
Caused by: java.sql.SQLNonTransientConnectionException: No operations allowed after connection closed.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:1094)
at com.mysql.cj.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:1084)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:166)
... 6 more
Caused by: com.mysql.cj.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.
at jdk.internal.reflect.GeneratedConstructorAccessor1225.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.NativeSession.checkClosed(NativeSession.java:1263)
at com.mysql.cj.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:575)
at com.mysql.cj.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java)
... 8 more
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: The last packet successfully received from the server was 130,009 milliseconds ago. The last packet sent successfully to the server was 130,009 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:562)
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:732)
at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:671)
at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:986)
at com.mysql.cj.protocol.a.NativeProtocol.sendQueryString(NativeProtocol.java:921)
at com.mysql.cj.NativeSession.execSQL(NativeSession.java:1154)
at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1186)
at com.mysql.cj.jdbc.MysqlXAConnection.recover(MysqlXAConnection.java:168)
... 6 more
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:67)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)
at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)
at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:52)
at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:41)
at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:54)
at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:44)
at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:556)
... 13 more
I didnt check the exact intervail, be we have this error in the log often. I dont know if they are related or not.
Best regards
Zoltán
Hello,
1. For the first problem, I have a clue on what can cause the problem. Can you provide details of the Groovy script that updates your business data in the "takes value of" operation? Are there NULL values in the list?
2. For the second problem, this is a typical example of connection lost to MySQL server. Can you ensure your network is stable and your server is not overloaded?
Regards,
Emmanuel
Hello,
Regarding the first problem, I managed to reproduce the same behavior. I'll file a bug in our internal system to track it down.
In the meantime, the workaround is to ensure you never add NULL values into the list of Business Data.
Hope this helps,
Thx for your feedbacks
Emmanuel
Hello,
Thank you for the help.
1. problem
The script is not so short, but it starts with initializing a list object:
List<TetelEloiras> tetelek = new ArrayList<TetelEloiras>(); (this is also the type of the business data, an object list)
and then:
try {
} catch (Exception e) {
}
At the end i return the list, in the try/catch i only add to the list.
Even if the code fails in the try/catch, an empty list should be return right?
2. problem
I dont think it should be overloaded, but it might happen, last time i saw about 4000 closed cases. Maybe that is the problem?
Best regards
Zoltán
Hello,
1. Yes, your assumption is right, the list will never be empty. However, this is not entirely the problem. The problem is that INSIDE the list, if the first element is NULL, there is an issue in Bonita, preventing the operation to succeed. As a workaround, please ensure, before inserting an element in the list, that it is not NULL.
2. No, that should not be a problem at all. Bonita is made to support easily tens of thousands of records.
Hope this helps,
Emmanuel
Thank you for the research and answer it was helpfull.