mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
fixing bug 3721 by restricting the number of wind fixes delivered through the /wind REST API to 10,000
Change-Id: I6d0f912667bd31f33d8e01e60d340cc3a03ead29
This commit is contained in:
1 parent
fd93d4ab92
commit
6d87074bbb
2 files changed
+17
-2
No files matched your search
+16
-1
@@ -22,6 +22,20 @@ public class DefaultWindTrackJsonSerializer implements WindTrackJsonSerializer {
|
||||
private TimePoint toTime;
|
||||
private WindSource windSource;
|
||||
|
||||
/**
|
||||
* -1 means unlimited.
|
||||
*/
|
||||
private final int maxNumberOfFixes;
|
||||
|
||||
public DefaultWindTrackJsonSerializer(int maxNumberOfFixes) {
|
||||
super();
|
||||
this.maxNumberOfFixes = maxNumberOfFixes;
|
||||
}
|
||||
|
||||
public DefaultWindTrackJsonSerializer() {
|
||||
this(-1);
|
||||
}
|
||||
|
||||
public JSONObject serialize(WindTrack windTrack) {
|
||||
JSONObject result = new JSONObject();
|
||||
JSONArray jsonWindFixes = new JSONArray();
|
||||
@@ -31,7 +45,8 @@ public class DefaultWindTrackJsonSerializer implements WindTrackJsonSerializer {
|
||||
windTrack.lockForRead();
|
||||
try {
|
||||
Iterator<Wind> windIter = windTrack.getFixesIterator(fromTime, /* inclusive */true, toTime, /* inclusive */ false);
|
||||
while (windIter.hasNext()) {
|
||||
int count = 0;
|
||||
while ((maxNumberOfFixes == -1 || count<maxNumberOfFixes) && windIter.hasNext()) {
|
||||
fixes.add(windIter.next());
|
||||
}
|
||||
} finally {
|
||||
|
||||
+1
-1
@@ -719,7 +719,7 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
from = Util.getLatestOfTimePoints(from, trackedRace.getStartOfTracking());
|
||||
to = Util.getEarliestOfTimePoints(to, Util.getEarliestOfTimePoints(trackedRace.getEndOfTracking(), trackedRace.getTimePointOfNewestEvent()));
|
||||
TrackedRaceJsonSerializer serializer = new TrackedRaceJsonSerializer(
|
||||
new DefaultWindTrackJsonSerializer());
|
||||
new DefaultWindTrackJsonSerializer(/* maxNumberOfFixes */ 10000));
|
||||
serializer.setWindSource(windSource);
|
||||
serializer.setWindSourceId(windSourceId);
|
||||
serializer.setFromTime(from);
|
||||
|
||||
Reference in new issue
Block a user