java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java
... ...
@@ -2043,25 +2043,27 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
2043 2043
final Document competitorManeuver = new Document();
2044 2044
competitorManeuver.put(FieldNames.COMPETITOR_ID.name(), e.getKey().getId());
2045 2045
final List<Document> maneuverList = new ArrayList<>();
2046
- for (final Maneuver maneuver : e.getValue()) {
2047
- final Document maneuverDoc = new Document();
2048
- maneuverDoc.put(FieldNames.TYPE.name(), maneuver.getType().name());
2049
- maneuverDoc.put(FieldNames.TACK.name(), maneuver.getNewTack().name());
2050
- maneuverDoc.put(FieldNames.POSITION_LAT_RAD.name(), maneuver.getPosition().getLatRad());
2051
- maneuverDoc.put(FieldNames.POSITION_LNG_RAD.name(), maneuver.getPosition().getLngRad());
2052
- maneuverDoc.put(FieldNames.TIMEPOINT.name(), maneuver.getTimePoint().asMillis());
2053
- final Document mainCurveBoundariesDoc = new Document();
2054
- maneuverDoc.put(FieldNames.MAIN_CURVE_BOUNDARIES.name(), storeMainCurveBoundaries(maneuver.getMainCurveBoundaries(), mainCurveBoundariesDoc));
2055
- final Document maeuverCurveWithStableSpeedAndBoundariesDoc = new Document();
2056
- maneuverDoc.put(FieldNames.MANEUVER_CURVE_WITH_STABLE_SPEED_AND_COURSE_BOUNDERIES.name(), storeMainCurveBoundaries(maneuver.getManeuverCurveWithStableSpeedAndCourseBoundaries(), maeuverCurveWithStableSpeedAndBoundariesDoc));
2057
- maneuverDoc.put(FieldNames.MAX_TURNING_RATE_IN_DEGREE_PER_SECOUND.name(), maneuver.getMaxTurningRateInDegreesPerSecond());
2058
- maneuverDoc.put(FieldNames.INDEX_OF_PASSED_WAYPOINT.name(), maneuver.getMarkPassing() == null ? -1 : course.getIndexOfWaypoint(maneuver.getMarkPassing().getWaypoint()));
2059
- maneuverDoc.put(FieldNames.TIME_AS_MILLIS.name(), maneuver.getDuration().asMillis());
2060
- maneuverDoc.put(FieldNames.MANEUVER_LOSS.name(), maneuver.getManeuverLoss() == null ? null : storeManeuverLoss(maneuver.getManeuverLoss()));
2061
- maneuverList.add(maneuverDoc);
2046
+ if (e.getValue() != null) {
2047
+ for (final Maneuver maneuver : e.getValue()) {
2048
+ final Document maneuverDoc = new Document();
2049
+ maneuverDoc.put(FieldNames.TYPE.name(), maneuver.getType().name());
2050
+ maneuverDoc.put(FieldNames.TACK.name(), maneuver.getNewTack().name());
2051
+ maneuverDoc.put(FieldNames.POSITION_LAT_RAD.name(), maneuver.getPosition().getLatRad());
2052
+ maneuverDoc.put(FieldNames.POSITION_LNG_RAD.name(), maneuver.getPosition().getLngRad());
2053
+ maneuverDoc.put(FieldNames.TIMEPOINT.name(), maneuver.getTimePoint().asMillis());
2054
+ final Document mainCurveBoundariesDoc = new Document();
2055
+ maneuverDoc.put(FieldNames.MAIN_CURVE_BOUNDARIES.name(), storeMainCurveBoundaries(maneuver.getMainCurveBoundaries(), mainCurveBoundariesDoc));
2056
+ final Document maeuverCurveWithStableSpeedAndBoundariesDoc = new Document();
2057
+ maneuverDoc.put(FieldNames.MANEUVER_CURVE_WITH_STABLE_SPEED_AND_COURSE_BOUNDERIES.name(), storeMainCurveBoundaries(maneuver.getManeuverCurveWithStableSpeedAndCourseBoundaries(), maeuverCurveWithStableSpeedAndBoundariesDoc));
2058
+ maneuverDoc.put(FieldNames.MAX_TURNING_RATE_IN_DEGREE_PER_SECOUND.name(), maneuver.getMaxTurningRateInDegreesPerSecond());
2059
+ maneuverDoc.put(FieldNames.INDEX_OF_PASSED_WAYPOINT.name(), maneuver.getMarkPassing() == null ? -1 : course.getIndexOfWaypoint(maneuver.getMarkPassing().getWaypoint()));
2060
+ maneuverDoc.put(FieldNames.TIME_AS_MILLIS.name(), maneuver.getDuration().asMillis());
2061
+ maneuverDoc.put(FieldNames.MANEUVER_LOSS.name(), maneuver.getManeuverLoss() == null ? null : storeManeuverLoss(maneuver.getManeuverLoss()));
2062
+ maneuverList.add(maneuverDoc);
2063
+ }
2064
+ competitorManeuver.put(FieldNames.MANEUVERS.name(), maneuverList);
2065
+ result.add(competitorManeuver);
2062 2066
}
2063
- competitorManeuver.put(FieldNames.MANEUVERS.name(), maneuverList);
2064
- result.add(competitorManeuver);
2065 2067
}
2066 2068
return result;
2067 2069
}