docs: protected void initializeBuildPath(IJavaProject javaProject, IProgressMonitor monitor) throws CoreException {
  		IProgressMonitor theMonitor = monitor;
  		if (theMonitor == null) {
  			theMonitor = new NullProgressMonitor();
  		}
  		theMonitor.beginTask(NewWizardMessages.NewJavaProjectWizardPageTwo_monitor_init_build_path, 2);
  
  		try {
  			final OutParameter<IClasspathEntry[]> entries = new OutParameter<>();
  			final OutParameter<IPath> outputLocation = new OutParameter<>();
  			final IProject project = javaProject.getProject();
  
  			if (this.keepContent) {
  				keepExistingBuildPath(project, entries, outputLocation, theMonitor);
  			} else {
  				buildNewBuildPath(project, entries, outputLocation, theMonitor);
  			}
  			if (theMonitor.isCanceled()) {
  				throw new OperationCanceledException();
  			}
  
  			init(javaProject, outputLocation.get(), entries.get(), false);
  		} catch (CoreException e) {
  			throw e;
  		} catch (Throwable e) {
  			if (e.getCause() instanceof CoreException) {
  				throw (CoreException) e.getCause();
  			}
  			final Throwable ee;
  			if (e.getCause() != null && e.getCause() != e) {
  				ee = e.getCause();
  			} else {
  				ee = e;
  			}
  			throw new CoreException(SARLEclipsePlugin.getDefault().createStatus(IStatus.ERROR, ee));
  		} finally {
  			theMonitor.done();
  		}
  	}