explicitly set the lock mode on the join:
<join name='join1' lock='pessimistic'>
Getting StaleObjectStateException when creating and running a process via Oracle DB. Looks like this has been solved before ( JBPM-1085 ) but a call to session.flush() has been removed later ( JBPM-1772 ).
duplicates
JBPM-1085Join of new process instance fails in Oracle