diff -r 6105ee2cceaf -r 947d0f6a6a83 src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Thu Oct 15 12:27:05 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Thu Oct 15 13:31:52 2020 +0200 @@ -238,13 +238,7 @@ return ResponseType.NONE; } - if (viewModel.getVersionFilter() == null) { - final var version = new Version(-1); - version.setProject(viewModel.getProjectInfo().getProject()); - viewModel.setVersion(version); - } else { - viewModel.setVersion(viewModel.getVersionFilter()); - } + viewModel.setVersion(Optional.ofNullable(viewModel.getVersionFilter()).orElse(new Version(-1))); return forwardView(req, viewModel, "version-form"); } @@ -254,15 +248,14 @@ var version = new Version(-1); try { + final var project = new Project(getParameter(req, Integer.class, "pid").orElseThrow()); version = new Version(getParameter(req, Integer.class, "id").orElseThrow()); - version.setProject(new Project(getParameter(req, Integer.class, "pid").orElseThrow())); version.setName(getParameter(req, String.class, "name").orElseThrow()); getParameter(req, Integer.class, "ordinal").ifPresent(version::setOrdinal); version.setStatus(VersionStatus.valueOf(getParameter(req, String.class, "status").orElseThrow())); - dao.getVersionDao().saveOrUpdate(version); + dao.getVersionDao().saveOrUpdate(version, project); - // specifying the pid parameter will purposely reset the session selected version! - setRedirectLocation(req, "./projects/versions?pid=" + version.getProject().getId()); + setRedirectLocation(req, "./projects/versions?pid=" + project.getId()); setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); } catch (NoSuchElementException | IllegalArgumentException | SQLException ex) { LOG.warn("Form validation failure: {}", ex.getMessage()); @@ -332,7 +325,7 @@ stream.map(Version::new).collect(Collectors.toList()) ).ifPresent(issue::setResolvedVersions); - dao.getIssueDao().saveOrUpdate(issue); + dao.getIssueDao().saveOrUpdate(issue, issue.getProject()); // specifying the issue parameter keeps the edited issue as menu item setRedirectLocation(req, "./projects/view?pid=" + issue.getProject().getId());