From e51d82753b1e3ecad15366e9536fb8ab86005904 Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Fri, 4 Jul 2014 10:41:23 +0000
Subject: [PATCH] problem setting new currentSystemState when there is no
 further observation in repository. this has been fixed

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/DMM/trunk@16156 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../repository/ObservationRepositoryHandler.java         | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java
index 8c9ba5f6..d3bde09f 100644
--- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java
+++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java
@@ -15,6 +15,7 @@ import edu.kit.ipd.descartes.perfdatarepo.Impact;
 import edu.kit.ipd.descartes.perfdatarepo.Result;
 import edu.kit.ipd.descartes.ql.models.repository.Observation;
 import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
+import edu.kit.ipd.descartes.ql.models.repository.RepositoryFactory;
 //import edu.kit.ipd.descartes.adaptation.model.repository.dmm.AdaptationProcessModelLoader;
 
 public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler {
@@ -62,7 +63,13 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
 		for (Iterator<Observation> iterator = observations.iterator(); iterator.hasNext();) {
 			Observation observ = (Observation) iterator.next();
 			if (EcoreUtil.equals(observ, currentObservation)) {
-				newObservation = iterator.next();
+				if (iterator.hasNext()) {
+					newObservation = iterator.next();
+				} else {
+					// Just in case there is no remaining observation in the repository
+					newObservation = RepositoryFactory.eINSTANCE.createObservation();
+					newObservation.setIdentifier("EMPTY");
+				}
 				break;
 			}
 		}
-- 
GitLab