code: protected void translateNestedSubprocesses(Process process) {
         for (FlowElement flowElement : process.getFlowElements()) {
              if (flowElement instanceof SubProcess) {
                translateNestedSubprocessElements((SubProcess) flowElement);
              }
         }
    }
docs: Since subprocesses are autolayouted independently (see {@link #handleSubProcess(FlowElement)}), the elements have x and y coordinates relative to the bounds of the subprocess (thinking the
  subprocess is on (0,0). This however, does not work for nested subprocesses, as they need to take in account the x and y coordinates for each of the parent subproceses.
  
  This method is to be called after fully layouting one process, since ALL elements need to have x and y.