diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index e1e4097..a6d0803 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -14,10 +14,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Set up JDK 11
+ - name: Set up JDK 17
uses: actions/setup-java@v1
with:
- java-version: 11
+ java-version: 17
- name: Checkout sources
uses: actions/checkout@v1
diff --git a/pom.xml b/pom.xml
index 617b2d5..723db80 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
com.powsybl
powsybl-parent-ws
- 10
+ 11
@@ -44,7 +44,6 @@
- 11
23
org.gridsuite.useradmin.server
diff --git a/src/main/java/org/gridsuite/useradmin/server/service/ConnectionsService.java b/src/main/java/org/gridsuite/useradmin/server/service/ConnectionsService.java
index 918085f..0b1f5bc 100644
--- a/src/main/java/org/gridsuite/useradmin/server/service/ConnectionsService.java
+++ b/src/main/java/org/gridsuite/useradmin/server/service/ConnectionsService.java
@@ -12,6 +12,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -33,10 +34,11 @@ public ConnectionsService(ConnectionRepository connectionRepository) {
public void recordConnectionAttempt(String sub, Boolean isAllowed) {
ConnectionEntity connectionEntity = connectionRepository.findBySub(sub).stream().findFirst().orElse(null);
if (connectionEntity == null) {
- connectionEntity = new ConnectionEntity(sub, LocalDateTime.now(), LocalDateTime.now(), isAllowed);
+ //To avoid consistency issue we truncate the time to microseconds since postgres and h2 can only store a precision of microseconds
+ connectionEntity = new ConnectionEntity(sub, LocalDateTime.now().truncatedTo(ChronoUnit.MICROS), LocalDateTime.now().truncatedTo(ChronoUnit.MICROS), isAllowed);
connectionRepository.save(connectionEntity);
} else {
- connectionEntity.setLastConnexionDate(LocalDateTime.now());
+ connectionEntity.setLastConnexionDate(LocalDateTime.now().truncatedTo(ChronoUnit.MICROS));
connectionEntity.setConnectionAccepted(isAllowed);
}
}