Service task failed after giving value to object list (nullPointerException) what can cause this error? (log in desc)

1
0
-1

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

Comments

Submitted by emmanuel.duchas... on Mon, 05/11/2020 - 17:13

Hello Zoltán,

  1. To be able to help you, I need to know the exact Bonita version you are running.
  2. Does the problem happen all the time now?
  3. 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

Submitted by kurucsai.zoltan... on Fri, 05/08/2020 - 10:05

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

Submitted by emmanuel.duchas... on Mon, 05/11/2020 - 17:34

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

Submitted by emmanuel.duchas... on Tue, 05/12/2020 - 09:56

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

Submitted by kurucsai.zoltan... on Tue, 05/12/2020 - 10:50

Hello,

Thank you for the help.

1. problem

The script is not so short, but it starts with initializing a list object:

List tetelek = new ArrayList(); (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

Submitted by emmanuel.duchas... on Mon, 05/25/2020 - 14:52

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

1 answer

1
0
-1
This one is the BEST answer!

[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 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

Comments

Submitted by kurucsai.zoltan... on Thu, 06/18/2020 - 12:24

Thank you for the research and answer it was helpfull.

Notifications