1.1 --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Thu Oct 15 12:27:05 2020 +0200 1.2 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Thu Oct 15 13:31:52 2020 +0200 1.3 @@ -238,13 +238,7 @@ 1.4 return ResponseType.NONE; 1.5 } 1.6 1.7 - if (viewModel.getVersionFilter() == null) { 1.8 - final var version = new Version(-1); 1.9 - version.setProject(viewModel.getProjectInfo().getProject()); 1.10 - viewModel.setVersion(version); 1.11 - } else { 1.12 - viewModel.setVersion(viewModel.getVersionFilter()); 1.13 - } 1.14 + viewModel.setVersion(Optional.ofNullable(viewModel.getVersionFilter()).orElse(new Version(-1))); 1.15 1.16 return forwardView(req, viewModel, "version-form"); 1.17 } 1.18 @@ -254,15 +248,14 @@ 1.19 1.20 var version = new Version(-1); 1.21 try { 1.22 + final var project = new Project(getParameter(req, Integer.class, "pid").orElseThrow()); 1.23 version = new Version(getParameter(req, Integer.class, "id").orElseThrow()); 1.24 - version.setProject(new Project(getParameter(req, Integer.class, "pid").orElseThrow())); 1.25 version.setName(getParameter(req, String.class, "name").orElseThrow()); 1.26 getParameter(req, Integer.class, "ordinal").ifPresent(version::setOrdinal); 1.27 version.setStatus(VersionStatus.valueOf(getParameter(req, String.class, "status").orElseThrow())); 1.28 - dao.getVersionDao().saveOrUpdate(version); 1.29 + dao.getVersionDao().saveOrUpdate(version, project); 1.30 1.31 - // specifying the pid parameter will purposely reset the session selected version! 1.32 - setRedirectLocation(req, "./projects/versions?pid=" + version.getProject().getId()); 1.33 + setRedirectLocation(req, "./projects/versions?pid=" + project.getId()); 1.34 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); 1.35 } catch (NoSuchElementException | IllegalArgumentException | SQLException ex) { 1.36 LOG.warn("Form validation failure: {}", ex.getMessage()); 1.37 @@ -332,7 +325,7 @@ 1.38 stream.map(Version::new).collect(Collectors.toList()) 1.39 ).ifPresent(issue::setResolvedVersions); 1.40 1.41 - dao.getIssueDao().saveOrUpdate(issue); 1.42 + dao.getIssueDao().saveOrUpdate(issue, issue.getProject()); 1.43 1.44 // specifying the issue parameter keeps the edited issue as menu item 1.45 setRedirectLocation(req, "./projects/view?pid=" + issue.getProject().getId());