From edba6ace127ecbe5b6ae3b60ca4a9a0f778bc599 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Tue, 13 Jul 2021 09:27:03 +0200 Subject: [PATCH] =?UTF-8?q?PersistentEntitiesResourceMapping.hasMappingFor?= =?UTF-8?q?(=E2=80=A6)=20should=20lookup=20metadata=20on=20cache=20miss.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PersistentEntitiesResourceMappings.java | 2 +- ...ersistentEntitiesResourceMappingsUnitTests.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappings.java b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappings.java index b2cf71c87..b7274132a 100644 --- a/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappings.java +++ b/spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappings.java @@ -133,7 +133,7 @@ public class PersistentEntitiesResourceMappings implements ResourceMappings { */ @Override public boolean hasMappingFor(Class type) { - return cache.get(type) != null; + return getMappingMetadataFor(type) != null; } /* diff --git a/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappingsUnitTests.java b/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappingsUnitTests.java index 0f334b4e4..6258d80ca 100644 --- a/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappingsUnitTests.java +++ b/spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappingsUnitTests.java @@ -39,4 +39,18 @@ public class PersistentEntitiesResourceMappingsUnitTests { assertThat(mappings.getMetadataFor(String.class)).isNull(); assertThat(mappings.hasMappingFor(String.class)).isFalse(); } + + @Test // GH-2033 + public void transparentlyAddsValueToCacheOnHasMappingRequests() { + + KeyValueMappingContext context = new KeyValueMappingContext<>(); + context.getPersistentEntity(Sample.class); + + PersistentEntitiesResourceMappings mappings = new PersistentEntitiesResourceMappings( + PersistentEntities.of(context)); + + assertThat(mappings.hasMappingFor(Sample.class)).isTrue(); + } + + class Sample {} }