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); } }