Skip to content

After update spring-boot from 1.4.0 to 1.4.1 the file META-INF/orm.xml no longer loaded #6983

Closed
@xak2000

Description

@xak2000

After update spring-boot from 1.4.0 to 1.4.1 the file META-INF/orm.xml no longer loaded.

I have enabled org.hibernate logger to level debug and found this:

Spring Boot 1.4.0 (gradle bootRun):

2016-09-21 20:17:15.555  INFO 14490 --- [  restartedMain] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2016-09-21 20:17:15.571 DEBUG 14490 --- [  restartedMain] o.hibernate.jpa.internal.util.LogHelper  : PersistenceUnitInfo [
    name: default
    persistence provider classname: null
    classloader: org.springframework.boot.devtools.restart.classloader.RestartClassLoader@3326fdda
    excludeUnlistedClasses: true
    JTA datasource: null
    Non JTA datasource: org.apache.tomcat.jdbc.pool.DataSource@7061a6eb{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=org.h2.Driver; maxActive=100; maxIdle=100; minIdle=10; initialSize=10; maxWait=30000; testOnBorrow=true; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE; username=sa; validationQuery=SELECT 1; validationQueryTimeout=-1; validatorClassName=null; validationInterval=30000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; }
    Transaction type: RESOURCE_LOCAL
    PU root URL: file:/home/xakep/ws/line-meter/build/resources/main
    Shared Cache Mode: UNSPECIFIED
    Validation Mode: AUTO
    Jar files URLs []
    Managed classes names [
        point.linemeter.model.Commutator
        point.linemeter.model.Customer
        point.linemeter.model.Employee
        point.linemeter.model.Flat
        point.linemeter.model.House
        point.linemeter.model.LineMeasurement
        point.linemeter.model.LineMeasurementResult
        point.linemeter.model.NetworkNode
        point.linemeter.model.Porch
        point.linemeter.model.Port
        point.linemeter.model.Street
        point.linemeter.model.SubscriberLine]
    Mapping files names [
        META-INF/orm.xml]
    Properties []

Spring Boot 1.4.1 (gradle bootRun):

2016-09-21 20:21:25.991  INFO 15832 --- [  restartedMain] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2016-09-21 20:21:26.008 DEBUG 15832 --- [  restartedMain] o.hibernate.jpa.internal.util.LogHelper  : PersistenceUnitInfo [
    name: default
    persistence provider classname: null
    classloader: org.springframework.boot.devtools.restart.classloader.RestartClassLoader@3ac47ba3
    excludeUnlistedClasses: true
    JTA datasource: null
    Non JTA datasource: org.apache.tomcat.jdbc.pool.DataSource@36f8afab{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=org.h2.Driver; maxActive=100; maxIdle=100; minIdle=10; initialSize=10; maxWait=30000; testOnBorrow=true; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE; username=sa; validationQuery=SELECT 1; validationQueryTimeout=-1; validatorClassName=null; validationInterval=3000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; }
    Transaction type: RESOURCE_LOCAL
    PU root URL: file:/home/xakep/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/1.4.1.RELEASE/db60078355dbe57b3ff5efcbf7b411fb5ae75306/spring-boot-autoconfigure-1.4.1.RELEASE.jar
    Shared Cache Mode: UNSPECIFIED
    Validation Mode: AUTO
    Jar files URLs []
    Managed classes names [
        point.linemeter.model.Commutator
        point.linemeter.model.Customer
        point.linemeter.model.Employee
        point.linemeter.model.Flat
        point.linemeter.model.House
        point.linemeter.model.LineMeasurement
        point.linemeter.model.LineMeasurementResult
        point.linemeter.model.NetworkNode
        point.linemeter.model.Porch
        point.linemeter.model.Port
        point.linemeter.model.Street
        point.linemeter.model.SubscriberLine]
    Mapping files names []
    Properties []

The main difference here is PU root URL. In first case it is file:/home/xakep/ws/line-meter/build/resources/main and in second case it is file:/home/xakep/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/1.4.1.RELEASE/db60078355dbe57b3ff5efcbf7b411fb5ae75306/spring-boot-autoconfigure-1.4.1.RELEASE.jar.

Also I debug org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.getOrmXmlForDefaultPersistenceUnit() and found that this line:

        Resource ormXml = this.resourcePatternResolver.getResource(
                this.defaultPersistenceUnitRootLocation + DEFAULT_ORM_XML_RESOURCE);

returns the META-INF/orm.xml resource when used with spring-boot 1.4.0, but the same line returns file:/home/xakep/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/1.4.1.RELEASE/db60078355dbe57b3ff5efcbf7b411fb5ae75306/spring-boot-autoconfigure-1.4.1.RELEASE.jarMETA-INF/orm.xml when used with spring-boot 1.4.1.

It can be not even bug with spring-boot but with spring-orm, but unfortunately I can't debug any futher.

The persistence unit used in my app is default persistence unit. Almost no configuration.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions