Skip to content

Commit afac962

Browse files
committed
Merge branch 'eclipse-main' into maplibre-secure-map-tiles
2 parents 0105f85 + 44e10ff commit afac962

85 files changed

Lines changed: 261 additions & 131 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingCalculator.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,7 @@ public MarkPassingCalculator(DynamicTrackedRace race, boolean doListen,
165165
if (listener != null) {
166166
synchronized (MarkPassingCalculator.this) {
167167
if (listenerThread == null) {
168-
listenerThread = createAndStartListenerThread();
169-
synchronized (listenerThread) {
170-
listenerThreadStarted = true;
171-
listenerThread.notifyAll();
172-
}
168+
createAndStartListenerThread();
173169
}
174170
}
175171
}
@@ -181,11 +177,21 @@ public MarkPassingCalculator(DynamicTrackedRace race, boolean doListen,
181177
}
182178
}
183179

184-
private Thread createAndStartListenerThread() {
185-
final Thread result = new Thread(listen, "MarkPassingCalculator for race " + race.getRaceIdentifier());
186-
result.setDaemon(true);
187-
result.start();
188-
return result;
180+
/**
181+
* Must be invoked while owning this object's monitor. Launches a thread running the {@link #listen} task, assigning
182+
* the thread to the {@link #listenerThread} field and marking the thread as started while owning the thread's
183+
* object monitor ({@code synchronized}), notifying all waiters of the {@link Thread} object, such as the
184+
* {@link #waitUntilStopped(long)} method.
185+
*/
186+
private void createAndStartListenerThread() {
187+
assert Thread.holdsLock(this);
188+
listenerThread = new Thread(listen, "MarkPassingCalculator for race " + race.getRaceIdentifier());
189+
listenerThread.setDaemon(true);
190+
listenerThread.start();
191+
synchronized (listenerThread) {
192+
listenerThreadStarted = true;
193+
listenerThread.notifyAll();
194+
}
189195
}
190196

191197
/**
@@ -638,7 +644,7 @@ protected synchronized void enqueueUpdate(StorePositionUpdateStrategy update) {
638644
// the queue may have filled up while we were suspended
639645
if (!suspended) {
640646
if (listenerThread == null) {
641-
listenerThread = createAndStartListenerThread();
647+
createAndStartListenerThread();
642648
} else if (listenerThread.getState() == State.TERMINATED) {
643649
logger.severe("Listener thread of MarkPassingCalculator (MPC) for race " + race.getRace().getName()
644650
+ " terminated but not null. Why are we still receiving updates? We must have been stopped before!");

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ windStatMax=Max
395395
fleet=Flotte
396396
boatClass=Bootsklasse
397397
setDelayToLive=Verzögerung zu ''Live'' setzen
398-
pleaseEnterNonEmptyVenue=Bitte geben sie einen Veranstaltungsort ein.
398+
pleaseEnterNonEmptyVenue=Bitte gib einen Veranstaltungsort ein.
399399
pleaseEnterStartAndEndDate=Bitte gib ein Start- und Endedatum an.
400400
startDateMustBeforeEndDate=Das Startdatum muß vor dem Endedatum liegen.
401401
eventWithThisNameAlreadyExists=Eine Veranstaltung mit diesem Namen existiert bereits.
@@ -1487,7 +1487,7 @@ selectCourseAreas=Regattabahnen auswählen
14871487
resetCourseAreas=Zurücksetzen
14881488
copyCompetitors=Teilnehmer kopieren
14891489
smartphoneTracking=Smartphone Tracking
1490-
titelOfChooseNameDialog= Wählen sie einen Namen
1490+
titelOfChooseNameDialog= Wähle einen Namen
14911491
ownPrefix=Eigener Bezeichner
14921492
defaultName=Standard
14931493
exampleTextForName=Namen werden in dieser Form erstellt:
@@ -1569,11 +1569,11 @@ addNewFix=Neuen Fix hinzufügen
15691569
pleaseSelectOtherTimepoint=Bitte wähle einen anderen Zeitpunkt. Am gewählten Zeitpunkt ist bereits ein Fix.
15701570
confirmMove=Bestätige Umpositionierung
15711571
confirmNewFix=Bestätige neuen Fix
1572-
selectAFixPositionBy=Wählen sie eine Fixposition, indem sie die Karte verschieben. Bestätigen oder Brechen sie danach mit den Knöpfen unten ab.
1573-
pleaseSelectAMark=Bitte wählen sie einen Marker aus der Liste auf der linken Seite aus.
1572+
selectAFixPositionBy=Wähle eine Fixposition, indem du die Karte verschiebst. Bestätige oder brich danach mit den Knöpfen unten ab.
1573+
pleaseSelectAMark=Bitte wähle einen Marker aus der Liste auf der linken Seite aus.
15741574
markFixes=Marker Fixe
15751575
distanceFromAveragePosition=Entfernung vom Durchschnitt
1576-
useATouchOptimizedUI=Benutzen sie eine auf Touchbildschirme optimierte Eingabe.
1576+
useATouchOptimizedUI=Benutze eine auf Touchbildschirme optimierte Eingabe.
15771577
deleteFix=Fix löschen
15781578
theDeletionOfThisFix=The Löschung des Fixes is aktuell nicht möglich.
15791579
loadingMarkFixes=Lade Marker Fixe...
@@ -2498,7 +2498,7 @@ goToSelfServicePortalDialogText=Self-Service Portal des Abonementanbieters in ei
24982498
failedFetchingSelfServicePortalSession=Self-Service Portal konnte nicht geöffnet werden.
24992499
oneAlwaysStaysOne=Wertung 1 bleibt 1, unabhängig vom Spalten-Faktor
25002500
otherTieBreakingLeaderboard=Andere Rangliste zum Tie-Breaking
2501-
helptextLinkingRaces=Um unverknüpfte Wettfahrten mit getrackten Rennen zu verknüpfen, müssen sie in der untenstehenden Tabelle eine Wettfahrt linksklicken und danach das entsprechende getrackte Rennen in der rechten Ansicht linksklicken.
2501+
helptextLinkingRaces=Um unverknüpfte Wettfahrten mit getrackten Rennen zu verknüpfen, musst du in der untenstehenden Tabelle eine Wettfahrt linksklicken und danach das entsprechende getrackte Rennen in der rechten Ansicht linksklicken.
25022502
scoringSchemeLowPointA82Only=Low Point System; Tie-Break gemäß RRS A8.2 (Letztes Rennen)
25032503
scoringSchemeLowPointA82OnlyDescription=Low Point System; Tie-Break gemäß RRS A8.2; Falls ein Unentschieden nach dem Vergleich der Medaillen-Rennen verbleibt, vergleiche die Wertungen im letzten non-Medal Rennen, dann dem zweitletzten Rennen usw., bis ein Unterschied auftritt. Gestrichene Ergebnisse werden dabei ebenfalls berücksichtigt.
25042504
scoringSchemeLowPointSystemFirstThreeWinsA82Only=Low Point System, Erster mit drei Siegen in Medaillen-Rennen gewinnt; Tie-Break nach A8.2 (Letztes Rennen)

java/com.sap.sailing.landscape.ui/src/com/sap/sailing/landscape/ui/client/i18n/StringMessages_de.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ state=Zustand
2626
createdAt=Erstellt
2727
mongoEndpoints=MongoDB-Endpunkte
2828
machineImages=Amazon Maschinen-Abbilder (AMIs)
29-
doYouReallyWantToRemoveMachineImage=Möchten Sie wirklich das Machinen-Abbild {0} mit der ID {1} in der Region {2} löschen?
29+
doYouReallyWantToRemoveMachineImage=Möchtest du wirklich das Machinen-Abbild {0} mit der ID {1} in der Region {2} löschen?
3030
successfullyRemovedMachineImage=Machinen-Abbild {0} mit der ID {1} in der Region {2} erfolgreich gelöscht.
3131
successfullyUpgradedMachineImage=Machinen-Abbild {0} mit der ID {1} in der Region {2} erfolgreich aktualisiert zu {3}.
3232
startedImageUpgrade=Aktualisierung des Maschinen-Abbilds {0} mit der ID {1} in der region {2} gestartet. Der Vorgang wird einige Minuten dauern...

java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Require-Bundle: org.hamcrest;bundle-version="2.2.0",
1111
junit-platform-commons;bundle-version="1.11.3",
1212
junit-platform-engine;bundle-version="1.11.3",
1313
org.opentest4j;bundle-version="1.3.0",
14-
org.openqa.selenium.osgi;bundle-version="3.13.0",
14+
org.openqa.selenium.osgi;bundle-version="4.13.0",
1515
com.sap.sse.mongodb;bundle-version="1.0.0",
1616
com.sap.sailing.domain.common,
1717
com.sap.sse.common,

java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/core/SeleniumFieldDecorator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import org.openqa.selenium.WebElement;
1111
import org.openqa.selenium.interactions.Locatable;
12-
import org.openqa.selenium.internal.WrapsElement;
12+
import org.openqa.selenium.WrapsElement;
1313
import org.openqa.selenium.support.pagefactory.ElementLocator;
1414
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
1515
import org.openqa.selenium.support.pagefactory.FieldDecorator;

java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/core/WindowManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sap.sailing.selenium.core;
22

3+
import java.time.Duration;
34
import java.util.HashSet;
45
import java.util.Set;
56
import java.util.function.BiConsumer;
@@ -80,7 +81,7 @@ public void withExtraWindow(WebDriver driver, BiConsumer<WebDriverWindow, WebDri
8081
// Open a new window using JavaScript
8182
((JavascriptExecutor) driver).executeScript("window.open('about:blank','_blank');");
8283
// Wait until the new window appears
83-
new WebDriverWait(driver, /* seconds */ 5).until(d -> d.getWindowHandles().size() > 1);
84+
new WebDriverWait(driver, /* seconds */ Duration.ofSeconds(5)).until(d -> d.getWindowHandles().size() > 1);
8485
// Identify the new window handle
8586
String extraWindowHandle = driver.getWindowHandles().stream()
8687
.filter(handle -> !handle.equals(originalWindowHandle))

