Adrian Ber
Adrian Ber

Reputation: 21360

Spring data error

I have the following class

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:my-ctx.xml"})
public class UserTests {
    @Inject
    private ApplicationContext applicationContext;

    private UserRepository getUserRepository() {
        return (UserRepository)applicationContext.getBean("userRepository", CrudRepository.class);
    }

    @Test
    public void someTest() {
        User user = new User();
        user.setName("John Doe");
        getUserRepository().save(user);
    }
}

Running the test, I get the following error

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
...

root cause is

 org.datanucleus.api.jpa.metamodel.SingularAttributeImpl.isVersion(SingularAttributeImpl.java:79)
 org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.findVersionAttribute(JpaMetamodelEntityInformation.java:92)
 org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:78)
 org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65)
 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:146)
 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:84)
 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:67)
 ...

where VersionMetaData vermd = mmd.getAbstractClassMetaData().getVersionMetaData(); is null.

Is this a bug?

I know that I can put something like @Inject UserRepository userRepository;, but taking into account how Spring Data works, these two should have the same result, right? And anyway the result will be the same error.

I'm using Spring data 1.4.1, DataNucleus 3.3.2, Spring 3.2.4.

Upvotes: 0

Views: 424

Answers (1)

Adrian Ber
Adrian Ber

Reputation: 21360

Actually this is a DataNucleus bug and I filled in a bug report (with test and fix patch included): http://www.datanucleus.org/servlet/jira/browse/NUCJPA-250.

My workaround was to switch back to Spring Data 1.3.0.

Upvotes: 3

Related Questions