DefaultJobHandle jobHandle = (DefaultJobHandle) leftTuple.getObject();
LeftTupleList leftTuples = tm.getInsertOrUpdateLeftTuples();
synchronized ( leftTuples ) {
// the job removal and memory check is done within a sync block, incase it is executing a trigger at the
// same time we are procesing an update
timerService.removeJob( jobHandle );
if ( leftTuple.getMemory() != null ) {
// a previous timer has requested an eval, so remove, we don't want it processed twice
leftTuples.remove( leftTuple );
}