java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -504,12 +504,12 @@ protected void waitForAjaxRequestsExecuted(String category, int numberOfCalls, i
504504
}
505505

506506
protected void waitForElement(String seleniumId) {
507-
WebDriverWait webDriverWait = new WebDriverWait(driver, DEFAULT_LOOKUP_TIMEOUT);
507+
WebDriverWait webDriverWait = new WebDriverWait(driver, Duration.ofSeconds(DEFAULT_LOOKUP_TIMEOUT));
508508
webDriverWait.until(ExpectedConditions.presenceOfElementLocated(new BySeleniumId(seleniumId)));
509509
}
510510

511511
protected void waitUntil(Function<WebDriver, Boolean> predicate) {
512-
WebDriverWait webDriverWait = new WebDriverWait(driver, DEFAULT_LOOKUP_TIMEOUT);
512+
WebDriverWait webDriverWait = new WebDriverWait(driver, Duration.ofSeconds(DEFAULT_LOOKUP_TIMEOUT));
513513
webDriverWait.until(predicate);
514514
}
515515

@@ -518,7 +518,7 @@ protected void waitUntil(BooleanSupplier supplier) {
518518
}
519519

520520
protected void waitUntilAlertIsPresent() {
521-
WebDriverWait webDriverWait = new WebDriverWait(driver, DEFAULT_LOOKUP_TIMEOUT);
521+
WebDriverWait webDriverWait = new WebDriverWait(driver, Duration.ofSeconds(DEFAULT_LOOKUP_TIMEOUT));
522522
webDriverWait.until(ExpectedConditions.alertIsPresent());
523523
}
524524

