We have released a new version of the TracAPI 3.0.11 that is is 100%
compatible with the previous 3.0.x releases [1].
This is a final version. It fixes bugs in the implementation and it adds
a some features. These features add methods to the API, but they keep
the backward compatibility. This version provides a new JavaDoc version [2].
1) Features
- Adding the method IRace.setInitialized(boolean) that allows to load
control point positions although the race is not initialized (Requested
by Jorge Piera, 17/05/2015)
1) Bugs
- The subscription library sends (per each control point) an
"ControlPointPosition" event with the positions of the parameters with
a time stamp equals to the tracking start time. If the control point
is static (it doesn't have a tracker), it means that this control won't
exist until the tracking start time arrives: it is not possible to open
a subscription connection before the tracking start time and see the
control point. But if the control is static, it has to exist during
all the event. Now when a control is static, the subscription library
sends a "ControlPointPosition" event with the event start time and then
it sends other "ControlPointPosition" event with the tracking start
time. It allows to connect with future races and see the static controls
(Requested by Jakob Odum, 25/02/2015)
- It is possible to add two or more subscriptions for the same
subscriber (Reported by Jorge Piera, 02/05/2015)
- If a race is in a not initialized state and it is loaded using the
parameters file, the library assumes that the consumer application wants
to load the race and it changes its initialized attribute to true. This
assumption is wrong. Now, if a race is not initialized it will continue
being uninitialized until the event administrator changes its state to
initialized (Reported by Axel Uhl, 17/05/2015)
- The previous version 3.0.4 added only changes in the synchronization. The lists were synchronized by hand
but the implementation continued using synchronized lists. The result was that we had a double
synchronization for all the lists of the model: the synchronization by hand and the synchronization of
the list. (Reported by Axel Uhl, 04/08/2014)
- The new subscription library sends the static positions (from the parameters file) as positions events.
The problem here is that the subscription library retrieves the positions from the model of control
points and when some races are loaded in parallel these values can be invalid (values loaded by
other race). Now the subscription library sends the static positions from the parameters file.
(Reported by Jorge Piera, 04/08/2014)
From the README.txt file:
This is a final version. Only fixes bugs in the implementation
Release date: 04/08/2014
1) Bugs
- Some lists are not thread-safety. The model project exposes some lists based on a
CopyOnWriteArrayList implementation that is thread-safety if you get its iterator.
But if before to invoke the iterator() method of the list, other thread is editing the list,
it is possible to get a list in an invalid status. (Reported by Axel Uhl, 31/07/2014)