Skip to content

3.2.3 to 3.2.5 upgrade causes Mismatched number of generics #40581

Closed as not planned
@bilak

Description

@bilak

Hello,
when upgrading from spring boot 3.2.3 to 3.2.5 I'm getting following error:

java.lang.IllegalArgumentException: Mismatched number of generics specified for public class domain.core.repository.impl.EocsRepositoryFactoryBean<R extends org.springframework.data.jpa.repository.JpaRepository<T, java.lang.String>,T extends domain.core.domain.DistributedEntity>
	at org.springframework.util.Assert.isTrue(Assert.java:129)
	at org.springframework.core.ResolvableType.forClassWithGenerics(ResolvableType.java:1125)
	at org.springframework.data.repository.config.RepositoryConfigurationDelegate.getRepositoryInterface(RepositoryConfigurationDelegate.java:367)
	at org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:189)
	at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:94)
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)

It's probably caused by this change

We have custom factory bean

public class EocsRepositoryFactoryBean<
    R extends JpaRepository<T, String>, T extends DistributedEntity> extends JpaRepositoryFactoryBean<R, T, String> {

The ResolvableType resolves just 2 type parameters while RepositoryConfigurationDelegate resolves 3 generics.

image

Maybe spring-data wasn't adapted to recent core change?

If you need a reproducible example, please let me know, but it might take some time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    for: external-projectFor an external project and not something we can fixstatus: invalidAn issue that we don't feel is valid

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions