Map<String, String> oldContainingProcessAnnotations = oldContainingProcess.getAnnotations();
Map<String, String> newContainingProcessAnnotations = updateKeyValuesInMap(oldContainingProcessAnnotations, annotationsToUpdate);
boolean RECREATE_AND_REPLACE = true; //has to be true since already an entry for the same pid exists
Process newContainingProcess = putProcess(newContainingProcessAnnotations, RECREATE_AND_REPLACE);
LinkedList<Process> newProcessUnitStack = processUnitStack.get(pid);
<BUG>putWasTriggeredByEdge(newContainingProcess, oldContainingProcess, eventId, time, DEV_AUDIT, getOperation(syscall));
for(int a = 1; a<oldProcessUnitStack.size(); a++){ //start from 1 because 0 is the containing process</BUG>
Process oldProcessUnit = oldProcessUnitStack.get(a);
Map<String, String> oldProcessUnitAnnotations = oldProcessUnit.getAnnotations();
Map<String, String> newProcessUnitAnnotations = updateKeyValuesInMap(oldProcessUnitAnnotations, annotationsToUpdate);

Map<String, String> oldContainingProcessAnnotations = oldContainingProcess.getAnnotations();
Map<String, String> newContainingProcessAnnotations = updateKeyValuesInMap(oldContainingProcessAnnotations, annotationsToUpdate);
boolean RECREATE_AND_REPLACE = true; //has to be true since already an entry for the same pid exists
Process newContainingProcess = putProcess(newContainingProcessAnnotations, RECREATE_AND_REPLACE);
LinkedList<Process> newProcessUnitStack = processUnitStack.get(pid);
WasTriggeredBy newProcessToOldProcess = new WasTriggeredBy(newContainingProcess, oldContainingProcess);
putEdge(newProcessToOldProcess, getOperation(syscall), time, eventId, DEV_AUDIT);
for(int a = 1; a<oldProcessUnitStack.size(); a++){ //start from 1 because 0 is the containing process
Process oldProcessUnit = oldProcessUnitStack.get(a);
Map<String, String> oldProcessUnitAnnotations = oldProcessUnit.getAnnotations();
Map<String, String> newProcessUnitAnnotations = updateKeyValuesInMap(oldProcessUnitAnnotations, annotationsToUpdate);
