diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java index d083434c250c037a6fef8d8c9252d6391cc47804..5e4a4c98819ae7d51d8ce4af93078d83724468bf 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java @@ -870,17 +870,16 @@ public class ProjectService implements IProjectService { modelDao.update(originalModel); - if (params.isAnalyzeAnnotations()) { analyzeAnnotations(originalModel, params); } Logger.getRootLogger().removeAppender(appender); project.addLoggingInfo(appender); - + if (params.isCacheModel()) { cacheData(originalModel, params); } - + updateProjectStatus(project, ProjectStatus.DONE, IProgressUpdater.MAX_PROGRESS, params); if (project.getNotifyEmail() != null && !project.getNotifyEmail().equals("")) { try { @@ -1351,7 +1350,10 @@ public class ProjectService implements IProjectService { public void updateProject(Project project, String token) throws SecurityException { projectDao.update(project); if (token != null) { - modelService.getLastModelByProjectId(project.getProjectId(), token).setProject(project); + Model model = modelService.getLastModelByProjectId(project.getProjectId(), token); + if (model != null) { + model.setProject(project); + } } } diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java index f8a4189dd2cfa8ded15629321af962e93d00e98d..3c3b575db147e12db3272fe920516aaa36053af6 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java @@ -780,4 +780,20 @@ public class ProjectServiceTest extends ServiceTestFunctions { } } + @Test + public void testUpdateProjectWithoutModel() throws Exception { + try { + createUser(); + + Project project = new Project(); + project.setProjectId(projectId); + projectDao.add(project); + projectService.updateProject(project, adminToken); + projectService.removeProject(project, null, false, adminToken); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + }