[hibernate-dev] Discovering/configuring package-info

Christian Bauer hibernate at christianbauer.name
Mon Mar 18 09:22:19 EDT 2013


Trying to upgrade to 4.3-SNAPSHOT, the EntityManagerFactoryBuilderImpl.indexResource() is failing for my persistence.xml configuration in Java SE with Persistence.createEntityManagerFactory():

   <persistence-unit name="SimplePU">
       <jta-data-source>myDS</jta-data-source>
       <class>org.jpwh.model</class>
       <class>org.jpwh.model.simple.Item</class>
       <class>org.jpwh.model.simple.User</class>
       <class>org.jpwh.model.simple.Bid</class>
       <class>org.jpwh.model.simple.Address</class>
       <class>org.jpwh.model.simple.Category</class>
       <exclude-unlisted-classes>true</exclude-unlisted-classes>
   </persistence-unit>

The <class>org.jpwh.model</class> was necessary in 4.1 to get the package-info.java of that package included, it contains my @GenericGenerators.

[main            ] TRACE  - 13:57:28,926 - nternal.ClassLoaderServiceImpl: trying via [new URL("org/jpwh/model.class")]
[main            ] TRACE  - 13:57:28,926 - nternal.ClassLoaderServiceImpl: trying via [ClassLoader.getResourceAsStream("org/jpwh/model.class")]
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: SimplePU] Unable to open input stream for resource org/jpwh/model.class
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1133)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.indexResource(EntityManagerFactoryBuilderImpl.java:337)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildJandexIndex(EntityManagerFactoryBuilderImpl.java:315)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.locateOrBuildJandexIndex(EntityManagerFactoryBuilderImpl.java:306)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:205)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:169)
	at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:43)
	at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:135)
	at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:81)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	at org.jpwh.env.JPA21Setup.<init>(JPA21Setup.java:19)
	at org.jpwh.test.Test.main(Test.java:12)
Caused by: java.io.IOException: Stream closed
	at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:151)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
	at java.io.DataInputStream.readFully(DataInputStream.java:195)
	at java.io.DataInputStream.readFully(DataInputStream.java:169)
	at org.jboss.jandex.Indexer.verifyMagic(Indexer.java:387)
	at org.jboss.jandex.Indexer.index(Indexer.java:630)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.indexResource(EntityManagerFactoryBuilderImpl.java:334)

It looks like the only way to currently get package-info picked up is with automatic scanning. But in my case scanningContext.isDetectClasses() is false…


More information about the hibernate-dev mailing list