mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
Merge branch 'eclipse-main' into translation
This commit is contained in:
commit
fbff5aedf4
9 files changed
+80
-10
No files matched your search
@@ -49,6 +49,14 @@ jobs:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '17'
|
||||
mvn-toolchain-id: 'JavaSE-17'
|
||||
- name: Pin Apache Maven to 3.9.16
|
||||
# Tycho 4.0.x requires the Maven 3.9.x line; the GitHub runner image's default
|
||||
# Maven floats and bumped to 3.10.0, which breaks Tycho's Sisu/Guice component
|
||||
# wiring. Pin a known-good 3.9.x so the build no longer depends on the runner
|
||||
# image's default.
|
||||
uses: stCarolas/setup-maven@12eb41b233df95d49b0c11fc1b5bc8312e5d4ce0 # v5.1
|
||||
with:
|
||||
maven-version: 3.9.16
|
||||
- shell: bash
|
||||
env: # Or as an environment variable
|
||||
TMP: /mnt/tmp
|
||||
|
||||
@@ -16,6 +16,14 @@ jobs:
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 21
|
||||
- name: Pin Apache Maven to 3.9.16
|
||||
# Tycho 4.0.x requires the Maven 3.9.x line; the GitHub runner image's default
|
||||
# Maven floats and bumped to 3.10.0, which breaks Tycho's Sisu/Guice component
|
||||
# wiring. Pin a known-good 3.9.x so the build no longer depends on the runner
|
||||
# image's default.
|
||||
uses: stCarolas/setup-maven@12eb41b233df95d49b0c11fc1b5bc8312e5d4ce0 # v5.1
|
||||
with:
|
||||
maven-version: 3.9.16
|
||||
- name: Check out the repository to the runner
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
|
||||
@@ -30,6 +30,14 @@ jobs:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '17'
|
||||
mvn-toolchain-id: 'JavaSE-17'
|
||||
- name: Pin Apache Maven to 3.9.16
|
||||
# Tycho 4.0.x requires the Maven 3.9.x line; the GitHub runner image's default
|
||||
# Maven floats and bumped to 3.10.0, which breaks Tycho's Sisu/Guice component
|
||||
# wiring. Pin a known-good 3.9.x so the build no longer depends on the runner
|
||||
# image's default.
|
||||
uses: stCarolas/setup-maven@12eb41b233df95d49b0c11fc1b5bc8312e5d4ce0 # v5.1
|
||||
with:
|
||||
maven-version: 3.9.16
|
||||
- shell: bash
|
||||
env: # Or as an environment variable
|
||||
TMP: /mnt/tmp
|
||||
|
||||
@@ -189,6 +189,14 @@ jobs:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '25'
|
||||
mvn-toolchain-id: 'JavaSE-25'
|
||||
- name: Pin Apache Maven to 3.9.16
|
||||
# Tycho 4.0.x requires the Maven 3.9.x line; the GitHub runner image's default
|
||||
# Maven floats and bumped to 3.10.0, which breaks Tycho's Sisu/Guice component
|
||||
# wiring ("No implementation for MavenTargetLocationFactory was bound"). Pin a
|
||||
# known-good 3.9.x so the build no longer depends on the runner image's default.
|
||||
uses: stCarolas/setup-maven@12eb41b233df95d49b0c11fc1b5bc8312e5d4ce0 # v5.1
|
||||
with:
|
||||
maven-version: 3.9.16
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4.0.1
|
||||
with:
|
||||
|
||||
+23
-6
@@ -286,20 +286,37 @@ public abstract class TrackedRegattaImpl implements TrackedRegatta {
|
||||
// the same listener; no dedicated lock on raceListeners is needed.
|
||||
lockTrackedRacesForRead();
|
||||
try {
|
||||
// The mapping function only creates and registers the executor; it must NOT dispatch the
|
||||
// catch-up raceAdded events, because for a synchronous executor that dispatch runs inline on
|
||||
// this thread while computeIfAbsent still holds the reservation node for this key. A listener
|
||||
// callback that in turn calls addRaceListener (e.g. runWhenDoneLoading registering a
|
||||
// race-removal listener on this same regatta) would then re-enter computeIfAbsent on the same
|
||||
// ConcurrentHashMap and self-deadlock on the reservation node (the CHM contract forbids the
|
||||
// mapping function from modifying the map). We therefore capture the catch-up work in a holder
|
||||
// and dispatch it AFTER computeIfAbsent returns, with the entry fully installed. The holder is
|
||||
// populated only when a new entry was actually created, preserving the duplicate-registration
|
||||
// collapse. The read lock on trackedRacesLock is still held during the dispatch, so ordering
|
||||
// relative to enqueEvent is unchanged.
|
||||
final Runnable[] catchUpHolder = new Runnable[1];
|
||||
raceListeners.computeIfAbsent(listener, listenerToAdd -> {
|
||||
final RunnableExecutor eventQueue = synchronous ? new SynchronousRunnableExecutor() : new AsynchronousRunnableExecutor();
|
||||
final List<TrackedRace> trackedRacesCopy = new ArrayList<>();
|
||||
Util.addAll(getTrackedRaces(), trackedRacesCopy);
|
||||
threadLocalTransporter.ifPresent(ThreadLocalTransporter::rememberThreadLocalStates);
|
||||
eventQueue.addWork(() -> {
|
||||
withBeforeAndAfterHandling(threadLocalTransporter, () -> {
|
||||
for (TrackedRace trackedRace : trackedRacesCopy) {
|
||||
listenerToAdd.raceAdded(trackedRace);
|
||||
}
|
||||
catchUpHolder[0] = () -> {
|
||||
eventQueue.addWork(() -> {
|
||||
withBeforeAndAfterHandling(threadLocalTransporter, () -> {
|
||||
for (TrackedRace trackedRace : trackedRacesCopy) {
|
||||
listenerToAdd.raceAdded(trackedRace);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
return eventQueue;
|
||||
});
|
||||
if (catchUpHolder[0] != null) {
|
||||
catchUpHolder[0].run();
|
||||
}
|
||||
} finally {
|
||||
unlockTrackedRacesAfterRead();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?pde version="3.8"?>
|
||||
<target name="Race Analysis Target" sequenceNumber="228">
|
||||
<target name="Race Analysis Target" sequenceNumber="229">
|
||||
<locations>
|
||||
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
|
||||
<unit id="javax.ws.rs" version="1.1.1.v20130318-1750"/>
|
||||
@@ -174,6 +174,12 @@
|
||||
<unit id="junit-platform-runner.source" version="1.11.3"/>
|
||||
<unit id="org.opentest4j" version="1.3.0"/>
|
||||
<unit id="org.opentest4j.source" version="1.3.0"/>
|
||||
<unit id="junit-platform-suite-api" version="1.11.3"/>
|
||||
<unit id="junit-platform-suite-api.source" version="1.11.3"/>
|
||||
<unit id="junit-platform-suite-commons" version="1.11.3"/>
|
||||
<unit id="junit-platform-suite-commons.source" version="1.11.3"/>
|
||||
<unit id="junit-platform-suite-engine" version="1.11.3"/>
|
||||
<unit id="junit-platform-suite-engine.source" version="1.11.3"/>
|
||||
<repository location="https://download.eclipse.org/releases/2024-12/202412041000/"/>
|
||||
</location>
|
||||
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
|
||||
@@ -357,6 +363,12 @@
|
||||
<plugin id="junit-platform-launcher.source"/>
|
||||
<plugin id="junit-platform-runner"/>
|
||||
<plugin id="junit-platform-runner.source"/>
|
||||
<plugin id="junit-platform-suite-api"/>
|
||||
<plugin id="junit-platform-suite-api.source"/>
|
||||
<plugin id="junit-platform-suite-commons"/>
|
||||
<plugin id="junit-platform-suite-commons.source"/>
|
||||
<plugin id="junit-platform-suite-engine"/>
|
||||
<plugin id="junit-platform-suite-engine.source"/>
|
||||
<plugin id="org.opentest4j"/>
|
||||
<plugin id="org.opentest4j.source"/>
|
||||
<plugin id="org.jvnet.mimepull"/>
|
||||
|
||||
@@ -23,6 +23,15 @@
|
||||
<div class="mainContent">
|
||||
<h2 class="releaseHeadline">Release Notes - Administration Console</h2>
|
||||
<div class="innerContent">
|
||||
<h2 class="articleSubheadline">October 2026</h2>
|
||||
<ul class="bulletList">
|
||||
<li>Bug fix: a replica could hang indefinitely during its initial load from a primary when a
|
||||
deserialized regatta already contained races. Registering the race-addition listener
|
||||
triggered a catch-up notification that re-entered listener registration on the same regatta,
|
||||
deadlocking a <tt>ConcurrentHashMap</tt> update on itself. Replica startup and operator-initiated
|
||||
replication from a non-empty primary are affected. This is now fixed; catch-up notifications are
|
||||
dispatched after the listener registration completes.</li>
|
||||
</ul>
|
||||
<h2 class="articleSubheadline">September 2026</h2>
|
||||
<ul class="bulletList">
|
||||
<li>Master data import (MDI) now uses noticeably less memory and is a little faster, especially when
|
||||
|
||||
+2
-2
@@ -36,7 +36,7 @@
|
||||
When adjusting tycho-version here, also make sure to adjust it accordingly
|
||||
in java/com.amazon.aws.aws-java-api/pom.xml
|
||||
-->
|
||||
<tycho-version>4.0.12</tycho-version>
|
||||
<tycho-version>5.0.4</tycho-version>
|
||||
<toolchains-version>3.2.0</toolchains-version>
|
||||
<gwt.version>2.12.4</gwt.version>
|
||||
<!-- gwt-maven-plugin is typically in sync with the GWT version. But sometimes versions need extra time after a new GWT release. -->
|
||||
@@ -310,7 +310,7 @@
|
||||
for Tycho that have been removed from JavaSE-11 if not building for Android -->
|
||||
<id>with-java11-non-android-relevant</id>
|
||||
<activation>
|
||||
<jdk>[9.0,21.0)</jdk>
|
||||
<jdk>[9.0,)</jdk>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../eventmanagers/smartphone-tracking.md">Set up smart phone tracking</a></td>
|
||||
<td>This tutorial shows how to set up <em>smart phone tracking/em> with the <strong>SAP Sailing Analytics</strong>.</td>
|
||||
<td>This tutorial shows how to set up <em>smart phone tracking</em> with the <strong>SAP Sailing Analytics</strong>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="sailinganalytics/set-up-course.md">Course set up</a></td>
|
||||
|
||||
Reference in new issue
Block a user