private void activateJobs(TypedStreamWriter streamWriter, JobBatchRecord value) { final Iterator<JobRecord> iterator = value.jobs().iterator(); final Iterator<LongValue> keyIt = value.jobKeys().iterator(); while (iterator.hasNext() && keyIt.hasNext()) { final JobRecord jobRecord = iterator.next(); final LongValue next1 = keyIt.next(); final long key = next1.getValue(); // update state and write follow up event for job record final long elementInstanceKey = jobRecord.getHeaders().getElementInstanceKey(); if (elementInstanceKey >= 0) { final DirectBuffer payload = collectPayload(variableNames, elementInstanceKey); jobRecord.setPayload(payload); } else { jobRecord.setPayload(WorkflowInstanceRecord.EMPTY_PAYLOAD); } // we have to copy the job record because #write will reset the iterator state final ExpandableArrayBuffer copy = new ExpandableArrayBuffer(); jobRecord.write(copy, 0); final JobRecord copiedJob = new JobRecord(); copiedJob.wrap(copy, 0, jobRecord.getLength()); state.activate(key, copiedJob); streamWriter.appendFollowUpEvent(key, JobIntent.ACTIVATED, copiedJob); } }
private void activateJobs(TypedStreamWriter streamWriter, JobBatchRecord value) { final Iterator<JobRecord> iterator = value.jobs().iterator(); final Iterator<LongValue> keyIt = value.jobKeys().iterator(); while (iterator.hasNext() && keyIt.hasNext()) { final JobRecord jobRecord = iterator.next(); final LongValue next1 = keyIt.next(); final long key = next1.getValue(); // update state and write follow up event for job record final long elementInstanceKey = jobRecord.getHeaders().getElementInstanceKey(); if (elementInstanceKey >= 0) { final DirectBuffer payload = collectPayload(variableNames, elementInstanceKey); jobRecord.setPayload(payload); } else { jobRecord.setPayload(WorkflowInstanceRecord.EMPTY_PAYLOAD); } // we have to copy the job record because #write will reset the iterator state final ExpandableArrayBuffer copy = new ExpandableArrayBuffer(); jobRecord.write(copy, 0); final JobRecord copiedJob = new JobRecord(); copiedJob.wrap(copy, 0, jobRecord.getLength()); state.activate(key, copiedJob); streamWriter.appendFollowUpEvent(key, JobIntent.ACTIVATED, copiedJob); } }
jobRecord.setCustomHeaders(headers); optimalOrderMsgPack = new UnsafeBuffer(new byte[jobRecord.getLength()]); jobRecord.write(optimalOrderMsgPack, 0);