private Joblet getOrCreateLocalJoblet(DeploymentId deploymentId, INCServiceContext appCtx, byte[] acgBytes)
throws HyracksException {
Map<JobId, Joblet> jobletMap = ncs.getJobletMap();
Joblet ji = jobletMap.get(jobId);
if (ji == null) {
ActivityClusterGraph acg = (deployedJobSpecId != null) ? ncs.getActivityClusterGraph(deployedJobSpecId)
: (ActivityClusterGraph) DeploymentUtils.deserialize(acgBytes, deploymentId, appCtx);
ncs.createOrGetJobParameterByteStore(jobId).setParameters(jobParameters);
IJobletEventListenerFactory listenerFactory = acg.getJobletEventListenerFactory();
if (listenerFactory != null) {
if (deployedJobSpecId != null) {
listenerFactory = acg.getJobletEventListenerFactory().copyFactory();
}
listenerFactory.updateListenerJobParameters(ncs.createOrGetJobParameterByteStore(jobId));
}
ji = new Joblet(ncs, deploymentId, jobId, appCtx, acg, listenerFactory, jobStartTime);
jobletMap.put(jobId, ji);
}
return ji;
}