diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationTimeSeriesController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationTimeSeriesController.java index 1c2aca5f28c4983370a7c8763dae41f049c8c26e..d2a3acdfb09620618f90c075e7d3dfa9701b493c 100644 --- a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationTimeSeriesController.java +++ b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationTimeSeriesController.java @@ -156,20 +156,21 @@ public class ObservationTimeSeriesController extends HttpServlet { SessionLocaleUtil.getI18nBundle(request), getServletContext() ); - Integer observationTimeSeriesId = - formValidation.getFormField("observationTimeSeriesId").getValueAsInteger(); - if (observationTimeSeriesId > 0) { - observationTimeSeries = em.find(ObservationTimeSeries.class, observationTimeSeriesId); - } if (formValidation.isValid()) { + observationTimeSeries.setUserId(user.getUserId()); // Should only be set for new time series Long observationCount = 0L; - observationTimeSeries.setUserId(user.getUserId()); - if(observationTimeSeriesId >= 0) { - observationTimeSeries.setLastModifiedBy(user.getUserId()); - observationTimeSeries.setLastModified(new Date()); + + Integer observationTimeSeriesId = + formValidation.getFormField("observationTimeSeriesId").getValueAsInteger(); + if (observationTimeSeriesId > 0) { + // Fetch existing time series if id > 0 + observationTimeSeries = em.find(ObservationTimeSeries.class, observationTimeSeriesId); observationCount = em.createNamedQuery("Observation.findCountByObservationTimeSeries", Long.class) .setParameter("observationTimeSeries", observationTimeSeries).getSingleResult(); } + observationTimeSeries.setLastModifiedBy(user.getUserId()); + observationTimeSeries.setLastModified(new Date()); + // Only observation time series without observations can set the crop, pest and location if (observationCount == 0) { observationTimeSeries.setOrganism(em.find(Organism.class, formValidation.getFormField("organismId").getValueAsInteger()));