From cfa47fa4fbac51c614943018b02deca684b761d0 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 6 Feb 2024 16:46:16 +0100 Subject: [PATCH] Polishing --- .../web/method/annotation/ModelFactory.java | 4 +--- .../SessionAttributesHandlerTests.java | 18 +++++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelFactory.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelFactory.java index 62af5c3e4a6..884f7caaf2a 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelFactory.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -234,11 +234,9 @@ public final class ModelFactory { if (attributeName.startsWith(BindingResult.MODEL_KEY_PREFIX)) { return false; } - if (this.sessionAttributesHandler.isHandlerSessionAttribute(attributeName, value.getClass())) { return true; } - return (!value.getClass().isArray() && !(value instanceof Collection) && !(value instanceof Map) && !BeanUtils.isSimpleValueType(value.getClass())); } diff --git a/spring-web/src/test/java/org/springframework/web/method/annotation/SessionAttributesHandlerTests.java b/spring-web/src/test/java/org/springframework/web/method/annotation/SessionAttributesHandlerTests.java index 98c1c33415b..782ec55c1e3 100644 --- a/spring-web/src/test/java/org/springframework/web/method/annotation/SessionAttributesHandlerTests.java +++ b/spring-web/src/test/java/org/springframework/web/method/annotation/SessionAttributesHandlerTests.java @@ -16,7 +16,6 @@ package org.springframework.web.method.annotation; - import java.util.HashSet; import org.junit.jupiter.api.Test; @@ -35,14 +34,15 @@ import static org.assertj.core.api.Assertions.assertThat; /** * Test fixture with {@link SessionAttributesHandler}. + * * @author Rossen Stoyanchev */ class SessionAttributesHandlerTests { private final SessionAttributeStore sessionAttributeStore = new DefaultSessionAttributeStore(); - private final SessionAttributesHandler sessionAttributesHandler = new SessionAttributesHandler( - SessionAttributeHandler.class, sessionAttributeStore); + private final SessionAttributesHandler sessionAttributesHandler = + new SessionAttributesHandler(TestSessionAttributesHolder.class, sessionAttributeStore); private final NativeWebRequest request = new ServletWebRequest(new MockHttpServletRequest()); @@ -62,12 +62,16 @@ class SessionAttributesHandlerTests { sessionAttributeStore.storeAttribute(request, "attr3", new TestBean()); sessionAttributeStore.storeAttribute(request, "attr4", new TestBean()); - assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet()).as("Named attributes (attr1, attr2) should be 'known' right away").isEqualTo(new HashSet<>(asList("attr1", "attr2"))); + assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet()) + .as("Named attributes (attr1, attr2) should be 'known' right away") + .isEqualTo(new HashSet<>(asList("attr1", "attr2"))); // Resolve 'attr3' by type sessionAttributesHandler.isHandlerSessionAttribute("attr3", TestBean.class); - assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet()).as("Named attributes (attr1, attr2) and resolved attribute (att3) should be 'known'").isEqualTo(new HashSet<>(asList("attr1", "attr2", "attr3"))); + assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet()) + .as("Named attributes (attr1, attr2) and resolved attribute (attr3) should be 'known'") + .isEqualTo(new HashSet<>(asList("attr1", "attr2", "attr3"))); } @Test @@ -105,8 +109,8 @@ class SessionAttributesHandlerTests { } - @SessionAttributes(names = { "attr1", "attr2" }, types = { TestBean.class }) - private static class SessionAttributeHandler { + @SessionAttributes(names = {"attr1", "attr2"}, types = TestBean.class) + private static class TestSessionAttributesHolder { } }