From 8e3152fc9c83d4dbeeaa5d6845537866f44b75c5 Mon Sep 17 00:00:00 2001 From: Michael Simons Date: Tue, 20 Aug 2024 16:43:15 +0200 Subject: [PATCH] fix: Check if the pageable sort already contains the additional sort. If it does or is equal to, don't add it a second time. Fixes #2940 --- .../repository/query/CypherQueryCreator.java | 6 +++++- .../neo4j/integration/issues/IssuesIT.java | 20 +++++++++++++++++++ .../issues/gh2908/LocatedNodeRepository.java | 4 ++++ .../data/neo4j/test/LogbackCapture.java | 5 ++--- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java b/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java index fdc73ed62..9097f0c05 100644 --- a/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java +++ b/src/main/java/org/springframework/data/neo4j/repository/query/CypherQueryCreator.java @@ -23,6 +23,7 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Queue; import java.util.concurrent.atomic.AtomicInteger; @@ -220,7 +221,10 @@ final class CypherQueryCreator extends AbstractQueryCreator l.contains("locatedNode.name, locatedNode.name")); + } finally { + logbackCapture.resetLogLevel(); + } + } + @Configuration @EnableTransactionManagement @EnableNeo4jRepositories(namedQueriesLocation = "more-custom-queries.properties") diff --git a/src/test/java/org/springframework/data/neo4j/integration/issues/gh2908/LocatedNodeRepository.java b/src/test/java/org/springframework/data/neo4j/integration/issues/gh2908/LocatedNodeRepository.java index 0e0d19c54..e948167b6 100644 --- a/src/test/java/org/springframework/data/neo4j/integration/issues/gh2908/LocatedNodeRepository.java +++ b/src/test/java/org/springframework/data/neo4j/integration/issues/gh2908/LocatedNodeRepository.java @@ -15,6 +15,8 @@ */ package org.springframework.data.neo4j.integration.issues.gh2908; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.neo4j.repository.Neo4jRepository; /** @@ -22,4 +24,6 @@ import org.springframework.data.neo4j.repository.Neo4jRepository; * @author Michael J. Simons */ public interface LocatedNodeRepository extends HasNameAndPlaceRepository, Neo4jRepository { + + Page findAllByName(String whatever, PageRequest name); } diff --git a/src/test/java/org/springframework/data/neo4j/test/LogbackCapture.java b/src/test/java/org/springframework/data/neo4j/test/LogbackCapture.java index 998af5f84..12c1b43c5 100644 --- a/src/test/java/org/springframework/data/neo4j/test/LogbackCapture.java +++ b/src/test/java/org/springframework/data/neo4j/test/LogbackCapture.java @@ -23,7 +23,6 @@ import ch.qos.logback.core.read.ListAppender; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.junit.jupiter.api.extension.ExtensionContext; @@ -54,7 +53,7 @@ public final class LogbackCapture implements ExtensionContext.Store.CloseableRes } public List getFormattedMessages() { - return listAppender.list.stream().map(e -> e.getFormattedMessage()).collect(Collectors.toList()); + return listAppender.list.stream().map(ILoggingEvent::getFormattedMessage).toList(); } void start() { @@ -75,6 +74,6 @@ public final class LogbackCapture implements ExtensionContext.Store.CloseableRes } public void resetLogLevel() { - this.additionalLoggers.entrySet().forEach(entry -> entry.getKey().setLevel(entry.getValue())); + this.additionalLoggers.forEach(Logger::setLevel); } }