Merge branch 'master' into bug1923

This commit is contained in:
Axel Uhl committed 2014-05-07 16:25:05 +02:00
commit 7376f8be14
4 files changed
+48 -3

No files matched your search

@@ -131,6 +131,9 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> {
public void recordFix(Competitor competitor, GPSFixMoving fix) {
DynamicGPSFixTrack<Competitor, GPSFixMoving> track = getTrack(competitor);
if (track != null) {
if (logger != null && logger.getLevel() != null && logger.getLevel().equals(Level.FINEST)) {
logger.finest(""+competitor.getName() + ": " + fix);
}
track.addGPSFix(fix); // the track notifies this tracked race which in turn notifies its listeners
}
}
@@ -1216,6 +1216,9 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
(newestEvent != null && timePoint.before(newestEvent))); i++) {
WindWithConfidence<Pair<Position, TimePoint>> averagedWindWithConfidence = windTrack.getAveragedWindWithConfidence(null, timePoint);
if (averagedWindWithConfidence != null) {
if (logger.getLevel() != null && logger.getLevel().equals(Level.FINEST)) {
logger.finest("Found averaged wind: " + averagedWindWithConfidence);
}
double confidence = averagedWindWithConfidence.getConfidence();
WindDTO windDTO = createWindDTOFromAlreadyAveraged(averagedWindWithConfidence.getObject(), timePoint);
windDTO.confidence = confidence;
@@ -1226,6 +1229,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
if (confidence > maxWindConfidence) {
maxWindConfidence = confidence;
}
} else {
if (logger.getLevel() != null && logger.getLevel().equals(Level.FINEST)) {
logger.finest("Did NOT find any averaged wind for timepoint " + timePoint + " and tracked race " + trackedRace.getRaceIdentifier().getRaceName());
}
}
timePoint = new MillisecondsTimePoint(timePoint.asMillis() + millisecondsStepWidth);
}
@@ -1353,6 +1360,9 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
while (fixIter.hasNext()) {
GPSFixMoving fix = fixIter.next();
if (fix.getTimePoint().compareTo(toTimePointExcluding) < 0) {
if (logger.getLevel() != null && logger.getLevel().equals(Level.FINEST)) {
logger.finest(""+competitor.getName()+": " + fix);
}
fixes.add(fix);
} else {
break;
@@ -1367,7 +1377,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
Position estimatedPosition = track.getEstimatedPosition(middle, extrapolate);
SpeedWithBearing estimatedSpeed = track.getEstimatedSpeed(middle);
if (estimatedPosition != null && estimatedSpeed != null) {
fixes.add(new GPSFixMovingImpl(estimatedPosition, middle, estimatedSpeed));
GPSFixMoving estimatedFix = new GPSFixMovingImpl(estimatedPosition, middle, estimatedSpeed);
if (logger.getLevel() != null && logger.getLevel().equals(Level.FINEST)) {
logger.finest(""+competitor.getName()+": " + estimatedFix+" (estimated)");
}
fixes.add(estimatedFix);
}
}
Iterator<GPSFixMoving> fixIter = fixes.iterator();
@@ -3961,4 +3975,4 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
}
}
@@ -38,6 +38,12 @@
<h2 class="articleSubheadline">May 2014</h2>
<ul class="bulletList">
<li>A hint regarding the "distance to start line" metrics: please keep in mind that currently this
measurement is calculated as the distance of the GPS tracker from the line. Unless the tracker
is mounted near the bow (or at the bow sprit, if any), the distance calculated this way will
be greater than what counts for crossing the line. Ordering, comparing and aggregating over this
figure still makes sense as long as you remember this detail.
</li>
<li>Introduced a new leaderboard entry "XTE +/-" featuring a signed cross-track error which shows
for a leg and also aggregated for an entire race on which side of the leg a competitor stayed on
average. Currently, the "side" is defined as viewing in the leg's direction, so "left" for a downwind
+23 -1
View File
@@ -198,4 +198,26 @@ Assume that you want to know which threads exactly eat up all the CPU time. This
<pre>
/opt/jdk1.7.0_02/bin/jconsole -pluginpath topthreads-1.1.jar
</pre>
</pre>
### Activate logging of GPS fixes
It can happen that you want to log every GPS fix added to a track. If you want to see these then add the following to your logging.properties file. NEVER use it in production.
<pre>
com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl.level=FINEST
</pre>
If you want to log all GPS fixes sent to the client (RaceBoard) then activate the following:
<pre>
com.sap.sailing.gwt.ui.server.SailingServiceImpl.level=FINEST
</pre>
### Remove GWT SerializationException messages from log
When installing a new version of server code that contains changes related to GWT it can happen that viewers that did not reload their view after the server restart will trigger a SerializationException because the information needed to serialize is no longer matching the one on the server. GWT will start throwing loads of SerializationException that are filling up your logs quite quick. As these messages can be considered blather it is good to disable them to be able to see really relevant messages. Disabling is not that easy as Jetty is using it's own logging system. But there is a trick. Just add the following to your VM argument list (ADDITIONAL_JAVA_ARGS) and you're good to enjoy a life without these messages.
<pre>
-Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
</pre>