@@ -614,7 +614,7 @@ protected WebElement goToTab(WebElement tabPanel, String tabName, final String i
614614
}
615615
final String expression = expressionFormat.format(new Object[] {tabName});
616616
WebElement tab = tabPanel.findElement(By.xpath(expression));
617-
WebDriverWait waitForTab = new WebDriverWait(driver, 20); // here, wait time is 20 seconds
617+
WebDriverWait waitForTab = new WebDriverWait(driver, Duration.ofSeconds(20)); // here, wait time is 20 seconds
618618
waitForTab.until(ExpectedConditions.visibilityOf(tab)); // this will wait for tab to be visible for 20 seconds
619619
tab.click();
620620
return waitForWebElement(tabPanel, id);
@@ -676,7 +676,7 @@ protected void waitForAlertContainingMessageAndAccept(int timeoutInSeconds, Stri
676676
* Waits for an alert box to appear. If no alert shows up, an Exception is thrown.
677677
*/
678678
protected Alert waitForAlert(int timeoutInSeconds) {
679-
return new WebDriverWait(driver, timeoutInSeconds).until(ExpectedConditions.alertIsPresent());
679+
return new WebDriverWait(driver, Duration.ofSeconds(timeoutInSeconds)).until(ExpectedConditions.alertIsPresent());
680680
}
681681

682682
protected void waitForAlertAndAccept(String expectedMessage) {
@@ -688,7 +688,7 @@ protected void waitForAlertAndAccept(String expectedMessage) {
688688
* Exception is thrown.
689689
*/
690690
protected void waitForAlertAndAccept(int timeoutInSeconds, String expectedMessageRegexp) {
691-
final Alert expectedAlert = new WebDriverWait(driver, timeoutInSeconds).until(ExpectedConditions.alertIsPresent());
691+
final Alert expectedAlert = new WebDriverWait(driver, Duration.ofSeconds(timeoutInSeconds)).until(ExpectedConditions.alertIsPresent());
692692
assertTrue(expectedAlert.getText().matches(expectedMessageRegexp));
693693
expectedAlert.accept();
694694
}
@@ -711,7 +711,7 @@ protected void waitForNotificationAndDismiss(String expectedNotificationMessage)
711711
* Waits for an notification to appear and dismisses the notification by clicking on it. If no notification shows up, an Exception is thrown.
712712
*/
713713
protected void waitForNotificationAndDismiss(int timeoutInSeconds, String expectedNotificationMessage) {
714-
WebDriverWait wait = new WebDriverWait(driver, timeoutInSeconds);
714+
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(timeoutInSeconds));
715715
wait.until(new Function<WebDriver, Boolean>() {
716716
@Override
717717
public Boolean apply(WebDriver t) {

java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/LeaderboardDetailsPanelPO.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sap.sailing.selenium.pages.adminconsole.leaderboard;
22

3+
import java.time.Duration;
34
import java.util.ArrayList;
45
import java.util.List;
56
import java.util.Objects;
@@ -172,7 +173,7 @@ public void refreshRaceLog(RaceDescriptor race) {
172173
}
173174

174175
public void linkRace(RaceDescriptor race, TrackedRaceDescriptor tracking) {
175-
WebDriverWait webDriverWait = new WebDriverWait(driver, DEFAULT_LOOKUP_TIMEOUT);
176+
WebDriverWait webDriverWait = new WebDriverWait(driver, Duration.ofSeconds(DEFAULT_LOOKUP_TIMEOUT));
176177
DataEntryPO raceRow = webDriverWait.until(new Function<WebDriver, DataEntryPO>() {
177178
@Override
178179
public DataEntryPO apply(WebDriver t) {

java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaStructureManagementPanelPO.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sap.sailing.selenium.pages.adminconsole.regatta;
22

3+
import java.time.Duration;
34
import java.util.function.Function;
45

56
import org.openqa.selenium.WebDriver;
@@ -92,7 +93,7 @@ public RegattaDetailsCompositePO getRegattaDetails(RegattaDescriptor regatta) {
9293
}
9394

9495
public RegattaDetailsCompositePO getRegattaDetails() {
95-
return new WebDriverWait(driver, DEFAULT_WAIT_TIMEOUT_SECONDS).until(new Function<WebDriver, RegattaDetailsCompositePO>() {
96+
return new WebDriverWait(driver, Duration.ofSeconds(DEFAULT_WAIT_TIMEOUT_SECONDS)).until(new Function<WebDriver, RegattaDetailsCompositePO>() {
9697
@Override
9798
public RegattaDetailsCompositePO apply(WebDriver t) {
9899
if (regattaDetails.isDisplayed()) {

java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/usergroups/UserGroupRoleDefinitionPanelPO.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.sap.sailing.selenium.pages.adminconsole.usergroups;
22

33
import org.openqa.selenium.By.ByName;
4-
import org.openqa.selenium.ElementNotSelectableException;
4+
import org.openqa.selenium.ElementNotInteractableException;
55
import org.openqa.selenium.WebDriver;
66
import org.openqa.selenium.WebElement;
77

@@ -71,15 +71,15 @@ public void enterNewRoleName(String rolename) {
7171

7272
public void clickAddButtonOrThrow() {
7373
if (!addRoleButton.isEnabled()) {
74-
throw new ElementNotSelectableException("Add Button was disabled");
74+
throw new ElementNotInteractableException("Add Button was disabled");
7575
} else {
7676
addRoleButton.click();
7777
}
7878
}
7979

8080
public void clickAddButtonAndExpectPermissionError() {
8181
if (!addRoleButton.isEnabled()) {
82-
throw new ElementNotSelectableException("Add Button was disabled");
82+
throw new ElementNotInteractableException("Add Button was disabled");
8383
} else {
8484
addRoleButton.click();
8585
}

0 commit comments

Comments
 (0)