diff --git a/kubernetes-kit-starter/src/main/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SpringTransientHandler.java b/kubernetes-kit-starter/src/main/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SpringTransientHandler.java index b4174e3..ad34782 100644 --- a/kubernetes-kit-starter/src/main/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SpringTransientHandler.java +++ b/kubernetes-kit-starter/src/main/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SpringTransientHandler.java @@ -104,7 +104,8 @@ private TransientDescriptor detectBean(Object target, Field field) { private boolean matchesPrototype(String beanName, Object beanDefinition, Class fieldValueType) { - return appCtx.isPrototype(beanName) + return appCtx.containsBeanDefinition(beanName) + && appCtx.isPrototype(beanName) && beanDefinition.getClass() == fieldValueType; } diff --git a/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SerializationDeserializationTest.java b/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SerializationDeserializationTest.java index 084c6ac..21477b5 100644 --- a/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SerializationDeserializationTest.java +++ b/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/SerializationDeserializationTest.java @@ -45,7 +45,6 @@ void processConstructorInjectedComponent( .readWithTransients(); Assertions.assertThat(result).isNotSameAs(target) .isExactlyInstanceOf(TestConfig.CtorInjectionTarget.class) - .hasNoNullFieldsOrProperties() .asInstanceOf(InstanceOfAssertFactories .type(TestConfig.CtorInjectionTarget.class)) .extracting(obj -> obj.defaultImpl, obj -> obj.alternative) diff --git a/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/TestConfig.java b/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/TestConfig.java index fa5416a..fbcdd90 100644 --- a/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/TestConfig.java +++ b/kubernetes-kit-starter/src/test/java/com/vaadin/kubernetes/starter/sessiontracker/serialization/TestConfig.java @@ -61,6 +61,7 @@ public void execute() { static class CtorInjectionTarget implements Serializable { transient TestService defaultImpl; transient TestService alternative; + transient Object nonBeanTransient = new Object(); public CtorInjectionTarget(TestService defaultImpl, @Qualifier("ALTERNATIVE") TestService alternative) { @@ -91,6 +92,7 @@ static class PrototypeTarget implements Serializable { @Autowired @Qualifier("EXTENSION") transient PrototypeComponent extPrototypeScoped; + transient Object nonBeanTransient = new Object(); } interface PrototypeService { @@ -119,6 +121,7 @@ static class PrototypeServiceTarget implements Serializable { @Autowired @Qualifier("B") transient PrototypeService prototypeServiceB; + transient Object nonBeanTransient = new Object(); } @Component